exponenta event banner

mrdivide ,/

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

Синтаксис

Описание

пример

X = B/A решает символическую систему линейных уравнений в матричной форме, X*A = B для X. Матрицы A и B должен содержать одинаковое количество столбцов. Правое деление матриц B/A эквивалентно (A'\B')'.

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

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

X = mrdivide(B,A) эквивалентно x = B/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 = b/A
X =
[ 5, -1, 0, 0]

Система с дефицитом ранга

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

A = sym(magic(4))'
b = sym([0 1 1 0])
A =
[ 16,  5,  9,  4]
[  2, 11,  7, 14]
[  3, 10,  6, 15]
[ 13,  8, 12,  1]
 
b =
[ 0, 1, 1, 0]

Найдите ранг системы. Эта система содержит четыре уравнения, но ее ранг 3. Следовательно, система имеет недостаточный ранг. Это означает, что одна переменная системы не является независимой и может быть выражена в терминах других переменных.

rank(vertcat(A,b))
ans =
3

Попробуйте решить эту систему с помощью символического / оператор. Поскольку система имеет недостаток ранга, возвращаемое решение не является уникальным.

b/A
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,  5,  9,  4]
[  2, 11,  7, 14]
[  3, 10,  6, 15]
[ 13,  8, 12,  1]
 
b =
[ 0, 1, 2, 3]

Попробуйте решить эту систему с помощью символического / оператор. Оператор выдает предупреждение и возвращает вектор со всеми элементами, имеющими значение Inf потому что система уравнений противоречива, и поэтому решения не существует. Число элементов равно количеству уравнений (строк в матрице коэффициентов).

b/A
Warning: Solution does not exist because the system is inconsistent. 

ans =
[ Inf, Inf, Inf, Inf]

Найдите форму уменьшенного эшелона строк этой системы. В последней строке показано, что одно из уравнений, приведенное к 0 = 1, что означает, что система уравнений противоречива.

rref(vertcat(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), функции, выражения или вектора или матрицы символьных скалярных переменных.

Совет

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

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

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