вопрос о решении системы уравнений с использованием символической математики - PullRequest
0 голосов
/ 20 июня 2019

Я хочу использовать символический символ для решения системы линейных уравнений. Поэтому я готовлю следующий код.

A=[1,2;3,4];

% syms x
x=sym('x_%d',[2 1]);

eqn=A*x==[1;2];

result=solve(eqn,x)

Интересно, что это работает, но когда я читаю переменную result, она дает структуру 1X1 с x_1 и x_2 1X1 sym. Но что я ожидаю получить должно быть 2 реальные значения, почему? Может кто-нибудь объяснить это? Примечание: не хотите использовать A ^ -1 * [1; 2] для получения ответа.

1 Ответ

3 голосов
/ 20 июня 2019
  • Если вы установите выход единственная переменная solve возвращает структуру тип данных, который содержит все решения, чтобы получить использование каждого решения точка ., например, result.x_1 или result.x_2

Код выглядит следующим образом

A=[1,2;3,4];

% syms x
x=sym('x_%d',[2 1]);

 eqn=A*x==[1;2];
result = solve(eqn,x);
result.x_1
% 0
result.x_2
% 1/2

  • Если вы хотите иметь result в качестве массива, используйте несколько выходных форматов , например result(1) для первой переменной, result(2) для второй переменной

Код выглядит следующим образом

A=[1,2;3,4];

% syms x
x=sym('x_%d',[2 1]);

 eqn=A*x==[1;2];

[result(1), result(2)] = solve(eqn,x);
result
% result = [0 , 1/2]
...