Wpis z mikrobloga

piszę w #python program na metody numeryczne i wykonuje pewien algorytm, wg. wykładu liczby powinny się zerować, a mnie zostaje -5.5e^-16. po godzinie szukania wpadłem na pomysł, że jeżeli to jest tak mała liczba to może być to błąd precyzji? czy to może być to?

#informatyka #programowanie
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@szatantomojziomal_: Tak może być to problem z reprezentacją liczb zmiennoprzecinkowych:

0.1 + 0.2
0.30000000000000004

Nie znam się na pythonie, ale możesz poszukać biblioteki, która daje typy o większej precyzji. W pythonie chyba Decimal daje możliwość użycia większej precyzji.
Błąd będzie się kumulował szczególnie w przypadku sumowań w pętli. Czasami dzięki odpowiedniej kolejności działań można spowodować znoszenie się błędów zamiast kumulacji.
  • Odpowiedz