MATLAB Матричная задача - PullRequest
0 голосов
/ 16 мая 2011

У меня есть система уравнений (всего 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 = B\A, что нет, и дает мне значения для 5 X неизвестных.

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

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

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

Ответы [ 2 ]

3 голосов
/ 16 мая 2011

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

0 голосов
/ 16 мая 2011

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

A x = b

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

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

...