Обращение матриц. Функции inv, pinv.
Обращение матриц – одна из наиболее распространенных операций матричного анализа. Обратной называют матрицу, получаемую в результате деления единичной матрицы Е на исходную матрицу X. Таким образом, Х^-1=Е/Х. Следующие функции обеспечивают реализацию данной операции:
- inv(X) – возвращает матрицу, обратную квадратной матрице X. Предупреждающее сообщение выдается, если X плохо масштабирована или близка к вырожденной.
Пример:
>> inv(rand(4.4)) ans =2.2631-2.3495-0.4696-0.6631-0.76201.2122 1.7041-1.2146-2.04081.4228 1.5538 1.37301.3075-0.0183-2.54830.6344На практике вычисление явной обратной матрицы не так уж необходимо. Чаще операцию обращения применяют при решении системы линейных уравнений вида Ах=b. Один из путей решения этой системы – вычисление x=inv(A)*b. Но лучшим с точки зрения минимизации времени расчета и повышения точности вычислений является использование оператора матричного деления х=А\b. Эта операция использует метод исключения Гаусса без явного формирования обратной матрицы.
- В = pinv(A) – возвращает матрицу, псевдообратную матрице А (псевдообращение матрицы по Муру-Пенроузу). Результатом псевдообращения матрицы по Муру-Пенроузу является матрица В того же размера, что и А', и удовлетворяющая условиям А*В*А=А и В*А*В=В. Вычисление основано на использовании функции svd(A) и приравнивании к нулю всех сингулярных чисел, меньших величины tol;
- В = pinv (A .tol) – возвращает псевдообратную матрицу и отменяет заданный по умолчанию порог, равный max(size(A))*norm(A)*eps.
Пример:
>> pinv(rand(4.3)) ans =-1.3907-0.0485-0.24931.8640-0.87751.1636 0.6605-0.00342.0906-0.5921-0.2749-0.5987