연산 순서, 숫자 알고리즘 분석에 따르면

나는 그것을 읽었다

(1) 조건이 잘못된 작업은 조건이 좋은 작업보다 먼저 수행해야합니다.

예를 들어, 곱셈을하지 않으면 서 빼기가 조절되지 않기 때문에

엑스지−와이지

로 계산해야합니다

(엑스−와이)지

.

그러나 두 알고리즘의 1 차 오류 분석에 따르면 그것들은 단지 3 배 (*) 만 다른 것으로 밝혀졌으며, 이것이 왜 이것을 진술 (1)로 일반화 할 수 있는지, 또는 작업 순서. 당신은 진술이 (1) 받아 들여진 규칙이라고 생각합니까? 그리고 그것에 대한 다른 설명이 있습니까?

* : 더 구체적으로, 첫 번째 버전에는 상대적인 오류가 있습니다.

eps+3|x|+|y||x|−|y|eps

번째 버전의 상대적인 에러에 의해 제한되는 반면

3eps+|x|+|y||x|−|y|eps

여기서

eps

는 기계 정밀도입니다.

이 분석은

i

번째 중간 결과에

(1+εi)

(반올림 오차로 인해 ) 가 곱해진다 는 가정을 기반으로합니다 . 여기서

εi

묶인 iid 임의 변수

주당 순 이익

입니다. “1 차”는 와 같은 고차 항이

ϵiϵjx

무시 됨을 의미합니다 .



답변

로하자 나타낸다 정확한 곱셈의 부동 소수점 유사체 ((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+δ⊖)=엑스지(1+δ엑스)(1+δ지)(1+δ⊗엑스지)(1+δ⊖)−와이지(1+δ와이)(1+δ지)(1+δ⊗와이지)(1+δ⊖)=엑스지(1+θ엑스지,1)−와이지(1+θ와이지,1).

.

|θ엑스지,1|,|θ와이지,1|≤4ϵ미디엄ㅏ씨h1−4ϵ미디엄ㅏ씨h

마찬가지로 ~ f 2

에프2~



여기,| θx,2| ,| θy,2| 4 ϵ m a c h

f2~=(((엑스(1+δ엑스)−와이(1+δ와이)(1+δ⊖엑스와이))×(지(1+δ지)))(1+δ⊗)=엑스지(1+δ엑스)(1+δ지)(1+δ⊖엑스와이)(1+δ⊗)−와이지(1+δ와이)(1+δ지)(1+δ⊖엑스와이)(1+δ⊗)=엑스지(1+θ엑스,2)−와이지(1+θ와이,2).

.

|θ엑스,2|,|θ와이,2|≤4ϵ미디엄ㅏ씨h1−4ϵ미디엄ㅏ씨h

에프1~

에프2~

에프2~

에프1~

엑스

와이

|에프1~−에프||에프|=|엑스지+엑스지θ엑스지,1−와이지−와이지θ와이지,1−(엑스지−와이지)||엑스지−와이지|=|엑스θ엑스지,1−와이θ와이지,1||엑스−와이|≤|엑스|+|와이||엑스−와이|4ϵ미디엄ㅏ씨h1−4ϵ미디엄ㅏ씨h,


|에프2~−에프||에프|=|엑스지+엑스지θ엑스,2−와이지−와이지θ와이,2−(엑스지−와이지)||엑스지−와이지|=|엑스θ엑스,2−와이θ와이,2||엑스−와이|≤|엑스|+|와이||엑스−와이|4ϵ미디엄ㅏ씨h1−4ϵ미디엄ㅏ씨h.

사이의 약간의 차이

θ

의 두 수치 구현 중 하나를 조금 더 좋거나 나쁘게 만들 수 있습니다.

엑스,와이,지

. 그러나 나는 그것이 어떤 의미가 있는지 의심합니다. 계산해야 할 경우 결과에 상관없이 결과는 완전히 의미가 있습니다.

(엑스−와이)

, 언제

엑스

와이

부동 소수점 산술을 사용하여 (정확한 작업을 위해) 값이 충분히 가까우면 스케일링이 크게 도움이되지 않습니다. 이미 문제가 있습니다.

주의 : 위의 모든 논의는 오버플로 또는 언더 플로가 없다고 가정합니다.

엑스,와이,지,에프(엑스,와이,지)∈에프0

,

에프0

모든 일반 부동 소수점 숫자의 집합입니다.