Обратная матрица

Материал из testwiki
Перейти к навигации Перейти к поиску

Обра́тная ма́трица — такая матрица A1, при умножении которой на исходную матрицу A получается единичная матрица E:

AA1=A1A=E.

Обратную матрицу можно определить как:

A1=adjA|A|,
где adjA — соответствующая присоединённая матрица,
|A| — определитель матрицы A.

Из этого определения следует критерий обратимости: матрица обратима тогда и только тогда, когда она невырождена, то есть её определитель не равен нулю. Для неквадратных матриц и вырожденных матриц обратных матриц не существует. Однако возможно обобщить это понятие и ввести псевдообратные матрицы, похожие на обратные по многим свойствам.

Свойства обратной матрицы

Пусть квадратные матрицы A,B — невырожденные. Тогда:

  • Если A обратима, то A1 единственна.
  • (A1)1=A
  • detA1=1detA, где det обозначает определитель.
  • (AB)1=B1A1
  • (AT)1=(A1)T, где T обозначает операцию транспонирования.
  • (kA)1=k1A1 для любого коэффициента k=0.
  • E1=E.
  • Пусть необходимо решить систему линейных уравнений Ax=b, где x — искомый вектор, b — ненулевой вектор. Если A1 существует, то x=A1b. В противном случае либо размерность пространства решений больше нуля, либо их нет вовсе.
  • (AB)1=A1+A1B(AB)1,
  • (A+B)1=(I+A1B)1A1,
  • (AB)1=k=0(A1B)kA1.

Способы нахождения обратной матрицы

Если матрица обратима, то для нахождения обратной матрицы можно воспользоваться одним из следующих способов:

Точные (прямые) методы

Метод Жордана—Гаусса

Возьмём две матрицы: саму A и единичную матрицу E. Приведём матрицу A к единичной методом Гаусса—Жордана, применяя преобразования по строкам (можно также применять преобразования и по столбцам). После применения каждой операции к первой матрице применим ту же операцию ко второй. Когда приведение первой матрицы к единичному виду будет завершено, вторая матрица окажется равной A1.

При использовании метода Гаусса первая матрица будет умножаться слева на одну из элементарных матриц Λi (трансвекцию или диагональную матрицу с единицами на главной диагонали, кроме одной позиции):

Λ1ΛnA=ΛA=EΛ=A1.
Λm=[10a1m/amm0001am1m/amm00001/amm0000am+1m/amm1000anm/amm01].

Вторая матрица после применения всех операций станет равна Λ, то есть будет искомой. Сложность алгоритма — O(n3).

С помощью матрицы алгебраических дополнений

Матрица, обратная матрице A, представима в виде:

A1=adj(A)det(A),
где adj(A) — присоединенная матрица (матрица, составленная из алгебраических дополнений для соответствующих элементов транспонированной матрицы).

Сложность алгоритма зависит от сложности Odet алгоритма расчета определителя и равна O(n2)Odet.

Использование LU- или LUP-разложения

Матричное уравнение AX=In для обратной матрицы X можно рассматривать как совокупность n систем вида Ax=b. Обозначим i-й столбец матрицы X через Xi; тогда AXi=ei, i=1,,n, поскольку i-м столбцом матрицы In является единичный вектор ei. Иными словами, нахождение обратной матрицы сводится к решению n уравнений с одной матрицей и разными правыми частями. Решение этих уравнений может быть упрощено с помощью LU- или LUP-разложения матрицы A. После выполнения LUP-разложения за время O(n3) на решение каждого из n уравнений нужно время O(n2), так что и этот алгоритм требует времени O(n3)[1].

Матрицу, обратную к заданной невырожденной матрице A, можно также вычислить непосредственно с помощью матриц, полученных в результате разложения.

Результатом LUP-разложения матрицы A является равенство PA=LU. Пусть PA=B, B1=D. Тогда из свойств обратной матрицы можно записать: D=U1L1. Если умножить это равенство на U и L то можно получить два равенства вида UD=L1 и DL=U1. Первое из этих равенств представляет собой систему из n2 линейных уравнений, для n(n+1)/2 из которых известны правые части (из свойств треугольных матриц). Второе также представляет систему из n2 линейных уравнений, для n(n1)/2 из которых известны правые части (также из свойств треугольных матриц). Вместе они представляют собой систему из n2 равенств. С их помощью можно рекуррентно определить все n2 элементов матрицы D. Тогда из равенства (PA)1=A1P1=B1=D получаем равенство A1=DP.

В случае использования LU-разложения (A=LU) не требуется перестановки столбцов матрицы D, но решение может разойтись даже если матрица A невырождена.

Сложность обоих алгоритмов — O(n3).

Итерационные методы

Матрицу A1 можно вычислить с произвольной точностью в результате выполнения следующего итерационного процесса, называющегося методом Шульца и являющегося обобщением классического метода Ньютона:

Xk+1=2XkXkAXk.

Последовательность матриц Xk сходится к A1 при k. Существует также так называемый обобщённый метод Шульца, который описывается следующими рекуррентными соотношениями[2]:

{Ψk=EAXk,Xk+1=Xki=0nΨki.

Выбор начального приближения

Проблема выбора начального приближения X0 в рассматриваемых здесь процессах итерационного обращения матриц не позволяет относиться к ним как к самостоятельным универсальным методам, конкурирующими с прямыми методами обращения, основанными, например, на LU-разложении матриц. Имеются некоторые рекомендации по выбору X0, обеспечивающие выполнение условия ρ(Ψ0)<1 (спектральный радиус матрицы меньше единицы), являющегося необходимым и достаточным для сходимости итерационного процесса. Однако при этом, во-первых, требуется знать оценку сверху спектра обращаемой матрицы A либо матрицы AAT (а именно, если A — симметричная положительно определённая матрица и ρ(A)β, то можно взять X0=αE, где α(0,2/β); если же A — произвольная невырожденная матрица и ρ(AAT)β, то полагают X0=αAT, где также α(0,2/β); можно, конечно, упростить ситуацию и, воспользовавшись тем, что ρ(AAT)𝓀AAT𝓀, положить X0=AT/AAT). Во-вторых, при таком задании начальной матрицы нет гарантии, что Ψ0 будет малой (возможно, даже окажется Ψ0>1), и высокий порядок скорости сходимости обнаружится далеко не сразу.

Для метода Ньютона в качестве начального приближения можно выбрать X0=AH/(||A||1||A||), где верхний индекс H обозначает эрмитово сопряжение, ||||1 и |||| — соответствующие матричные нормы. Такое X0 вычисляется всего за O(n2) операций, где n — порядок матрицы, и обеспечивает сходимость алгоритма[3].

Примеры

Матрица 2 × 2

𝐀1=[abcd]1=1det𝐀[dbca]=1adbc[dbca][4].

Обращение матрицы 2 × 2 возможно только при условии, что adbc=detA0.

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Векторы и матрицы Шаблон:Нет ссылок

  1. Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы: построение и анализ, — Шаблон:М: Вильямс, 2006 (с. 700).
  2. Шаблон:Статья
  3. Шаблон:Статья
  4. Шаблон:Cite web