The Lyapunov equation is of form
$$AX + XA^\top = Q$$
where \(A\) and \(Q\) are square matrices of same size. Above form is also known as continuous form.
This is a wrapper of armadillo
's sylvester
function.
lyapunov(A, Q)
a \((p\times p)\) matrix as above.
a \((p\times p)\) matrix as above.
a solution matrix \(X\) of size \((p\times p)\).
Sanderson C, Curtin R (2016). “Armadillo: A Template-Based C++ Library for Linear Algebra.” The Journal of Open Source Software, 1(2), 26.
Eddelbuettel D, Sanderson C (2014). “RcppArmadillo: Accelerating R with High-Performance C++ Linear Algebra.” Computational Statistics and Data Analysis, 71, 1054--1063.
## simulated example
# generate square matrices
A = matrix(rnorm(25),nrow=5)
X = matrix(rnorm(25),nrow=5)
Q = A%*%X + X%*%t(A)
# solve using 'lyapunov' function
solX = lyapunov(A,Q)
if (FALSE) {
pm1 = "* Experiment with Lyapunov Solver"
pm2 = paste("* Absolute Error : ",norm(solX-X,"f"),sep="")
pm3 = paste("* Relative Error : ",norm(solX-X,"f")/norm(X,"f"),sep="")
cat(paste(pm1,"\n",pm2,"\n",pm3,sep=""))
}