# Lyapunov equation

The Lyapunov equation, named after the Russian mathematician Aleksandr Lyapunov, is a matrix equation used in the stability analysis of linear dynamical systems.
In particular, the discrete-time Lyapunov equation (also known as Stein equation) for $X$ is
    $AXA^{H}-X+Q=0$
where $Q$ is a Hermitian matrix and $A^{H}$ is the conjugate transpose of $A$, while the continuous-time Lyapunov equation is
    $AX+XA^{H}+Q=0$.

## Application to stability

In the following theorems $A,P,Q\in \mathbb {R} ^{n\times n}$, and $P$ and $Q$ are symmetric. The notation $P>0$ means that the matrix $P$ is positive definite.
Theorem (continuous time version). Given any $Q>0$, there exists a unique $P>0$ satisfying $A^{T}P+PA+Q=0$ if and only if the linear system ${\dot {x}}=Ax$ is globally asymptotically stable. The quadratic function $V(x)=x^{T}Px$ is a Lyapunov function that can be used to verify stability.
Theorem (discrete time version). Given any $Q>0$, there exists a unique $P>0$ satisfying $A^{T}PA-P+Q=0$ if and only if the linear system $x_{t+1}=Ax_{t}$ is globally asymptotically stable. As before, $x^{T}Px$ is a Lyapunov function.

## Computational aspects of solution

The Lyapunov equation is linear; therefore, if $X$ contains $n$ entries, the equation can be solved in ${\mathcal {O}}(n^{3})$ time using standard matrix factorization methods.
However, specialized algorithms are available which can yield solutions much quicker owing to the specific structure of the Lyapunov equation. For the discrete case, the Schur method of Kitagawa is often used. For the continuous Lyapunov equation the Bartels–Stewart algorithm can be used.

## Analytic solution

Defining the vectorization operator $\operatorname {vec} (A)$ as stacking the columns of a matrix $A$ and $A\otimes B$ as the Kronecker product of $A$ and $B$, the continuous time and discrete time Lyapunov equations can be expressed as solutions of a matrix equation. Furthermore, if the matrix $A$ is "stable", the solution can also be expressed as an integral (continuous time case) or as an infinite sum (discrete time case).

### Discrete time

Using the result that $\operatorname {vec} (ABC)=(C^{T}\otimes A)\operatorname {vec} (B)$, one has
    $(I_{n^{2}}-{\bar {A}}\otimes A)\operatorname {vec} (X)=\operatorname {vec} (Q)$
where $I_{n^{2}}$ is a conformable identity matrix and ${\bar {A}}$ is the element-wise complex conjugate of $A$. One may then solve for $\operatorname {vec} (X)$ by inverting or solving the linear equations. To get $X$, one must just reshape $\operatorname {vec} (X)$ appropriately.
Moreover, if $A$ is stable (in the sense of Schur stability, i.e., having eigenvalues with magnitude less than 1), the solution $X$ can also be written as
    $X=\sum _{k=0}^{\infty }A^{k}Q(A^{H})^{k}$.
For comparison, consider the one-dimensional case, where this just says that the solution of $(1-a^{2})x=q$ is
    $x={\frac {q}{1-a^{2}}}=\sum _{k=0}^{\infty }qa^{2k}$.

### Continuous time

Using again the Kronecker product notation and the vectorization operator, one has the matrix equation
    $(I_{n}\otimes A+{\bar {A}}\otimes I_{n})\operatorname {vec} X=-\operatorname {vec} Q,$
where ${\bar {A}}$ denotes the matrix obtained by complex conjugating the entries of $A$.
Similar to the discrete-time case, if $A$ is stable (in the sense of Hurwitz stability, i.e., having eigenvalues with negative real parts), the solution $X$ can also be written as
    $X=\int _{0}^{\infty }{e}^{A\tau }Q\mathrm {e} ^{A^{H}\tau }d\tau$,
which holds because
    ${\begin{aligned}AX+XA^{H}=&\int _{0}^{\infty }A{e}^{A\tau }Q\mathrm {e} ^{A^{H}\tau }+{e}^{A\tau }Q\mathrm {e} ^{A^{H}\tau }A^{H}d\tau \\=&\int _{0}^{\infty }{\frac {d}{d\tau }}{e}^{A\tau }Q\mathrm {e} ^{A^{H}\tau }d\tau \\=&{e}^{A\tau }Q\mathrm {e} ^{A^{H}\tau }{\bigg |}_{0}^{\infty }\\=&-Q.\end{aligned}}$
For comparison, consider the one-dimensional case, where this just says that the solution of $2ax=-q$ is
    $x={\frac {-q}{2a}}=\int _{0}^{\infty }q{e}^{2a\tau }d\tau$.

## Relationship Between Discrete and Continuous Lyapunov Equations

We start with the continuous-time linear dynamics:
    ${\dot {\mathbf {x} }}=\mathbf {A} \mathbf {x}$.
And then discretize it as follows:
    ${\dot {\mathbf {x} }}\approx {\frac {\mathbf {x} _{t+1}-\mathbf {x} _{t}}{\delta }}$
Where $\delta >0$ indicates a small forward displacement in time. Substituting the bottom equation into the top and shuffling terms around, we get a discrete-time equation for $\mathbf {x} _{t+1}$.
$\mathbf {x} _{t+1}=\mathbf {x} _{t}+\delta \mathbf {A} \mathbf {x} _{t}=(\mathbf {I} +\delta \mathbf {A} )\mathbf {x} _{t}=\mathbf {B} \mathbf {x} _{t}$
Where we've defined $\mathbf {B} \equiv \mathbf {I} +\delta \mathbf {A}$. Now we can use the discrete time Lyapunov equation for $\mathbf {B}$:
$\mathbf {B} ^{T}\mathbf {M} \mathbf {B} -\mathbf {M} =-\delta \mathbf {Q}$
Plugging in our definition for $\mathbf {B}$, we get:
$(\mathbf {I} +\delta \mathbf {A} )^{T}\mathbf {M} (\mathbf {I} +\delta \mathbf {A} )-\mathbf {M} =-\delta \mathbf {Q}$
Expanding this expression out yields:
$(\mathbf {M} +\delta \mathbf {A} ^{T}\mathbf {M} )(\mathbf {I} +\delta \mathbf {A} )-\mathbf {M} =\delta (\mathbf {A} ^{T}\mathbf {M} +\mathbf {M} \mathbf {A} )+\delta ^{2}\mathbf {A} ^{T}\mathbf {M} \mathbf {A} =-\delta \mathbf {Q}$
Recall that $\delta$ is a small displacement in time. Letting $\delta$ go to zero brings us closer and closer to having continuous dynamics—and in the limit we achieve them. It stands to reason that we should also recover the continuous-time Lyapunov equations in the limit as well. Dividing through by $\delta$ on both sides, and then letting $\delta \to 0$ we find that:
$\mathbf {A} ^{T}\mathbf {M} +\mathbf {M} \mathbf {A} =-\mathbf {Q}$
which is the continuous-time Lyapunov equation, as desired.