Октавный оператор \ ошибка

Я работаю в GNU Octave, и мне нужно решить следующее уравнение: A*x=b (A, x, b - матрицы).

A = [1 1; 2 1];
b = [1, 2];

Так я делаю x = A \ b в соответствии с моими рекомендациями. Но я получаю ошибку:

operator \: nonconformant arguments (op1 is 2x2, op2 is 1x2)

Я понимаю, что это значит, но не знаю, как это исправить. Я уже пробовала inv(A) * b,


Кстати, он отлично работает в Matlab. Вот мой сценарий:

A = input('Enter A');
b = input('Enter b');
x = A \ b;
display(x);

1 ответ

Решение

Проблема с размером b это должны быть столбцы, а не строки.

x = A\b.';
% or for clarity
x = A\transpose(b);

Редактировать:

Если вы используете inv опять же нужно использовать правильные размеры:

x = inv(A)*b.';
% or for clarity
x = inv(A)*transpose(b);
Другие вопросы по тегам