본문 바로가기

수학/수치해석

10차시 - 선형연립방정식과 해 (3)

4. 가우스 조르당 방법

1) 가우스 조르당 방법이란?

  • 가우스 조르당 방법은 행렬의 역행렬을 구하기 위해서 사용되며, 이를 이용하여여 방정식의 해를 구할 수 있음.
  • 방정식의 개수가 수십 개인 작은 크기의 연립방정식의 실근에 매우 근접한 해를 구할 수 있음.
  • 가우스 소거법을 이용하여 변환한 상삼각행렬 U에 기본행 연산과정을 반복 적용하여 단위 행렬 I로 변환하면 첨가행렬 [Ab]는 동치인 [Ib’]이 되어 b’Ax=b의 해가 되도록 하는 방법

 

※ 가우스 조르당 방법을 이용한 선형연립방정식의 해를 구하는 방법

  1단계
    - 전반 계산
       → 첫 번째 방정식에서 x1의 계수를 1로 하기 위해 x1 항의 계수를 첫 번째 방정식으로 나눔.

    - 후반 계산
       다른 모든 방정식에서
x1 을 소거

 

  2단계
    - 전반계산으로 둘째 방정식에서 x2 의 계수를 1로 만듦 

    - 후반계산으로 다른 모든 방정식에서 x2를 소거

 

  계수행렬이 단위행렬이 될 때 까지 반복

 

 

2) 가우스 조르당 방법을 이용한 계산

 

 

3) MATLAB를 이용한 가우스 조르당 방법

 

 

5. Thomas 알고리즘

1) 삼대각행렬식에 대한 풀이

  • 행렬에서 대각선 방향으로만 요소가 존재하는 경우에 사용
    -> 0인 부분을 포함하여 가우스 소거법을 적용하면 비효율적
    ->
    0인 부분을 제외하고 가우스 소거법을 적용할 수 있도록 적용

 

 

2) Thomas 알고리즘 계산 과정

  • 새로운 수정 계수 구성

 

  • 후진 대입법으로 해를 계산

 

 

3) MATLAB을 이용한 Thomas 알고리즘

clc; clear all; close all
u = [1,2,2,3]; 
m = [1,2,3,4]; 
I = [1,1,2,3]; 
B = [1;2;3;4];

n = length(m);

u(1) = u(1)/m(1); 
B(1) = B(1)/m(1);

for(i = 2:n)
	k = m(i)-I(i)*u(i-1); 
    if(k == 0)
		error('분모에 0이 들어가게 됩니다.') 
	end
	I(i) = 0; 
end

x(n) = B(n); 
for(i = n-1:-1:1)
	x(i) = B(i) - u(i)*x(i+1); 
end

x

 

 

6. 피벗팅

  • 피벗 재조정
    - 해를 구할 때 방정식의 순서가 중요
    - 컴퓨터는 길이가 정해진 메모리에 수를 저장
    - 방정식의 위치에 따라 오차가 발생

-> 방정식의 해를 구하기 위해 피벗을 재조정

 

  • 위와 같은 방정식 a(11)의 요소가 0이기 때문에 가우스 소거법을 적용할 수 없음.
    - 방정식 (1)(3)을 바꿔 가우스 소거법을 적용