Algorytm numerycznie stabilny

Algorytm numerycznie stabilny

Algorytm numerycznie stabilny to taki, który dla nieznacznie zmienionych danych generuje również nieznacznie zmienione wyniki.

Można to zobrazować w następujący sposób:

Dane wejściowe:

a

1

{\displaystyle a_{1}}

Rzeczywista reprezentacja danych –

r

d

(

a

1

)

{\displaystyle rd(a_{1})}

Obliczanie danych pośrednich:

f

1

(

r

d

(

a

)

)

=

a

2

{\displaystyle f_{1}(rd(a))=a_{2}}

Rzeczywista reprezentacja:

a

2

=

r

d

(

a

2

)

{\displaystyle a_{2}=rd(a_{2})}

f

2

(

r

d

(

a

)

)

=

a

3

{\displaystyle f_{2}(rd(a))=a_{3}}

Rzeczywista reprezentacja:

a

3

=

r

d

(

a

3

)

{\displaystyle a_{3}=rd(a_{3})}

f

n

(

r

d

(

a

)

)

=

a

n

{\displaystyle f_{n}(rd(a))=a_{n}}

Rzeczywista reprezentacja wyniku ostatecznego:

a

n

=

r

d

(

a

n

)

{\displaystyle a_{n}=rd(a_{n})}

W rezultacie, na każdym etapie obliczeń możemy potencjalnie tracić dokładność. Algorytm stabilny numerycznie to taki, który nie pozwala na sytuacje, w których kumulacja błędów prowadzi do otrzymania silnie zafałszowanego wyniku (często pozbawionego cech poprawnego rozwiązania). Może to być spowodowane na przykład utratą cyfr znaczących.

W związku z tym uzyskujemy wynik „lekko zaburzony”, co oznacza, że błąd jest jedynie efektem ograniczonej reprezentacji danych w komputerze.

== Zobacz też ==

liczba zmiennoprzecinkowa

Przeczytaj u przyjaciół: