Матричная задача MATLAB

У меня есть система уравнений (всего 5) с 5 неизвестными. Я поместил их в матрицы, чтобы попытаться решить, но я не уверен, что это получается правильно. В основном это установка AX = B, где A, X и B — матрицы. A — 5x5, X — 1x5 и B — 5x1.

Когда я использую MATLAB для решения X по формуле X = A\B, он выдает мне предупреждение:

Matrix is singular to working precision.

и дает мне 0 для всех 5 X неизвестных, но если я скажу X = B\A, это не так, и дает мне значения для 5 X неизвестных.

Кто-нибудь знает, что я делаю неправильно? Если это важно, вот как выглядит моя матрица X:

X= [1/C3; 1/P1; 1/P2; 1/P3; 1/P4]

Где C3, P1, P2, P3, P4 мои неизвестные.


person Sysem    schedule 16.05.2011    source источник


Ответы (2)


Ваша матрица сингулярна, что означает, что ее определитель равен 0. Такая система уравнений не дает вам достаточно информации, чтобы найти единственное решение. Одна странность, которую я вижу в вашем вопросе, заключается в том, что X равно 1x5, а B равно 5x1. Это не правильный способ постановки проблемы. Оба X и B должны быть 5x1. Если вам интересно, это не дело в Matlab — это дело в линейной алгебре. Это [5x5]*[1x5] незаконно. Это [5x5]*[5x1] дает результат [5x1]. Это [1x5]*[5x5] дает результат [1x5]. Сначала проверьте алгебру, а затем проверьте, равен ли определитель (функция det в Matlab) 0.

person Phonon    schedule 16.05.2011
comment
Знал, что это будет моя ошибка ;) проверил, и моя матрица A имеет размер 5x5, матрица B имеет размер 5x1, а матрица X также имеет размер 5x1. Это имеет больше смысла? Моя линейная алгебра в данный момент немного шатается. - person Sysem; 16.05.2011
comment
Да, так и должно быть. Вы проверили, равен ли определитель вашей матрицы 0? - person Phonon; 16.05.2011
comment
Да, для матрицы A det равен 0. Так вот в чем проблема? Должно быть, я сделал ошибку, составив матрицы из своих уравнений. - person Sysem; 16.05.2011
comment
Не обязательно. Это означает только то, что ваши векторы не являются линейно независимыми. Я считаю, что это видео дает хорошее объяснение концепции линейной независимости. . - person Phonon; 16.05.2011
comment
Да я вижу. Однако это не объясняет, почему мои значения в X равны нулю, поскольку этого не должно быть. - person Sysem; 16.05.2011
comment
Когда Matlab не может дать вам решение, он устанавливает в вашем ответе все нули. Это просто вещь Matlab. - person Phonon; 16.05.2011
comment
Если выложите код, я могу проверить его. и посмотреть, какой результат даст мой Matlab. Они могут отличаться от дистрибутива к дистрибутиву. - person Phonon; 16.05.2011

Итак, теперь нужно выяснить, почему A в единственном числе. (Обратите внимание, что, возможно, вы захотите решить

A x = b

в случаях с квадратным и единственным числом A, но они будут только в случаях, когда b находится в пространстве диапазона A.)

Может быть, вы можете записать свою матрицу A и вектор b (так как это только 5x5)? Или объясните, как вы его создаете. Это может дать ключ к разгадке того, почему A не является полным рангом или почему b не находится в пространстве диапазона A.

person Chris A.    schedule 16.05.2011