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