exponenta event banner

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

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

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

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

a11x1 + a12x2 +... + a1nxn = b1a21x1 + a22x2 +... +a2nxn=b2⋯am1x1+am2x2+... + amnxn = bm

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

A = (a11... a1n⋮⋱⋮am1⋯amn)

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

b→= (b1⋮bm)

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

2x + y + z = 2 x + y z = 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 = 2 x + y z = 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 возвращает решения в массиве структуры. Чтобы получить доступ к решениям, выполните индексирование в массив.

Связанные темы