로하자 나타낸다 정확한 곱셈의 부동 소수점 유사체 ((I는 나누기 연산자의 동그라미 버전을 얻으려고 노력 게으른) × ), 추가 ( + ()과 뺄셈을 – 각각). 우리는 (IEEE-754) 그들 모두에 대해
[ x ⊕ y ] = ( x + y ) ( 1 + δ ⊕ ) ,⊗,⊕,⊖
×
+
−
여기서 ϵ m a c h 는 반올림으로 인한 상대 오차의 상한을 제공하는 기계 엡실론입니다. 또한쉽게 입증 할 수있는다음의 정리 (모두 | δ i | ≤ ϵ m a c h 이고 m 이 너무 크지 않다고 가정)를 사용합니다 :
m ∏ i = 1 ( 1 + δ i ) = 1 + θ (
[x⊕y]=(x+y)(1+δ⊕),|δ⊕|≤ϵmach,
ϵmach
|δi|≤ϵmach
m
∏i=1m(1+δi)=1+θ(m),|θ(m)|≤mϵmach1−mϵmach
하자 참된 정의 함수 실수 동작에 X , Y , Z 등을f
x,y,z
f(x,y,z)=(x×z)−(y×z)
상기 함수로서 IEEE 규격의 부동 소수점 연산의 실행의 두 가지 버전 및 ~ F (2) 부동 소수점에서 동작 표현 ~ (X) = X ( 1 + δ X ) , ~ Y는 , ~ z는 로서 다음과 같다 :f1~
f2~
x~=x(1+δx),y~,z~
f1~(x~,y~,z~)=(x~⊗z~)⊖(y~⊗z~),
f2~(x~,y~,z~)=(x~⊖y~)⊗z~.
대한 오류 분석 :f1~
여기,| θxz,1| ,| θyz,1| ≤4 ϵ m a c h
f1~=((x(1+δx)×z(1+δz))(1+δ⊗xz)(x~⊗z~)−(y(1+δy)×z(1+δz))(1+δ⊗yz)( y~⊗ z~)) ( 1+ δ⊖)= xz( 1 + δ엑스) ( 1 + δ지) ( 1 + δ⊗x z) ( 1 + δ⊖) −y지( 1 + δ와이) ( 1 + δ지) ( 1 + δ⊗와이지) ( 1 + δ⊖)= xz( 1 +θ엑스z, 1)−yz(1+θyz,1).
.| θx z, 1| , | θ와이지, 1| ≤ 4 ϵm a c h(1) – 4 εm a c h
마찬가지로 ~ f 2에프2~
여기,| θx,2| ,| θy,2| ≤4 ϵ m a c h
f2~= ( ( (x(1+δx)−y(1+δy) ( 1+δ⊖x y) ) ×(z(1+δz) ) ) ( 1+δ⊗)=xz( 1+δx) ( 1 +δz) ( 1 + δ⊖x y) ( 1 +δ⊗)−yz( 1 + δ와이) ( 1 + δ지) ( 1 + δ⊖x y) ( 1 + δ⊗)= xz( 1 + θx , 2) −y지( 1 + θ와이, 2) .
.| θx , 2| , | θ와이, 2| ≤ 4 ϵm a c h(1) – 4 εm a c h
에프1~
에프2~
에프2~
에프1~
엑스
와이
| 에프1~− f|| 에프|= | x z+ x zθx z, 1− y지− y지θ와이지, 1− ( x z− y지) || xz− y지|= | x θx z, 1− yθ와이지, 1|| x–y|≤ | x | + | 와이|| x–y|4 ϵm a c h(1) – 4 εm a c h,
| 에프2~− f|| 에프|= | x z+ x zθx , 2− y지− y지θ와이, 2− ( x z− y지) || xz− y지|= | x θx , 2− yθ와이, 2|| x–y|≤ | x | + | 와이|| x–y|4 ϵm a c h(1) – 4 εm a c h.
사이의 약간의 차이 θ
의 두 수치 구현 중 하나를 조금 더 좋거나 나쁘게 만들 수 있습니다. x , y, z
. 그러나 나는 그것이 어떤 의미가 있는지 의심합니다. 계산해야 할 경우 결과에 상관없이 결과는 완전히 의미가 있습니다.( x − y)
, 언제 엑스
과 와이
부동 소수점 산술을 사용하여 (정확한 작업을 위해) 값이 충분히 가까우면 스케일링이 크게 도움이되지 않습니다. 이미 문제가 있습니다.
주의 : 위의 모든 논의는 오버플로 또는 언더 플로가 없다고 가정합니다. x , y, z, f( x , y, z) ∈ F0
, 에프0
모든 일반 부동 소수점 숫자의 집합입니다.