簡體   English   中英

在MATLAB中找到未知矩陣的所有元素?

[英]Find the all elements of unknown matrix in MATLAB?

我有一個 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嗎?

您還可以使用符號數學來創建線性方程組,然后求解該系統:

% 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

你應該知道矩陣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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM