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=b2am1x1+am2x2++amnxn=bm

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

A=(a11a1nam1amn)

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

b=(b1bm)

Введенный в R2012b