연산 순서, 숫자 알고리즘


10

나는 그것을 읽었다

(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무시 됨을 의미합니다 .


어디서 읽었습니까?
— David Ketcheson

내 강의 노트에서
— Bananach

답변:


8

로하자 나타낸다 정확한 곱셈의 부동 소수점 유사체 ((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|≤ϵmachm
∏i=1m(1+δi)=1+θ(m),|θ(m)|≤mϵmach1−mϵmach

하자 참된 정의 함수 실수 동작에 X , Y , Z 등을fx,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 모든 일반 부동 소수점 숫자의 집합입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.