Определитель и ранг матрицы. Определение нормы вектора.
Для нахождения определителя (детерминанта) и ранга матриц в MATLAB имеются следующие функции:
- det(X) – возвращает определитель квадратной матрицы X. Если X содержит только целые элементы, то результат – тоже целое число. Использование det(X)=0 как теста на вырожденность матрицы действительно только для матрицы малого порядка с целыми элементами.
Пример:
>
>
A
=
[
2.3.6
:
1.8.4
;
3.6.7
]
A
=
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
Определение нормы вектора
Норма вектора – скаляр, дающий представление о величине элементов вектора. Нужно различать норму матрицы и норму вектора. Функция norm определяет, является ли ее аргументом (входным аргументом в терминологии MATLAB) вектор или матрица, и измеряет несколько различных типов норм векторов:
- norm(X)=norm(X,2) – вторая норма возвращает наибольшее сингулярное число X, max(svd(X));
- norm(X.p), где р – целое положительное число, – возвращает корень степени р из суммы абсолютных значений элементов вектора, возведенных в степень р. При р = 1 это может совпадать либо с первой нормой, либо с нормой неопределенности матриц;
- norm(X, 'inf') возвращает максимальное из абсолютных значений элементов вектора;
- norm(X, '-Inf') возвращает минимальное из абсолютных значений элементов вектора.