이번 포스팅에서는 선형대수방정식을 푸는 반복법 중 하나인
가우스-자이델(Gauss-seidel)법에 대해 알아보겠습니다.
(출처: Chapra의 응용수치해석 3rd edition, Steven C. Chapra 저)
가우스-자이델(Gauss-Seidel)법
가우스-자이델 기법은 선형대수방정식을 푸는 반복법 중의 하나로,
제법 보편적으로 사용되는 방법입니다.
이 방법은 해를 구하기 위해 미지수 x을 가정해야 하며,
이를 연립방정식을 구성하는 각각 다른 방정식에 대입시켜
해를 수렴시켜가는 방법입니다.
초기값은 흔히 0으로 많이 시작합니다.
아래와 같이 주어지는 방정식이 있다고 해보죠.
[A]{x}={b}
만약 이 방정식이 3x3라면, 각 해를 구하기 위해 식을 아래와 같이 변형할 수 있습니다.
xj1=b1−a12xj−12−a13xj−13a11
xj2=b2−a21xj−11−a23xj−13a22
xj3=b3−a31xj−11−a32xj−12a33
즉, 구하고자 하는 해를 좌항에 두고 나머지를 모두 우항으로 옮긴 형태입니다.
이때 j는 반복횟수입니다.
가우스-자이델(Gauss-Seidel)법 예제
아래와 같은 연립방정식을 풀어보죠.
3x1−0.1x2−0.2x3=7.85
0.1x1+7x2−0.3x3=−19.3
0.3x1−0.2x2+10x3=71.4
참고로 위 방정식의 해는 각각 x1=3,x2=−2.5,x3=7입니다.
각 해를 구하기 위해 식을 정리해봅시다.
x1=7.85+0.1x2+0.2x33
x2=−19.3−0.1x1+0.3x37
x3=71.4−0.3x1+0.2x210
여기서 x2,x3의 초기값을 각각 0으로 가정하고 식 (1)을 풀어보죠.
1회 반복
x1=7.85+0.1(0)+0.2(0)3=2.6167
여기서 계산된 x1의 초기값과 x3=0을 식(2)에 대입합니다.
x2=−19.3−0.1(2.6167)+0.3(0)7=−2.7945
다시 여기서 계산된 x1,x2의 값을 식(3)에 대입합니다.
x3=71.4−0.3(2.6167)+0.2(−2.7945)10=7.0056
이렇게 1회차 반복이 완료됩니다.
2회 반복
1회차에 계산된 값이 있으니 다시 식 (1)에 대입하여 계산합니다.
x1=7.85+0.1(−2.7945)+0.2(7.0056)3=2.9906
x2=−19.3−0.1(2.9906)+0.3(7.0056)7=−2.4996
x3=71.4−0.3(2.9906)+0.2(−2.4996)10=7.0002
2회만 반복했을 뿐인데도 정해에 제법 가까워 졌습니다.
위와 같은 반복으로 허용오차 이내에 진입하게 되면
반복을 종료하고 그 결과를 해로 결정하는 방법이 Gauss-Seidel법입니다.
여기까지 Gauss-Seidel법에 대해 알아보았습니다.
'공학 > 수치해석' 카테고리의 다른 글
[수치해석] 오일러(Euler)법 (0) | 2021.09.05 |
---|---|
[수치해석] 유한차분법(Finite Difference Method) (2) | 2021.09.02 |
[수치해석] LU decomposition/factorization (LU 분해법) (0) | 2021.07.29 |
[수치해석] Gaussian elimination(가우스 소거법) (0) | 2021.07.28 |
[수치해석] Cramer's rule (크래머 공식) (0) | 2021.07.27 |