Решает систему линейных уравнений

В этом разделе показано, как решить систему линейных уравнений с помощью Symbolic Math Toolbox™.

Решите систему линейных уравнений с помощью linsolve

Система линейных уравнений

a11x1+a12x2++a1nxn=b1a21x1+a22x2++a2nxn=b2am1x1+am2x2++amnxn=bm

может быть представлена в виде матричного уравнения Ax=b, где A - матрица коэффициентов,

A=(a11a1nam1amn)

и b - вектор, содержащий правые стороны уравнений,

b=(b1bm)

Если у вас нет системы линейных уравнений в виде AX = B, использование equationsToMatrix для преобразования уравнений в эту форму. Примите во внимание следующую систему.

2x+y+z=2x+yz=3x+2y+3z=10

Объявить систему уравнений.

syms x y z
eqn1 = 2*x + y + z == 2;
eqn2 = -x + y - z == 3;
eqn3 = x + 2*y + 3*z == -10;

Использовать equationsToMatrix для преобразования уравнений в форму AX = B. Второй вход в equationsToMatrix задает независимые переменные в уравнениях.

[A,B] = equationsToMatrix([eqn1, eqn2, eqn3], [x, y, z])
A =
[  2, 1,  1]
[ -1, 1, -1]
[  1, 2,  3]
 
B =
   2
   3
 -10

Использовать linsolve для решения AX = B для вектора неизвестных X.

X = linsolve(A,B)
X =
  3
  1
 -5

Из X, x = 3, y = 1 и z = -5.

Решите систему линейных уравнений Используя решатель

Использовать solve вместо linsolve если у вас есть уравнения в виде выражений, а не матрицы коэффициентов. Рассмотрим ту же систему линейных уравнений.

2x+y+z=2x+yz=3x+2y+3z=10

Объявить систему уравнений.

syms x y z
eqn1 = 2*x + y + z == 2;
eqn2 = -x + y - z == 3;
eqn3 = x + 2*y + 3*z == -10;

Решить систему уравнений используя solve. Входы solve являются вектором уравнений и вектором переменных, для решения уравнений.

sol = solve([eqn1, eqn2, eqn3], [x, y, z]);
xSol = sol.x
ySol = sol.y
zSol = sol.z
xSol =
3
ySol =
1
zSol =
-5

solve возвращает решения в массиве структур. Для доступа к решениям индексируйте в массив.

Похожие темы