가드 디지트
Guard digit수치해석에서는 하나 이상의 가드 숫자를 사용하여 반올림 오차의 양을 줄일 수 있다.
예를 들어, 긴 다단계 계산의 최종 결과는 소수점 N 자리까지 안전하게 반올림할 수 있다고 가정합시다.즉, 이 최종 라운드오프에 의해 도입된 라운드오프 오류는 전체 불확실성에 무시할 수 있는 기여를 한다.
그러나 계산의 중간 단계를 같은 숫자로 반올림하는 것은 안전하지 않을 가능성이 높다.반올림 오차가 누적될 수 있다는 점에 유의하십시오.중간 계산에 M 소수점을 사용하면 M-N 가드 자리가 있다고 한다.
가드 자릿수는 대부분의 컴퓨터 시스템에서 부동 소수점 작동에도 사용된다.2 - . 2 0.}- 0}}개씩 이진수를 줄여야 한다.이것은 우리가 첫 번째 피연산자에 더 많은 숫자를 추가해야 한다는 것을 의미한다.This gives us . Performing this operation gives us or . Without using a guard digit we have , yielding or . This gives us a relative error of 1.따라서 가드 숫자가 얼마나 중요할 수 있는지 알 수 있다.
부동 소수점 반올림으로 인한 오류의 예는 다음 C 코드에 설명되어 있다.
인트로 본래의(){ 곱절로 하다 a; 인트로 i; a = 0.2; a += 0.1; a -= 0.3; 을 위해 (i = 0; a < 1.0; i++) a += a; 활자화하다("i=%d, a=%f\n", i, a); 돌아오다 0; }
프로그램이 종료되어서는 안 될 것으로 보인다.그러나 출력은 다음과 같다.
i=54, a=1.000000
또 다른 예는 다음과 같다.
다음 2개의 숫자를 선택하십시오.
0 2 10 및 2. {\ 2 10}}
첫 번째 번호는 두 번째 번호와 동일한 의 전원에 도달한다.
2개의 숫자를 더하면 다음과 같다.
0.0256*10^2 2.3400*10^2 + ____________ 2.3656*10^2
두 숫자(예: 2 2 2를 0 채운 후, 이후의 비트는 가드 자릿수가 되고 뒤의 비트는 둥근 자릿수가 된다.라운딩 후 결과는 추가 비트(가드와 라운드 비트)가 없는과는 반대로 이며, 즉 0.+ = 342. 따라서 는 0.
참조
- Forman S. 액턴. 작동하는 수치적 방법, 미국의 수학 협회 (1997년 8월)
- Hiam, Nicholas J. 수치 알고리즘의 정확성과 안정성, Washington D.C.:산업 응용 수학 협회, 2002.
- IEEE 754 반올림 오류