exponenta event banner

mldivide,\

Символьная матрица левого деления

Синтаксис

Описание

пример

X = A\B решает символическую систему линейных уравнений в матричной форме, A*X = B для X.

Если решение не существует или не является уникальным, \ оператор выдает предупреждение.

A может быть прямоугольной матрицей, но уравнения должны быть последовательными. Символьный оператор \ не вычисляет решения методом наименьших квадратов.

X = mldivide(A,B) эквивалентно x = A\B.

Примеры

Система уравнений в матричной форме

Решите систему линейных уравнений, заданную квадратной матрицей коэффициентов и вектором правых сторон уравнений.

Создайте матрицу, содержащую коэффициент членов уравнения, и вектор, содержащий правые стороны уравнений.

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]

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

свернуть все

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

Правая сторона, заданная как символьное число, скалярная переменная, переменная матрицы (начиная с R2021a), функция, выражение или вектор или матрица символьных скалярных переменных.

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

свернуть все

Решение, возвращаемое в виде символьного числа, скалярной переменной, матричной переменной (начиная с R2021a), функции, выражения или вектора или матрицы символьных скалярных переменных.

Совет

  • Матричные вычисления, включающие множество символьных переменных, могут быть медленными. Чтобы увеличить вычислительную скорость, уменьшите число символьных переменных, подставив заданные значения для некоторых переменных.

  • При делении на ноль mldivide рассматривает знак числителя и возвращает Inf или -Inf соответственно.

    syms x
    [sym(0)\sym(1), sym(0)\sym(-1), sym(0)\x]
    ans =
    [ Inf, -Inf, Inf*x]
Представлен до R2006a