我的目标是解决称为Lyapunov方程的方程组,即在以下方程中找到x:
A*X + X*transpose(A) +Q = 0
加上另一个X*v = 0
其中所有矩阵A,X,Q均为n乘n矩阵,v为长度为n的向量。
如何在matlab中找到这样的X?
答案 0 :(得分:1)
在Matlab中求解Lyapunov方程非常简单。连续和离散Lyapunov方程都有内置函数:
连续Lyapunov方程:lyap
(see Matlab documentation here)
离散Lyapunov方程:dlyap
(see Matlab documentation here)
额外注意:如果链接不起作用,或者您希望快速检查离线的Matlab函数文档,则每个内置的Matlab函数都有一个可以通过{访问的简短帮助页面{1}}。
此外,通过在Matlab终端中键入help NameOfTheFunction
,也可以离线检索扩展帮助页面(在Web上也可以看到)和示例。
给出以下连续Lyapunov方程:
doc NameOfTheFunction
Matlab中对稳定A*X + X*transpose(A) + Q = 0
和正定A
的解决方案如下:
Q
在某些情况下,等式略有不同:
X = lyap(A,Q)
这个等式称为Sylvester方程,并且可以用Matlab的内置Lyapunov函数再次求解:
A*X + X*B + C = 0
对于离散情况,存在相同的模拟解决方案步骤,其中Lyapunov和Sylvester方程看起来略有不同:
X = lyap(A,B,C)