  In this paper, we consider the problem of stabilizing discrete-time linear
systems by computing a nearby stable matrix to an unstable one. To do so, we
provide a new characterization for the set of stable matrices. We show that a
matrix $A$ is stable if and only if it can be written as $A=S^{-1}UBS$, where
$S$ is positive definite, $U$ is orthogonal, and $B$ is a positive semidefinite
contraction (that is, the singular values of $B$ are less or equal to 1). This
characterization results in an equivalent non-convex optimization problem with
a feasible set on which it is easy to project. We propose a very efficient fast
projected gradient method to tackle the problem in variables $(S,U,B)$ and
generate locally optimal solutions. We show the effectiveness of the proposed
method compared to other approaches.
