Определитель и ранг матрицы
Для нахождения
определителя (детерминанта)
и ранга матриц в MATLAB имеются следующие функции:
det(X) — возвращает определитель квадратной матрицы X. Если X содержит только целые элементы, то результат — тоже целое число. Использование det(X)=0 как теста на вырожденность матрицы действительно только для матрицы малого порядка с целыми элементами.
Пример:
» А=[2,3,6:1.8.4;3.6,7]
А =
2 |
3 |
6 | |||||||
1 |
8 |
4 | |||||||
3 |
6 |
7 | |||||||
» det(A)
ans =
-29
Детерминант
матрицы вычисляется на основе треугольного разложения методом исключения Гаусса:
[L.U>lu(A): s=det(L): d=s*prod(diag(U)).
Ранг
матрицы определяется количеством сингулярных чисел, превышающих порог
tol=max(size(A))*nprm(A)*eps.
При этом используется следующий алгоритм:
s=svd(A);tol=max(size(A))*npnri(A)*eps;r=sum(s>tol);
Для вычисления ранга используется функция rank:
rank (А) — возвращает количество сингулярных чисел, которые являются большими, чем заданный по умолчанию допуск;
rank(A.tol) — возвращает количество сингулярных чисел, которые превышают tol. Пример:
» rank(hilbdl))
ans =
10