가우시안 제거 프로세스를 고려하십시오. 피봇에 0이 있으면 어떻게합니까? P 행렬을 도입하는 행을 전환해야합니다.
매우 작은 0이 아닌 피벗 값은 부동 소수점 환경에서 수치 안정성을 초래합니다. 기본 알고리즘은 피벗 열의 절대 값이 가장 큰 항목을 검색하고 피벗 행을 사용하여 해당 행을 전환함으로써이를 방지합니다.
이 스위치는 비쌀 수 있으므로 가장 큰 절대 값 입력은 피벗의 절대 값보다 몇 배 더 커야합니다. 10, 스위치가 발생합니다. 이렇게하면 스위치 수는 줄어들지 만 부동 소수점 오류를 제한하는 데 필요한 스위치는 유지됩니다.
"문제를 해결할 수있는 여러 가지 리소스에 대해"부분 회전을 사용하는 LU 분해 "를 검색하십시오.
주 : P는 순열 행렬이므로 P^T = P^(- 1)입니다. 따라서 Ax = b는 LUx = P^T b와 같은 해를 갖습니다. (어떤 구현은 당신이 P라고 부른 것을 반환합니다. 반면에 어떤 것은 P^T라고 부르는 것을 반환하고 그것을 P라고 부릅니다 - 어떤 것을 알고 있는지 확인하십시오 'PA = LU'와 'A = PLU'의 차이점입니다. P는 각 경우마다 동일하지 않습니다.