Как найти устойчивый вектор в Matlab по матрице 3x3 - PullRequest
0 голосов
/ 15 октября 2018

Мне дают матрицу 3х3 [0,4, 0,1, 0,2;0,3, 0,7.0,7;0,3, 0,2, 0,1].Вопрос в том, чтобы найти вектор стационарного состояния.Тем не менее, я должен решить эту проблему с помощью Matlab, и у меня возникают проблемы с получением правильного ответа.Мы должны использовать формулу A (xI) = 0.Я могу решить это вручную, но я не уверен, как ввести это в Matlab.Любая помощь с благодарностью.

1 Ответ

0 голосов
/ 15 октября 2018

Я предполагаю, что вы имели в виду x(A-I)=0, поскольку то, что вы написали, не имеет для меня никакого смысла.Уравнение, которое я написал, подразумевает, что x*A^n=x, что обычно подразумевается под устойчивым состоянием.Решением уравнения является левый собственный вектор A с собственным значением 1.

Вы можете получить собственные векторы и собственные значения A, используя функцию eig.

A = [0.4, 0.1, 0.2; 0.3, 0.7, 0.7; 0.3, 0.2, 0.1];
% Get the eigenvalues (D) and left eigenvectors (W)
[~,D,W] = eig(A);
% Get the index of the eigenvalue closest to 1
[~,idx] = min(abs(diag(D)-1));
% Get associated eigenvector
x = W(:,idx).';

Проверка решения

>> all(abs(x*(A-eye(size(A)))) < 1e-10)
ans =
   logical
    1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...