How to solve the Lyapunov equation with unknowns
5 次查看(过去 30 天)
显示 更早的评论
I'd like to ask those with unknowns Lyapunov What function does the equation use
The original equation is MV+VM‘=-D,
The matrix code is like this , There is only one unknown :
M=[0 w1 0 0 0 0;-q1 -r1 0 0 -g1u -g1v;0 0 0 w2 0 0;0 0 -q2 -r2 -g2u -g2v;g1v 0 g2v 0 -k x;-g1u 0 -g2u 0 -x -k];
d=[0 r1*(2n1+1) 0 r2(2*n2+1) k k];
D=diag(d);
V=lyap(M,D)
The following error occurred after running , Only numeric matrices can be calculated :
Misuse lyap (line 35)
The input arguments of the "lyap" command must be numeric arrays.
error Untitled (line 38)
V=lyap(M,D)
Thank you
6 个评论
采纳的回答
Ivo Houtzager
2022-7-25
One inefficient way is too convert the Lyaponuv Matrix equation to linear system using the vectorization rule, and solve the linear system.
A = kron(eye(6),M) + kron(M,eye(6));
B = D(:);
X = A\B;
V = reshape(X,6,6);
8 个评论
Torsten
2022-7-26
编辑:Torsten
2022-7-26
If "\" and "kron" can deal with symbolic parameters, then in principle the problem can be solved using Ivo Houtzager 's suggestion. The inversion of a matrix does only use subdeterminants of the matrix itself - no roots are needed.
But even if it theoretically works: for a 36x36 or even 144x144 matrix, the expressions involved will become useless in my opinion.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear Algebra 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!