위키득계정 ↗
과학

토머스 알고리즘

토머스 알고리즘과학
영문명
Thomas algorithm
다른 이름
Tridiagonal matrix algorithm
대상
삼중대각 선형 시스템
기본 계산량
O(n)
토머스 알고리즘은 삼중대각 선형 시스템에 맞춘 가우스 소거법이다. 주대각선과 바로 위아래 대각선의 계수만 이용해 전진 소거와 후진 대입을 수행한다. 중간 피벗이 적절히 유지되는 경우 미지수 개수에 비례하는 계산량으로 해를 구한다.

이웃한 미지수만 연결된다

각 식에 바로 앞, 현재, 바로 뒤 미지수의 계수만 나타난다. 첫 식에서 시작해 아래 부대각선의 원소를 차례로 제거하면 상삼각 형태가 된다. 마지막 미지수를 구한 뒤 역순으로 나머지를 계산한다.

전진 소거를 계산하기

세 식이 4x+y=6, x+4y+z=12, y+4z=14라고 하자. 첫 식의 1/4을 둘째 식에서 빼면 (15/4)y+z=21/2다. 이제 이 식의 4/15를 셋째 식에서 빼면 (56/15)z=56/5가 남는다.

뒤에서부터 해를 복원하기

마지막 식에서 z=3이다. 둘째 소거 식에 넣으면 (15/4)y=15/2이므로 y=2다. 첫 식으로 돌아가면 x=(6-2)/4=1이다. 원래 세 식에 (1,2,3)을 넣어 각각 6, 12, 14가 되는지 확인할 수 있다.

가역이라고 무조건 진행할 수는 없다

두 행이 (0,1), (1,1)인 행렬은 행렬식이 -1이지만 첫 피벗이 0이다. 이 순서의 피벗 없는 소거는 시작할 수 없다. 대칭 양의 정부호나 엄격한 대각 우세 같은 적절한 조건을 확인하고, 필요한 경우 피벗을 사용하는 다른 풀이를 선택해야 한다.

관련 문서

대역행렬 / 가우스 소거법 / LU 분해 / 양의 정부호 행렬 / 대각 우세 행렬 / 연립방정식 / 삼각행렬