2016-08-05 177 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