Przeczytałem to
(1) Czynności źle uwarunkowane należy wykonać przed czynnościami dobrze uwarunkowanymi.
Jako przykład należy obliczyć jako ponieważ odejmowanie jest źle uwarunkowane, podczas gdy mnożenie nie.
Jednak analiza błędów pierwszego rzędu obu algorytmów ujawnia, że różnią się one tylko trzykrotnie (*) i nie rozumiem, dlaczego można to uogólnić na wyrażenie (1), ani intuicyjnie nie rozumiem znaczenia kolejność operacji. Czy uważasz, że stwierdzenie to (1) jest przyjętą zasadą i czy masz na to inne wyjaśnienia?
*: dokładniej, w pierwszej wersji występuje błąd względny ograniczony
gdzie jest precyzją maszyny.
Analiza ta opiera się na założeniu, że ty wynik pośredni jest mnożony przez (z powodu błędów zaokrąglania), gdzie są zmiennymi losowymi iid ograniczonymi przez . „Pierwszego rzędu” oznacza, że terminy wyższego rzędu, takie jak , są zaniedbywane.
źródło
Odpowiedzi:
Oznaczmy przez (byłem leniwy, próbując uzyskać wersję operatora dzielenia w kółku) odpowiednio zmiennoprzecinkowe analogi dokładnego mnożenia ( × ), dodawania ( + ) i odejmowania ( - ). Zakładamy (IEEE-754), że dla wszystkich [ x ⊕ y ] = ( x + y ) ( 1 + δ ⊕ ) ,⊗ , ⊕ , ⊖ × + -
gdzie ϵ m a c h to epsilon maszyny dający górną granicę błędu względnego z powodu zaokrąglenia. Będzie również użyć następującego lematu (przy założeniu, że wszystkie | δ I | ≤ ε m o c h i m nie jest zbyt duży), które mogą być łatwo sprawdzone:
m Π i = 1 ( 1 + δ I ) = 1 + θ (
Zdefiniujmy prawdziwą funkcję która działa na liczbach rzeczywistych x , y , z jakfa x , y, z
oraz dwie wersje implementacji funkcji w arytmetyki zmiennoprzecinkowej zgodnej z IEEE jako i ~ f 2, które działają na reprezentacjach zmiennoprzecinkowych ˜ x = x ( 1 + δ x ) , ˜ y , ˜ z , w następujący sposób:fa1~ fa2)~ x~= x ( 1 + δx) , y~, z~
Analiza błędów dla :fa1~
źródło