Как решить (нетривиальное) решение Ax = 0 для x в MATLAB?Решение матрицы в MATLAB?
A = matrix
x = matrix trying to solve for
Я попытался решить ('A * x = 0', 'x'), но я получаю только 0 для ответа.
Как решить (нетривиальное) решение Ax = 0 для x в MATLAB?Решение матрицы в MATLAB?
A = matrix
x = matrix trying to solve for
Я попытался решить ('A * x = 0', 'x'), но я получаю только 0 для ответа.
Пожалуйста, обратите внимание, что нуль (А) делает то же самое (для ранга дефицитной матрицы) как следующие, но это, используя svd(A)
функции в MATLAB (который, как я уже упоминал в своих комментариях, что null(A)
.).
[U S V] = svd(A);
x = V(:,end)
Подробнее об этом, вот link связанные с этим (не может разместить его здесь из формул).
Если вы хотите более интуитивно понятное чувство разложения сингулярных чисел и собственных значений, проверьте eigshow
в MATLAB.
спасибо за объяснение :) – yxk
Вы можете использовать N = null(A)
, чтобы получить матрицу N
. Любой из столбцов N
(или, действительно, любая линейная комбинация столбцов N
) удовлетворяет Ax = 0
. Это описывает все возможные такие x
- вы только что нашли ортогональный базис для нулевого пространства A
.
Примечание: вы можете найти только x
, если A
имеет нетривиальное нулевое пространство. Это произойдет, если rank(A) < #cols of A
.
Вы можете увидеть, имеет ли MATLAB декомпозицию сингулярного значения в своей панели инструментов. Это даст вам нулевое пространство вектора.
null(A)
предоставит вам прямой ответ. Если вам нужно нетривиальное решение, попробуйте уменьшить форму эшелона строки и перейдите на первую страницу pdf.
R = rref(A)
есть А обратим? – manji
обратимость не имеет особого значения (сама по себе). – Peter
, если A обратимо, единственным решением для Ax = 0 является 0, no? – manji