2013-11-14 3 views
-3

Я делаю вводный курс в MATLAB (я новичок), и у меня возникают проблемы с решением вопроса о уравнении матриц.Матричные уравнения в Matlab

Уравнение

AX = C - BX 

Я хочу, чтобы решить для матрицы X. Независимо от того, как я пытался ее решить, я прихожу либо с пустыми руками, либо с какой-то синтаксической ошибкой. Я думаю, что мне не хватает чего-то фундаментального.

Любая помощь по этому вопросу очень ценится.

+2

Было бы лучше, если бы вы отправили свой код вместе с ошибкой, которую вы получаете – Bull

ответ

2

Для того чтобы это уравнение было согласованным, A и Bmust имеют одинаковый размер. Таким образом, вы можете повторно написать уравнение в виде:

(A+B)X = C 

Это может быть решена в MATLAB с:

X = (A+B)\C 

Обратите внимание, что это будет всегда найти решение, независимо от размера A+B :

  • Если A+B является квадратным, вы найдете решение «the».
  • если A+B превышен/недоопределен, он вернет приближение наименьших квадратов к X.

Это зависит от вас, чтобы решить, желательно это или нет.

В случае, если C равно нулю, вы можете использовать null (или посмотреть svd).

+0

@B ...: почему? –

+0

@B ... для точного решения 'A' и' B' должно быть квадратным, но вы можете искать решение наименьшего квадрата, когда 'A' ​​и' B' имеет больше строк, чем столбцы. – Shai

+0

@B ...: Предположим, что 'A = n × m' и' X = m × p', затем 'AX = n × p'. Это означает, что 'C' также должен быть' n × p', и поэтому 'B' должен быть' n × m'. Нет ограничений на значения 'n',' m' и 'p', насколько я могу видеть ... –

Смежные вопросы