mldivide, \

Символьная матрица покинула деление

Синтаксис

X = A\B
X = mldivide(A,B)

Описание

пример

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]

Входные параметры

свернуть все

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

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

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

свернуть все

Решение, возвращенное как символьное число, переменная, выражение, функция, вектор или матрица.

Советы

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

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

    syms x
    [sym(0)\sym(1), sym(0)\sym(-1), sym(0)\x]
    ans =
    [ Inf, -Inf, Inf*x]

Смотрите также

| | | | | | | | | |

Представлено до R2006a