rank

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

Синтаксис

Описание

пример

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=[1sin2(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