Левое деление символьной матрицы
решает символьную систему линейных уравнений в матричной форме, X
= A
\B
A*X = B
для X
.
Если решение не существует или если это не уникально, \
оператор выдает предупреждение.
A
может быть прямоугольная матрица, но уравнения должны быть сопоставимыми. Символьный оператор \
не вычисляет решения методом наименьших квадратов.
Решите систему линейных уравнений, заданных квадратной матрицей коэффициентов и вектором из правых сторон уравнений.
Создайте матрицу, содержащую коэффициент терминов уравнения и вектор, содержащий правые стороны уравнений.
A = sym(pascal(4)) b = sym([4; 3; 2; 1])
A = [ 1, 1, 1, 1] [ 1, 2, 3, 4] [ 1, 3, 6, 10] [ 1, 4, 10, 20] b = 4 3 2 1
Используйте оператор \
решить эту систему.
X = A\b
X = 5 -1 0 0
Создайте матрицу, содержащую коэффициенты терминов уравнения и вектор, содержащий правые стороны уравнений.
A = sym(magic(4)) b = sym([0; 1; 1; 0])
A = [ 16, 2, 3, 13] [ 5, 11, 10, 8] [ 9, 7, 6, 12] [ 4, 14, 15, 1] b = 0 1 1 0
Найдите ранг системы. Эта система содержит четыре уравнения, но ее рангом является 3
. Поэтому система имеет неполный ранг. Это означает, что одна переменная системы весьма зависима и может быть описана в терминах других переменных.
rank(horzcat(A,b))
ans = 3
Попытайтесь решить эту систему с помощью символьного \
оператор. Поскольку система имеет неполный ранг, возвращенное решение не уникально.
A\b
Warning: Solution is not unique because the system is rank-deficient. ans = 1/34 19/34 -9/17 0
Создайте матрицу, содержащую коэффициент терминов уравнения и вектор, содержащий правые стороны уравнений.
A = sym(magic(4)) b = sym([0; 1; 2; 3])
A = [ 16, 2, 3, 13] [ 5, 11, 10, 8] [ 9, 7, 6, 12] [ 4, 14, 15, 1] b = 0 1 2 3
Попытайтесь решить эту систему с помощью символьного \
оператор. Оператор выдает предупреждение и возвращает вектор со всем набором элементов к Inf
потому что система уравнений противоречива, и поэтому, никакое решение не существует. Число элементов в итоговом векторе равняется количеству уравнений (строки в матрице коэффициентов).
A\b
Warning: Solution does not exist because the system is inconsistent. ans = Inf Inf Inf Inf
Найдите приведенный ступенчатый по строкам вид матрицы этой системы. Последняя строка показывает, что одно из уравнений уменьшало до 0 = 1
, что означает, что система уравнений противоречива.
rref(horzcat(A,b))
ans = [ 1, 0, 0, 1, 0] [ 0, 1, 0, 3, 0] [ 0, 0, 1, -3, 0] [ 0, 0, 0, 0, 1]
Матричные расчеты, включающие много символьных переменных, могут быть медленными. Чтобы увеличить вычислительную скорость, сократите количество символьных переменных путем заменения данными значениями некоторые переменные.
При делении на нуль, mldivide
рассматривает знак числителя и возвращает Inf
или -Inf
соответственно.
syms x [sym(0)\sym(1), sym(0)\sym(-1), sym(0)\x]
ans = [ Inf, -Inf, Inf*x]
ctranspose
| ldivide
| minus
| mpower
| mrdivide
| mtimes
| plus
| power
| rdivide
| times
| transpose