왜 역행렬을 구하는 것보다 Ax=b를 푸는게 좋을까?

\(A^{-1}\) 을 한 번 구해두면 \(x = A^{-1}b\) 를 통해 해를 구하면 되지 않을까?

  1. \(A^{-1}\)을 구해 해를 찾는 경우
    1. \(A^{-1}\)을 구하는 노력 \(\backsim n^3\) 행렬사이즈의 3승
    2. \(A^{-1}b\)의 계산 노력 \(\backsim n^2\)
  2. \(Ax = b\)를 풀어 해를 찾는 경우
    1. Gauss Elimminaton \(Ax = b\)를 푸는 노력 \(\backsim n^3\)
    2. **LU decomposition ** \(A = LU\) 를 찾는 노력 \(\backsim n^3\) → LUx = b를 푸는 노력 \(\backsim n^2\)

수치적 정확도 ( 해의 정확도 )

컴퓨터에서는 제한된 소수점으로 표현

희소행렬의 역행렬과 LU Decomposition 비교

행렬 대부분이 0일 경우 ( Sparse Matrix )

역행렬은 sparse 하지 않음

L과 U는 여전히 Sparse 한 경우가 많음

Conclusion

특별히 \(A^{-1}\)이 필요한 경우가 아니면, \(A\mathbf{x} = b\)를 풀 때 역행렬을 구하지 말자!