Dzisiaj jest 24 stycznia 2025 r.
Chcę dodać własny artykuł
Reklama

Utrata cyfr znaczących

Chcę dodać własny artykuł

Utrata cyfr znaczących

Utrata cyfr znaczących to zjawisko występujące w obliczeniach komputerowych, spowodowane sposobem reprezentacji liczb rzeczywistych. Szczególnie często pojawia się podczas odejmowania liczb, których różnica jest znacznie mniejsza niż każda z nich. To prowadzi do zmniejszenia liczby cyfr znaczących w wyniku do poziomu nieakceptowalnego. Analiza numeryczna bada metody minimalizowania tych efektów.

Opis zjawiska

Rozważmy dwie bliskie sobie liczby x i y. Ich reprezentacje w pamięci komputera to rd(x) oraz rd(y), które mają formę rd(z)=pm m_tcdot 2^c, gdzie m_t jest mantysą, a c to cecha. Przy odejmowaniu bliskich liczb wynik zawiera wiele zer na początku, co prowadzi do problemów z normalizacją:

rd(x-y)=pm m_tcdot 2^c, quad min left( 0,frac{1}{2}rightrangle.

Utrata cyfr znaczących jest szczególnie problematyczna, gdy |x-y| dąży do zera, co powoduje nieograniczony wzrost błędu względnego.

Przykłady problemów i ich rozwiązań

Przykład 1

Funkcja f(x)=sqrt{x+9}-3 dla x bliskich zeru może prowadzić do utraty cyfr znaczących. Aby temu zapobiec, można przekształcić wzór:

f(x) = frac{x}{sqrt{x+9}+3}.

Taka forma nie wymaga odejmowania i minimalizuje ryzyko utraty dokładności.

Przykład 2

Algorytm obliczania pierwiastków równania kwadratowego:

x_1 = frac{-b-sqrt{b^2 – 4ac}}{2a}, quad x_2 = frac{-b+sqrt{b^2 – 4ac}}{2a}.

W przypadku bliskich zer wartości -b i sqrt{b^2 – 4ac} może wystąpić utrata cyfr znaczących. Można tego uniknąć, stosując Wzory Viète’a:

  • Pierwiastek pierwszy dla b geq 0 jest dobrze uwarunkowany.
  • Pierwiastek drugi dla b < 0 jest dobrze uwarunkowany.

W obu przypadkach ważne jest, aby unikać operacji odejmowania, które mogą prowadzić do utraty precyzji.