eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingBłędny epsilon - this is not a bug, this is ? › Re: jak się liczy błąd maszynowy?
  • Data: 2012-11-09 00:04:15
    Temat: Re: jak się liczy błąd maszynowy?
    Od: e...@g...com szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Po pierwsze dzieki. Nie jestes OP, ale OP ma wazniejsze tematy niz epsilon.

    W dniu czwartek, 8 listopada 2012 15:07:49 UTC-5 użytkownik Michoo napisał:
    > On 07.11.2012 19:50, e...@g...com wrote:
    > > A moze tak przy okazji ktos (moze OP?) wytlumaczy, jak sie
    > > liczy blad maszynowy wyrazenia sin(b/a) dla a=100 i powiedzmy
    > > b=549.755813887? Najlepiej na postawie tego DBL_EPS.
    > W typowym wypadku patrzy się do dokumentacji i czyta, że gwarantowana
    > dokładność dla sin to AFAIK 1e-10.

    Zawsze mnie zastanawialo, kiedy sie konczy typowy a zaczyna sin(1e20).

    > W "specjalnym" przypadku:
    > 549.755813887 się nie reprezentuje nawet w long double, mamy więc już na
    > początku przedział:
    >
    > 549.75581388699998797164880670607089996337890625L,
    > 549.7558138870000021825035219080746173858642578125L
    > o szerokości 1.42109e-14 i względnym błędzie 2.58494e-17

    > Wykonujemy dzielenie i otrzymujemy
    > 5.49756 z przedziałem 1.42681e-16 i dokładnością 2.59535e-17

    > Teraz jakąś prostą metodą liczymy sinus, np. Taylorem, do czasu aż
    > reszta będzie w tej samej okolicy co błąd obliczeń. Otrzymujemy
    > lower:
    >
    > -0.7072686935699425367384853002850064740414381958544
    254302978515625
    >
    > upper: -0.7072686935699250790777342645654357511375565081834
    7930908203125
    > interval: 1.74577e-14 interval rel: 2.46832e-14

    > Jeżeli chcemy teraz mieć pewność, że nasz przedział rzeczywiście zawiera
    > poszukiwaną wartość to powinniśmy go jeszcze skorygować o resztę z
    > rozwinięcia funkcji w szereg. W tym wypadku wydaje mi się, że możemy po
    > prostu go podwoić, bo sinusa przybliżyliśmy z resztą nie większą od
    > szerokości przedziału.

    Z tego co wiem (nie sprawdzalem, obliczenia numeryczne sa dla mnie mocno
    chlodne) ieee 764 (oidp numer) okresla nawet blad dla sinusa z bardzo wielkich
    liczb (dla 1e30 krok x zaczyna sie robic spory). Co ciekawe, uzywa sie tego
    do weryfikacji platformy w roznych @Home - o ile wyniki sa zupelnie bez sensu
    to jednak weryfikuja zgodnosc, bo zawsze sa takie same.

    To rozwiniecie wziales z definicji bledu sin() czy tak jak mogloby/powinno byc?

    > kod:
    > http://grota.be/~michoo/smieci/interval.cpp

    Ja jestem bezsilny, podobnie jak OP.

    > P.S.
    > Wszelkie uwagi mile widziane. Kod zmontowany na szybko z na podstawie
    > starego projektu, więc jakieś błędy mogły się wkraść.

    Jeszcze raz dzieki. Jak sie do tego ma ten DBL_EPS?

    --
    Edek

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: