연산 순서, 숫자 알고리즘


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 + θ (

[xy]=(x+y)(1+δ),|δ|ϵmach,
ϵmach|δi|ϵmachm
i=1m(1+δi)=1+θ(m),|θ(m)|mϵmach1mϵ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ϵ미디엄h14ϵ미디엄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ϵ미디엄h14ϵ미디엄h

에프1~에프2~에프2~에프1~

엑스와이

|에프1~에프||에프|=|엑스+엑스θ엑스,1와이와이θ와이,1(엑스와이)||엑스와이|=|엑스θ엑스,1와이θ와이,1||엑스와이||엑스|+|와이||엑스와이|4ϵ미디엄h14ϵ미디엄h,
|에프2~에프||에프|=|엑스+엑스θ엑스,2와이와이θ와이,2(엑스와이)||엑스와이|=|엑스θ엑스,2와이θ와이,2||엑스와이||엑스|+|와이||엑스와이|4ϵ미디엄h14ϵ미디엄h.

사이의 약간의 차이 θ의 두 수치 구현 중 하나를 조금 더 좋거나 나쁘게 만들 수 있습니다. 엑스,와이,. 그러나 나는 그것이 어떤 의미가 있는지 의심합니다. 계산해야 할 경우 결과에 상관없이 결과는 완전히 의미가 있습니다.(엑스와이), 언제 엑스와이 부동 소수점 산술을 사용하여 (정확한 작업을 위해) 값이 충분히 가까우면 스케일링이 크게 도움이되지 않습니다. 이미 문제가 있습니다.

주의 : 위의 모든 논의는 오버플로 또는 언더 플로가 없다고 가정합니다. 엑스,와이,,에프(엑스,와이,)에프0, 에프0 모든 일반 부동 소수점 숫자의 집합입니다.

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