我有一個 4x4 矩陣,我必須求解這個 lyapnov 方程并找到滿足以下方程的未知矩陣。
a = [0 1 0 0;0 0 -1 0;0 0 0 1;0 0 5 0];
f = [-1 1 0 0;-1 -1 0 0;0 0 -1.5 0.5;0 0 -0.5 -1.5];
b = [0;1;0;-2];
k = [1 0 1 0];
給定方程a t - tf = b k。
a*t - t*f = b*k ;
其中 t = 4x4 未知矩陣。你能幫我找到矩陣t嗎?
uj5u.com熱心網友回復:
您還可以使用符號數學來創建線性方程組,然后求解該系統:
% Your variables
a = [0 1 0 0;0 0 -1 0;0 0 0 1;0 0 5 0];
f = [-1 1 0 0;-1 -1 0 0;0 0 -1.5 0.5;0 0 -0.5 -1.5];
b = [0;1;0;-2];
k = [1 0 1 0];
% The unknows:
t = sym('t', [4 4]);
% Create the symbolic system of linear equation
eq = a*t - t*f == b*k;
% Equation to matrix
[A,b] = equationsToMatrix(eq);
% Solve the system and get a numeric solution
sol = double(reshape(A\b,[4,4])).'
% sol =
%
% 0.0690 -0.3276 -0.0853 -0.1973
% 0.2586 0.3966 0.2267 0.2533
% -0.3448 0.1379 -0.5333 0.2667
% 0.2069 -0.4828 0.6667 -0.6667
uj5u.com熱心網友回復:
你應該知道矩陣f是可逆的,我們可以dlyap像下面這樣使用
t = dlyap(a,inv(f),-b*k/f)
或更簡單的
t = lyap(a,-f,-b*k)
這使
t =
0.0690 -0.3276 -0.0853 -0.1973
0.2586 0.3966 0.2267 0.2533
-0.3448 0.1379 -0.5333 0.2667
0.2069 -0.4828 0.6667 -0.6667
為了驗證這一點
>> a*t-t*f-b*k
ans =
1.0e-15 *
0 0 0.0555 0
0 0 0 -0.0555
0.0833 0 0.1110 0
0 0.1110 0 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/489873.html
