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