exponenta event banner

разряд

Найти ранг символьной матрицы

Синтаксис

Описание

пример

rank(A) возвращает ранг символьной матрицы A.

Примеры

Найти ранг матрицы

syms a b c d
A = [a b; c d];
rank(A)
ans =
     2

Ранг символьных матриц является точным

Символьные вычисления возвращают точный ранг матрицы, в то время как числовые вычисления могут страдать от ошибок округления. Этот точный расчет полезен для плохо кондиционированных матриц, таких как матрица Гильберта. Ранг матрицы Гильберта порядка n равен n.

Найти ранг матрицы Гильберта порядка 15 численно. Затем преобразуйте числовую матрицу в символьную, используя sym и найти ранг символически.

H = hilb(15);
rank(H)
rank(sym(H))
ans =
    12
ans =
    15

Символьный расчет возвращает правильный ранг 15. Числовое вычисление возвращает неверный ранг 12 из-за ошибок округления.

Ранговая функция не упрощает символьные вычисления

Рассмотрим эту матрицу

A = [1 − sin2 (x) cos2 (x) 11].

После упрощения 1-sin(x)^2 кому cos(x)^2, матрица имеет ранг 1. Однако rank возвращает неверный ранг 2 поскольку он не учитывает идентичности, удовлетворяемые специальными функциями, возникающими в элементах матрицы. Продемонстрируйте неправильный результат.

syms x
A = [1-sin(x) cos(x); cos(x) 1+sin(x)];
rank(A)
ans =
     2

rank возвращает неверный результат, поскольку выходные данные промежуточных шагов не упрощены. Несмотря на отсутствие отказоустойчивого обхода, можно упростить символьные выражения, используя числовую подстановку и оценивая подстановку с помощью vpa.

Найти правильный ранг путем замены x с числом и оценкой результата с помощью vpa.

rank(vpa(subs(A,x,1)))
ans =
     1

Однако даже после числовой подстановки rank может вернуть неверные результаты из-за ошибок округления.

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

свернуть все

Ввод, определяемый числом, вектором или матрицей или символьным числом, вектором или матрицей.

См. также

| |

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