eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingBłędny epsilon - this is not a bug, this is ?Re: Błędny epsilon - this is not a bug, this is ?
  • Data: 2012-11-01 17:45:29
    Temat: Re: Błędny epsilon - this is not a bug, this is ?
    Od: "slawek" <h...@s...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Użytkownik "bartekltg" napisał w wiadomości grup
    dyskusyjnych:k6u5vk$cf9$...@n...news.atman.pl...

    >Gdzie twierdzę coś innego niż wykipedia?

    Zajrzyj do Wikipedii, przeczytaj. Umiesz czytać - więc w czym trudność?

    >Błędem jest w ogóle działanie na takich zakresach.
    >To chyba podstawy 'numerków'.

    Stała Plancka ci zniknęła. Zniknęła ci stała Plancka do kwadratu podzielona
    przez czwartą potęgą prędkości światła i pomnożona przez liczbę Avogadro.
    Oczywiście... w CGS.

    >Będziesz miał syf. To nie sa integery, nie powinno się działać
    >na 'ostatnich bitach'.

    Nie będę miał. Nie znam twoje siostry. Te zdania mają tyle ze sobą
    wspólnego, co podany przykład z liczbami integer.

    W podanym przykładzie liczenie jest "po wszystkich bitach" - bez
    "zapominania" o dodawaniu wyrazów, które choć dość małe, to jednak wynik
    zmieniają. Dla ciebie może to być bez znaczenia - ot, nauczyli cię że np.
    sinus alfa to prawie to samo co alfa (dobrze jeżeli jeszcze zapamiętałeś, że
    alfa ma być w radianach). W takim obrazie rzeczywistości (np. gry
    komputerowe) epsilon jest do niczego nie potrzebny: jak coś będzie nieco
    krzywo i niezbyt dokładnie, to i tak framerate ważniejsze jest.

    >Za ten kod powyżęj to powinni walić linijką po łapach.

    Jakieś doświadczenia z dzieciństwa?

    Ale ja nie o tym. Tylko z uprzejmym pytaniem: jak TY
    (o-wielki-i-wspaniały-Bartusiu) rozwiązałbyś prosty problem... masz szereg,
    możesz sumować dowolną (acz skończoną) ilość wyrazów tegoż. Każdy wyraz
    szeregu jest nieco mniejszy co do modułu od poprzedniego. Oczywiście, szereg
    jest zbieżny. Chcesz szybko ocenić ile wyrazów trzeba będzie uwzględnić w
    obliczeniach, tak aby zminimalizować błędy zaokrągleń. Wiesz - za długo
    pisać "dlaczego" - że suma pominiętych wyrazów (tj. tzw. reszta) jest
    mniejsza niż ostatni nie-pominięty składnik. Nie chcesz robić tego przy
    sumowaniu "od 1 do m", bo wiesz że wtedy błędy zaokrągleń będą zbyt duże (a
    przecież wiesz co to schemat Hornera). Gorzej - każdy z wyrazów zawiera
    czynnik C[n], który jest "bardzo trudny do obliczenia" (np. całka w
    przestrzeni 5-cio wymiarowej), ale szczęśliwie wiesz, że Abs[C[n]] < 1
    niezależnie od n.

    I teraz totalnie głupie pytanie: przyda się jakiś epsilon do tego? Jaki,
    jak, bo? Podaj jakieś konstruktywne rozwiązanie - przyda się!

    Bo to co na razie robisz, to wygląda na typową trollerkę o to kto był
    najbardziej bity linijką po łapach. (W tym niestety przegrywam - nikt nie
    chce mnie w moim przedszkolu bić linijką - może to się zmieni, gdy zacznę
    chodzić do podstawówki w mieście w którym dorastałeś - gdzie to było?)

    Na serio poczytaj co pisze w Wikipedii:
    http://en.wikipedia.org/wiki/Machine_epsilon - tabelka z niby IEEE-754 - jak
    wół stoi 1.11e-16 i nawet obok pow(2,-53) jest





Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: