본문으로 건너뛰기
262 / NUMERICAL COMPUTING LAB
먼저 알아두면 좋아요 · 연결된 선수 단원의 선형대수·미적분·연산 그래프 기초
단원 목록 (600) · 혼합 정밀도·Iterative Refinement
이해하는 속도로 읽으세요.개념도이론실험확인 문제
BUILD YOUR INTUITION

먼저 그림으로 이해하기

한 번에 한 단계씩 살펴보세요.

저정밀 factorization과 고정밀 잔차·갱신의 역할을 분리합니다.

A=[[1,1],[1,1+2^-k]], b=A(1,1). Factorization and correction solves round to p significant binary bits; accumulated solution updates use binary64. Select high or low precision for residual evaluation. A zero rounded pivot means factorization failed and no solution/error curve is claimed. Curves are relative solution error (blue) and the residual actually computed by the selected arithmetic (orange).

-0.041.041.04-0.04
가로 보정 횟수 · 파랑 상대 해 오차 · 주황 선택한 산술로 계산한 상대 잔차
stepx0x1relative solution errortrue residualcomputed residual
02010.1250.125
111000

1{low-precision factorization valid} = 1

고정 기준 예제의 그림과 수치입니다. 각 단계에서 같은 그림의 의미를 차례로 살펴보세요. 고정된 기준 예제이며 아래 실험의 설정과 독립적입니다.
1 / 4

낮은 정밀도

작은 두 번째 pivot과 우변이 서로 다른 간격에서 반올림됩니다.

A=[[1,1],[1,1+delta]]

실험에서 확인하기 →
이 단원 목차

낮은 정밀도 인수로 더 정확한 답을 얻기

Mixed-precision iterative refinement는 낮은 정밀도의 인수를 재사용해 correction을 풀고, 잔차와 해 갱신은 더 정확하게 수행합니다. 비싼 인수분해를 다시 하지 않으면서 처음 해의 오차를 줄이려는 방법입니다. 성공 여부는 조건수·인수 품질·각 단계의 정밀도에 달려 있습니다.

실험은 A=[[1,1],[1,1+delta]], delta=2^-k, b=(2,2+delta)를 쓰며 정확한 해는 (1,1)입니다. Toy low precision은 유효 p binary bit와 ties-to-even, 제한 없는 지수를 뜻합니다. 특정 하드웨어 dtype의 모든 동작을 모사하지는 않습니다.

반올림 소거를 따라가기

첫 pivot은 1이고 두 번째는 fl(fl(1+delta)-1)입니다. 우변도 별도로 반올림되며 더 큰 크기 때문에 표현 간격이 다릅니다.

delta=1/8, p=4에서 1.125는 표현되지만 2.125는 중간값이라 2로 반올림됩니다. 소거 뒤 우변의 두 번째 값이 사라져 저정밀 해는 (2,0)이 됩니다. 정확한 해에 임의의 잡음을 붙인 것이 아니라 실제 반올림 순서에서 발생하는 오차입니다.

잔차 정밀도가 보정을 바꾼다

Refinement는 다음 순서로 진행합니다.

r=b−Ax^,Alowd≈r,x^new=x^+d.r=b-A\hat x,\qquad A_{\mathrm{low}}d\approx r,\qquad \hat x_{\mathrm{new}}=\hat x+d.

잔차는 원래 데이터의 binary64 또는 선택한 toy 산술로 계산합니다. 인수와 correction solve는 계속 낮은 정밀도이고 해의 누적 갱신은 binary64입니다. 각 단계의 역할을 구별해야 혼합 정밀도라고 부르는 이유가 분명해집니다.

(2,0)의 true residual은 (0,1/8)입니다. Correction은 (-1,1)이므로 한 번에 (1,1)을 복원합니다. 반면 저정밀 잔차는 우변을 이미 (2,2)로 보아 0이 됩니다. 계산 잔차가 0인데도 원래 시스템 잔차 노름은 0.125, 상대 해 오차는 1로 남습니다.

사용할 수 없는 인수도 있다

정밀도에 비해 delta가 너무 작으면 fl(1+delta)=1이라 두 번째 pivot이 0이 됩니다. 이때는 인수분해 실패를 표시하고 해와 오차를 비워 둡니다. 오차 0을 그리면 실패를 성공으로 잘못 전달하기 때문입니다.

이 SPD 행렬의 determinant는 delta입니다. 최소 고유값을 delta/lambda_max로 구하면 큰 값끼리 빼는 상쇄를 피할 수 있습니다. 일반 refinement 수렴 정리를 적용하려면 조건수·정밀도·인수 오차 가정을 별도로 확인해야 합니다. 한 예의 성공이 모든 악조건 문제의 보장은 아닙니다.

직접 풀기: 잘못된 중단 기준

k=3, p=4, 보정 0회에서 우변의 반올림을 따라 (2,0)을 얻으세요. 고정밀 잔차로 한 번 보정한 뒤 저정밀 잔차로 같은 작업을 반복하세요. 저정밀 잔차 0만으로 중단하면 왜 잘못된 해를 수용하는지 설명하세요. k=6, p=3에서는 pivot이 0이 되어 아예 시작하지 못하는 과정도 확인하세요.

더 읽기: LAPACK 오차 측정과 정확도.

CHECK YOUR UNDERSTANDING

설명할 수 있나요?

실험 설정과 무관한 기준 예제를 묻습니다. 답을 고르고 설명을 확인해보세요.

1. 저정밀 잔차 0은 원래 시스템의 정확한 해를 뜻하나요?
2. 혼합 정밀도 보정은 모든 조건수에서 반드시 성공하나요?

선택한 답과 학습 표시는 이 브라우저에 저장됩니다. 다시 풀거나 표시를 해제할 수 있습니다.