Определитель и ранг матрицы. Определение нормы вектора.
Для нахождения определителя (детерминанта) и ранга матриц в 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') возвращает минимальное из абсолютных значений элементов вектора.
