exponenta event banner

equationsToMatrix

Преобразование линейных уравнений в матричную форму

Описание

пример

[A,b] = equationsToMatrix(eqns) преобразует уравнения eqns в форму матрицы. eqns должна быть линейной системой уравнений во всех переменных, которые symvar находит в eqns.

пример

[A,b] = equationsToMatrix(eqns,vars) новообращенные eqns в форму матрицы, где eqns должен быть линейным в vars.

пример

A = equationsToMatrix(___) возвращает только матрицу коэффициентов системы уравнений.

Примеры

свернуть все

Преобразование системы линейных уравнений в матричную форму. equationsToMatrix автоматически обнаруживает переменные в уравнениях с помощью symvar. Матрица возвращенных коэффициентов соответствует порядку переменных, определяемому symvar.

syms x y z
eqns = [x+y-2*z == 0,
        x+y+z == 1,
        2*y-z == -5];
[A,b] = equationsToMatrix(eqns)
A = 

(11-211102-1)[sym(1), sym(1), -sym(2); sym(1), sym(1), sym(1); sym(0), sym(2), -sym(1)]

b = 

(01-5)[sym(0); sym(1); -sym(5)]

vars = symvar(eqns)
vars = (xyz)[x, y, z]

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

vars = [x,z,y];
[A,b] = equationsToMatrix(eqns,vars)
A = 

(1-211110-12)[sym(1), -sym(2), sym(1); sym(1), sym(1), sym(1); sym(0), -sym(1), sym(2)]

b = 

(01-5)[sym(0); sym(1); -sym(5)]

Преобразование линейной системы уравнений в матричную форму путем задания независимых переменных. Это полезно, когда уравнение является только линейным в некоторых переменных.

Для этой системы укажите переменные как [s t] поскольку система не является линейной в r.

syms r s t
eqns = [s-2*t+r^2 == -1
        3*s-t == 10];
vars = [s t];
[A,b] = equationsToMatrix(eqns,vars)
A = 

(1-23-1)[sym(1), -sym(2); sym(3), -sym(1)]

b = 

(-r2-110)[- r^2 - 1; sym(10)]

Возвращает только матрицу коэффициентов уравнений, указывая один выходной аргумент.

syms x y z
eqns = [x+y-2*z == 0,
        x+y+z   == 1,
        2*y-z   == -5];
vars = [x y z];
A = equationsToMatrix(eqns,vars)
A = 

(11-211102-1)[sym(1), sym(1), -sym(2); sym(1), sym(1), sym(1); sym(0), sym(2), -sym(1)]

Рассмотрим следующую систему линейных уравнений, являющихся функциями времени:

2x (t) + y (t) + z (t) = 2u (t) -x (t) + y (t) -z (t) = v (t) x (t) + 2y (t) + 3z (t) = -10

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

syms x(t) y(t) z(t) u(t) v(t)
eqn1 = 2*x + y + z == 2*u;
eqn2 = -x + y - z == v;
eqn3 = x + 2*y + 3*z == -10;
eqn = [eqn1; eqn2; eqn3]
eqn(t) = 

(2x(t)+y(t)+z(t)=2u(t)y(t)-x(t)-z(t)=v(t)x(t)+2y(t)+3z(t)=-10)[2*x(t) + y(t) + z(t) == 2*u(t); y(t) - x(t) - z(t) == v(t); x(t) + 2*y(t) + 3*z(t) == -10]

Укажите независимые переменные x (t), y (t) и z (t) в уравнениях как символический векторvars. Используйте equationsToMatrix функция преобразования системы уравнений в матричную форму.

vars = [x(t); y(t); z(t)];
[A,b] = equationsToMatrix(eqn,vars)
A = 

(211-11-1123)[sym(2), sym(1), sym(1); -sym(1), sym(1), -sym(1); sym(1), sym(2), sym(3)]

b = 

(2u(t)v(t)-10)[2*u(t); v(t); -sym(10)]

Решите матричную форму уравнений с помощью linsolve функция.

X = linsolve(A,b)
X = 

(10u(t)9-v(t)9+2094u(t)9+5v(t)9-109-2u(t)3-v(t)3-103)[(10*u(t))/9 - v(t)/9 + sym(20/9); (4*u(t))/9 + (5*v(t))/9 - sym(10/9); - (2*u(t))/3 - v(t)/3 - sym(10/3)]

Вычислите решение z (t) для функций u (t) = cos (t) и v (t) = sin (2t). Постройте график решения z (t).

zSol = subs(X(3),[u(t) v(t)],[cos(t) sin(2*t)])
zSol = 

-sin(2t)3-2cos(t)3-103- sin(2*t)/3 - (2*cos(t))/3 - sym(10/3)

fplot(zSol)

Figure contains an axes. The axes contains an object of type functionline.

Входные аргументы

свернуть все

Линейные уравнения, определяемые как вектор символьных уравнений или выражений. Символьные уравнения определяются с помощью == оператор, например, x + y == 1. Для символьных выражений: equationsToMatrix предполагает, что правая сторона равна 0.

Уравнения должны быть линейными в терминах vars.

Независимые переменные в eqns, заданный как вектор символьных переменных или символьных функций.

Выходные аргументы

свернуть все

Матрица коэффициентов системы линейных уравнений, заданная как символьная матрица.

Вектор, содержащий правые стороны уравнений, заданный как символьная матрица.

Подробнее

свернуть все

Матричное представление системы линейных уравнений

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

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

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

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

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

b→= (b1⋮bm)

Представлен в R2012b