linalg
:: rank
Ранг матрицы
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
linalg::rank(A
) linalg::rank(S
)
linalg::rank(A)
вычисляет ранг матричного A.
linalg::rank(S)
вычисляет ранг матрицы, столбцы которой являются векторами в S.
Ранг строки матрицы является максимальным количеством линейно независимых векторов - строк из той матрицы. Ранг столбца матрицы является максимальным количеством линейно независимых вектор-столбцов той матрицы. Для каждой матрицы ее ранг строки равен ее рангу столбца. Этот номер называется рангом матрицы.
Звонок компонента A
или векторов, данных в S
, должен быть интегральной областью (область категории Cat::IntegralDomain
).
linalg::rank
заменяет символьные элементы матрицы случайными целыми числами между 1 и 1010. Затем функция вычисляет ранг получившейся числовой матрицы Исключением Гаусса (см. linalg::gaussElim
). Этот подход вводит крошечный шанс получения неправильного результата.
linalg::rank
не упрощает специальные функции и алгебраические числа. Для некоторых матриц этот подход приводит к неправильным результатам. Смотрите Пример 3.
Задайте следующий матричный A
по ℤ:
MatZ := Dom::Matrix(Dom::Integer): A := MatZ([[1, 2, 3, 4], [-1, 0, 1, 0], [3, 5, 6, 9]])
Вычислите ранг матричного A
:
linalg::rank(A)
Используйте эти три вектора, чтобы задать столбцы матричного A
. Вычислите ранг A
:
MatZ := Dom::Matrix(Dom::Integer): S:= { MatZ([0,1,1]), MatZ([0,1,0]), MatZ([0,0,1]) }: linalg::rank(S)
Функция linalg::rank
не использует правил упрощения для специальных функций, алгебраические числа (радикалы), и так далее. Если linalg::rank
вычисляет промежуточные выражения, которые могут быть упрощены до нуля, функция может возвратить неправильные результаты. Например, создайте следующие матрицы:
A := matrix([[exp(x + y), exp(x)], [exp(y), 1]]); B := matrix([[sin(x)^2 + cos(x)^2, 1], [1, 1]]); C := matrix([[sqrt(6), sqrt(2)], [sqrt(3), 1]])
Существует только одна независимая строка в каждой из этих матриц. Ранг матриц A
, B
и C
равняется 1. Функция linalg::rank
возвращается 2, потому что она не упрощает выражения, sin 2 + cos 2 - 1, и:
linalg::rank(A), linalg::rank(B), linalg::rank(C)
|
Матрица области категории |
|
Список или набор вектор-столбцов той же размерности (вектор-столбцом является n ×1 матрица области категории |
Неотрицательное целое число