2016-08-05 179 views
-1

我的目标是解决方程称为Lyapunov方程,即发现在以下等式x的系统:求解系统

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

加上另一个线性约束是X*v = 0

其中所有矩阵A,X,Q都是n×n矩阵,v是长度为n的向量。

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

+3

您是否尝试过使用Google寻找解算器?我相信你会找到许多有用的网站。如果你仍然有问题,请根据你的发现修改原来的问题,并尝试。 [我如何问一个好问题?](http://stackoverflow.com/help/how-to-ask) – Arpi

回答

1

解决方案

在Matlab中求解李雅普诺夫方程非常简单。无论是连续和离散Lyapunov方程具有一个内置的功能:

额外注意事项:如果链接不起作用,或者您想快速检查Matlab函数的文档offlin e,每个内置的Matlab函数都有一个可通过help NameOfTheFunction访问的简短帮助页面。 此外,通过在Matlab终端中键入doc NameOfTheFunction,还可以通过示例离线检索网页上可见的扩展帮助页面。

鉴于下列连续Lyapunov方程:

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

一个稳定A和正在Matlab将溶液明确Q被给定为:

X = lyap(A,Q) 

在某些情况下方程略有不同:

A*X + X*B + C = 0 

这个等式调用Sylvester方程,并与再解内置在Matlab的Lyapunov函数:

X = lyap(A,B,C) 

同样的模拟解决方案的步骤为离散的情况下,李亚普诺夫和Sylvester方程看,其中存在略有不同:

A*X*transpose(A) -X + Q = 0 -> X = dlyap(A,Q) 
A*X*B - X + C = 0 -> X = dlyap(A,B,C) 
+3

常见堆栈溢出约定是在答案中包含样板解决方案代码。外部链接可能会过期。虽然我同意这种情况在MATLAB官方文档中不太可能,但一小段代码确实可以帮助应对闪耀。 –

+0

我会补充一点。 –

+0

@ChristofVermeersch谢谢,我很清楚这一点。然而,lyap是针对矩阵A是满秩的情况(即A的秩是n)。由于我的矩阵A的排名是n-1 lyap不起作用。但是,添加条件X * v = 0会导致X具有唯一的解决方案。但我在问我该怎么做? – solver