Обращение матриц. Функции 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.3730
1.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.0034
2.0906
-
0.5921
-
0.2749
-
0.5987