Hãy biểu thị bởi (tôi đã lười biếng cố gắng để có được phiên bản được khoanh tròn của nhà điều hành bộ phận) các chất tương tự dấu chấm động của nhân chính xác ( × ), bổ sung ( + ) và trừ ( - ), tương ứng. Chúng tôi sẽ giả định (IEEE-754) mà cho tất cả trong số họ
[ x ⊕ y ] = ( x + y ) ( 1 + delta ⊕ ) ,⊗ , ⊕ , ⊖×+-
trong đó ϵ m a c h là epsilon của máy đưa ra giới hạn trên của lỗi tương đối do làm tròn số. Chúng tôi cũng sẽ sử dụng Bổ đề sau (giả sử tất cả | δ i | ≤ ε m một c h , và m là không quá lớn) có thể dễ dàng chứng minh:
m Π i = 1 ( 1 + δ i ) = 1 + θ (
[ x ⊕ y] = ( x + y) ( 1 + δ⊕) ,| δ⊕| ≤ ϵm a c h,
εm a c h| δTôi| ≤ ϵm a c hmΠi = 1m( 1 + δTôi) = 1 + θ ( m ) ,| θ(m) | ≤ m εm a c h1 - m εm a c h
Hãy xác định hàm thực hoạt động trên các số thực x , y , z làfx , y, z
f( x , y, z) = ( x × z) - ( y× z)
và hai phiên bản của việc thực hiện chức năng trong IEEE-compliant số học dấu chấm động như và ~ f 2 hoạt động trên floating-point đại diện ~ x = x ( 1 + δ x ) , ~ y , ~ z , như sau:f1~f2~x~=x(1+δx),y~,z~
f1~(x~,y~,z~)=(x~⊗z~)⊖(y~⊗z~),
f2~(x~,y~,z~)=(x~⊖y~)⊗z~.
Phân tích lỗi cho :f1~
f1~=((x(1+δx)×z(1+δz))(1+δ⊗xz)(x~⊗z~)−(y(1+δy)×z(1+δz))(1+δ⊗yz)(y~⊗z~))(1+δ⊖)=xz(1+δx)(1+δz)(1+δ⊗xz)(1+δ⊖)−yz(1+δy)(1+δz)(1+δ⊗yz)(1+δ⊖)=xz(1+θxz,1)−yz(1+θyz,1).
|θxz,1|,|θyz,1|≤4ϵmach1−4ϵmach
f2~
Đây,| θx,2| ,| θy,2| ≤4 ε m một c h
f2~= ( ( ( X ( 1 + δx) - y( 1 + δy) ( 1 + δ⊖x y) ) × ( z( 1 + δz) ) ) ( 1 + δ⊗)= x z( 1 + δx) ( 1 + δz) ( 1 + δ⊖x y) ( 1 + δ⊗) - yz( 1 + δy) ( 1 + δz) ( 1 + δ⊖x y) ( 1 + δ⊗)= x z( 1 + θx , 2) - yz( 1 + θy, 2) .
.
| θx , 2| , | θy, 2| ≤ 4 εm a c h1 - 4 εm a c h
f1~f2~f2~f1~
xy
| f1~- f|| f|= | x z+ x zθx z, 1- yz- yzθyz, 1- ( x z- yz) || xz- yz|= | x θx z, 1- yθyz, 1|| x-y|≤ | x | + | y|| x-y|4 εm a c h1 - 4 εm a c h,
| f2~- f|| f|= | x z+ x zθx , 2- yz- yzθy, 2- ( x z- yz) || xz- yz|= | x θx , 2- yθy, 2|| x-y|≤ | x | + | y|| x-y|4 εm a c h1 - 4 εm a c h.
Sự khác biệt nhỏ giữa θCó thể làm cho một trong hai triển khai số tốt hơn hoặc kém hơn tùy thuộc vào x , y, z. Tuy nhiên, tôi nghi ngờ nó có thể có ý nghĩa gì. Kết quả hoàn toàn có ý nghĩa, bởi vì dù thế nào, nếu bạn phải tính toán( x - y), khi nào x và y đủ gần với các giá trị (đối với độ chính xác mà bạn làm việc) bằng cách sử dụng số học dấu phẩy động, không có tỷ lệ sẽ giúp bạn đáng kể: bạn đã gặp rắc rối.
NB: Tất cả các cuộc thảo luận ở trên giả định không có tràn hoặc tràn, tức là x , y, z, f( x , y, z) ∈ F0, F0 là tập hợp của tất cả các số dấu phẩy động thông thường.