[선형대수학] 파이썬으로 배우는 역행렬

PhilAI·2023년 8월 17일
0

📌 역행렬이란?

역행렬은 선형 대수학에서 중요한 개념으로, 주어진 정사각 행렬 A에 대해 A의 역행렬을 A⁻¹로 표기하며, 다음 조건을 만족하는 행렬입니다:

  • A와 A⁻¹의 곱은 단위행렬(I)이 된다: A1A=AA1=IA^{-1} * A = A * A^{-1} = I
  • 역행렬은 유일하게 존재한다: A의 역행렬은 하나뿐이다.
  • 행렬 A의 행과 열의 선형 독립성: 만약 A가 역행렬을 가지면, A의 행과 열들은 선형 독립적이다.
  • 역행렬이 존재하는 경우: 역행렬이 존재하는 경우, 행렬 A는 가역행렬(invertible matrix) 또는 비특이행렬(non-singular matrix)라고 부릅니다.
  • 역행렬이 존재하지 않는 경우, 행렬 A는 특이행렬(singular matrix)라고 부릅니다.

📌 n*n 역행렬구하기

A1=1det(A)adj(A)A^{-1} = \frac{1}{\text{det}(A)} \cdot \text{adj}(A)

  • A1A^{-1} 은 행렬 A의 역행렬
  • det(A)det(A) 는 행렬 A의 행렬식(deteminant)
  • adj(A)adj(A)는 행렬 A의 수반행렬(adjugate matrix) 또는 여인자행렬(adjoint matrix)

이제 이 공식을 사용하여 구체적인 예시를 들어 역행렬을 구하는 과정을 스텝바이 스텝으로 설명해보겠습니다.

A=[2314]A = \begin{bmatrix} 2 & 3 \\ 1 & 4 \end{bmatrix}

1. 행렬식 계산:
det(A)=(24)(31)=83=5det(A) = (2 \cdot 4) - (3 \cdot 1) = 8 - 3 = 5

2. 수반행렬 계산:
adj(A)=[4312]adj(A) = \begin{bmatrix} 4 & -3 \\ -1 & 2 \end{bmatrix}

3. 역행렬 계산:
A1=1det(A)[4312]=15[4312]=[45351525]A^{-1} = \frac{1}{\text{det}(A)} \cdot \begin{bmatrix} 4 & -3 \\ -1 & 2 \end{bmatrix} = \frac{1}{5} \cdot \begin{bmatrix} 4 & -3 \\ -1 & 2 \end{bmatrix} = \begin{bmatrix} \frac{4}{5} & -\frac{3}{5} \\ -\frac{1}{5} & \frac{2}{5} \end{bmatrix}

📌 역행렬 성질

  • 행렬 A의 역행렬을 A1A^{-1}이라고 할 때, 어떤 자연수 k에 대해서 (A1)k(A^{-1})^k(Ak)1(A^k)^{-1}과 같습니다. 다시 말해, 역행렬의 거듭 제곱은 해당 행렬의 거듭 제곱의 역행렬과 같습니다.
  • 행렬 A의 역행렬이 존재한다면, A의 전치 행렬의 역행렬은 (A1)T(A^{-1})^T입니다. 즉, 역행렬을 전치하면 전치 행렬의 역행렬이 됩니다.
  • 행렬 A의 역행렬이 존재하려면 A의 행렬식(determinant)이 0이 아니어야 합니다. 따라서 역행렬이 존재하는 행렬의 행렬식은 0이 아닙니다.
  • 역행렬이 존재하는 경우 행렬 A의 행렬식은 다음과 같은 관계가 성립합니다: det(A1)=1/det(A)det(A^{-1}) = 1 / det(A)

Numpy로 해보는 역행렬 구하기

import numpy as np
A = np.array([[1, -2, 3],
               [7, 5, 0],
               [-2, -1,2]])

np.linalg.inv(A)
# array([[ 0.21276596,  0.0212766 , -0.31914894],
       [-0.29787234,  0.17021277,  0.44680851],
       [ 0.06382979,  0.10638298,  0.40425532]])

참고

profile
철학과가 도전하는 Big Data, AI

0개의 댓글