Trình tự các thao tác, thuật toán số


10

Tôi đã đọc nó

(1) Các hoạt động có điều kiện nên được thực hiện trước khi hoạt động tốt.

Ví dụ, người ta nên tính xz-yz là vì phép trừ được điều hòa trong khi phép nhân không.(x-y)z

Tuy nhiên, phân tích lỗi thứ nhất của cả hai thuật toán cho thấy chúng chỉ khác nhau bởi hệ số ba (*) và tôi không hiểu tại sao người ta có thể khái quát hóa điều này thành tuyên bố (1), và tôi không nắm bắt được ý nghĩa của trực giác thứ tự các hoạt động. Bạn có nghĩ rằng tuyên bố là (1) là một quy tắc được chấp nhận và bạn có giải thích nào khác cho nó không?

*: cụ thể hơn, phiên bản đầu tiên có lỗi tương đối giới hạn bởi

eps+3|x|+|y||x|-|y|eps
trong khi lỗi tương đối của phiên bản thứ hai bị giới hạn bởi

3eps+|x|+|y||x|-|y|eps

trong đó là độ chính xác của máy.eps

Phân tích này dựa trên giả định rằng kết quả trung gian thứ được nhân với (do lỗi làm tròn), trong đó là các biến ngẫu nhiên iid được giới hạn bởi . "Đơn hàng đầu tiên" có nghĩa là các thuật ngữ bậc cao hơn, như , bị bỏ qua.( 1 + ε i ) ε i eps ε i ε j xTôi(1+εTôi)εTôiepsεTôiεjx


bạn đọc những thứ đó ở đâu?
David Ketcheson

trong bài giảng của tôi
Tunach

Câu trả lời:


8

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

[xy]= =(x+y)(1+δ),|δ|εmmộtch,
εmmộtch|δTôi|εmmộtchm
ΠTôi= =1m(1+δTôi)= =1+θ(m),|θ(m)|mεmmộtch1-mεmmộtch

Hãy xác định hàm thực hoạt động trên các số thực x , y , zfx,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ư ~ 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ϵmach14ϵmach

f2~ Đây,| θx,2| ,| θy,2| 4 ε m một c h

f2~= =(((x(1+δx)-y(1+δy)(1+δxy))×(z(1+δz)))(1+δ)= =xz(1+δx)(1+δz)(1+δxy)(1+δ)-yz(1+δy)(1+δz)(1+δxy)(1+δ)= =xz(1+θx,2)-yz(1+θy,2).
.|θx,2|,|θy,2|4εmmộtch1-4εmmộtch

f1~f2~f2~f1~

xy

|f1~-f||f|= =|xz+xzθxz,1-yz-yzθyz,1-(xz-yz)||xz-yz|= =|xθxz,1-yθyz,1||x-y||x|+|y||x-y|4εmmộtch1-4εmmộtch,
|f2~-f||f|= =|xz+xzθx,2-yz-yzθy,2-(xz-yz)||xz-yz|= =|xθx,2-yθy,2||x-y||x|+|y||x-y|4εmmộtch1-4εmmộtch.

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 xy đủ 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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.