Forward Substitution은 선형 시스템을 해결하기 위한 수치 해법 중 하나로, 특히 하삼각 행렬(𝑳)과 연관된 문제에서 사용된다. 이 방법은 LU 분해를 통해 얻은 하삼각 행렬 \mathbf{L}와 벡터 \mathbf{y}가 주어졌을 때, 선형 시스템 \mathbf{L} \mathbf{y} = \mathbf{b}를 풀기 위해 사용된다.

하삼각 행렬과 Forward Substitution의 기본 개념

하삼각 행렬은 대각선 위의 모든 원소가 0인 정사각 행렬이다. 예를 들어, 3x3 하삼각 행렬 \mathbf{L}는 다음과 같이 표현된다:

\mathbf{L} = \begin{pmatrix} l_{11} & 0 & 0 \\ l_{21} & l_{22} & 0 \\ l_{31} & l_{32} & l_{33} \end{pmatrix}

Forward Substitution은 이와 같은 형태의 행렬을 사용하여 선형 시스템을 단계적으로 해결한다.

Forward Substitution 과정

Forward Substitution의 기본 아이디어는 행렬 \mathbf{L}의 각 행에 대해 차례대로 방정식을 풀어가는 것이다. \mathbf{L}이 하삼각 행렬이기 때문에, 먼저 첫 번째 방정식부터 시작하여 순차적으로 해결할 수 있다.

  1. 첫 번째 방정식: 첫 번째 방정식은 다음과 같이 간단한다:
l_{11}y_1 = b_1

여기서 y_1은 다음과 같이 구할 수 있다:

y_1 = \frac{b_1}{l_{11}}
  1. 두 번째 방정식: 두 번째 방정식은 다음과 같이 나타낼 수 있다:
l_{21}y_1 + l_{22}y_2 = b_2

이 방정식에서 y_1 값을 이미 알고 있으므로, 이를 이용해 y_2을 계산할 수 있다:

y_2 = \frac{b_2 - l_{21}y_1}{l_{22}}
  1. 세 번째 방정식: 세 번째 방정식은 다음과 같다:
l_{31}y_1 + l_{32}y_2 + l_{33}y_3 = b_3

이전의 y_1y_2 값을 이용하여 y_3을 계산할 수 있다:

y_3 = \frac{b_3 - l_{31}y_1 - l_{32}y_2}{l_{33}}

이러한 과정을 통해 모든 y_i 값을 구할 수 있으며, 일반적인 n \times n 하삼각 행렬에 대해서도 동일한 방법이 적용된다.

일반적인 n \times n 행렬에 대한 Forward Substitution

n \times n 하삼각 행렬 \mathbf{L}\mathbf{b} 벡터가 주어졌을 때, Forward Substitution은 다음과 같은 단계로 수행된다:

  1. 초기 조건으로 y_1 = \frac{b_1}{l_{11}}을 계산한다.
  2. i번째 행에 대해:
y_i = \frac{b_i - \sum_{j=1}^{i-1} l_{ij}y_j}{l_{ii}}

를 계산하여 y_i 값을 구한다.

이 알고리즘은 순차적으로 진행되며, 계산된 값을 다음 단계의 계산에 사용한다. 따라서 Forward Substitution은 O(n^2)의 시간 복잡도를 가지며, 효율적인 계산을 제공한다.

Forward Substitution의 예제

Forward Substitution을 좀 더 명확하게 이해하기 위해, 예제를 통해 실제로 계산하는 과정을 살펴보겠다. 예를 들어, 다음과 같은 하삼각 행렬 \mathbf{L}과 벡터 \mathbf{b}가 주어졌다고 가정한다:

\mathbf{L} = \begin{pmatrix} 2 & 0 & 0 \\ 3 & 5 & 0 \\ 1 & -2 & 8 \end{pmatrix}, \quad \mathbf{b} = \begin{pmatrix} 4 \\ 7 \\ 2 \end{pmatrix}

Forward Substitution을 사용하여 벡터 \mathbf{y}를 계산하는 과정은 다음과 같다:

  1. 첫 번째 방정식:
2y_1 = 4

따라서:

y_1 = \frac{4}{2} = 2
  1. 두 번째 방정식:
3y_1 + 5y_2 = 7

이미 y_1 = 2인 것을 알기 때문에:

3(2) + 5y_2 = 7 \implies 6 + 5y_2 = 7 \implies 5y_2 = 1 \implies y_2 = \frac{1}{5}
  1. 세 번째 방정식:
1y_1 - 2y_2 + 8y_3 = 2

y_1 = 2y_2 = \frac{1}{5}을 사용하여:

2 - 2\left(\frac{1}{5}\right) + 8y_3 = 2 \implies 2 - \frac{2}{5} + 8y_3 = 2
\frac{10}{5} - \frac{2}{5} + 8y_3 = 2 \implies \frac{8}{5} + 8y_3 = 2 \implies 8y_3 = 2 - \frac{8}{5}
8y_3 = \frac{10}{5} - \frac{8}{5} = \frac{2}{5} \implies y_3 = \frac{1}{20}

결과적으로, 벡터 \mathbf{y}는 다음과 같다:

\mathbf{y} = \begin{pmatrix} 2 \\ \frac{1}{5} \\ \frac{1}{20} \end{pmatrix}

Forward Substitution의 장단점

장점

단점