解线性方程组

时间:2016-08-05 08:21:45

标签: matlab linear-algebra equation-solving

我的目标是解决称为Lyapunov方程的方程组,即在以下方程中找到x:

A*X + X*transpose(A) +Q = 0

加上另一个X*v = 0

的线性约束

其中所有矩阵A,X,Q均为n乘n矩阵,v为长度为n的向量。

如何在matlab中找到这样的X?

1 个答案:

答案 0 :(得分:1)

解决方案

在Matlab中求解Lyapunov方程非常简单。连续和离散Lyapunov方程都有内置函数:

额外注意:如果链接不起作用,或者您希望快速检查离线的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)