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?
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!news.unit0.net!diablo1.news.osn.de!news.osn.de!diablo2.new
    s.osn.de!feeder2-2.proxad.net!proxad.net!feeder1-2.proxad.net!209.85.216.88.MIS
    MATCH!c7no12739196qap.0!news-out.google.com!gf5ni18188417qab.0!nntp.google.com!
    c7no12739188qap.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-fo
    r-mail
    Newsgroups: pl.comp.programming
    Date: Thu, 8 Nov 2012 15:04:15 -0800 (PST)
    In-Reply-To: <k7h3p6$tbl$1@mx1.internetia.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=91.121.142.165;
    posting-account=1HHohAoAAACpDlSIKz4hhiR5am1phV5e
    NNTP-Posting-Host: 91.121.142.165
    References: <50924bb1$0$1308$65785112@news.neostrada.pl>
    <k72sqt$gq$1@news.dialog.net.pl>
    <509505f2$0$1317$65785112@news.neostrada.pl>
    <k734vm$43g$1@news.dialog.net.pl>
    <509533d1$0$26687$65785112@news.neostrada.pl>
    <k797v2$t98$1@news.dialog.net.pl>
    <509848c6$0$1208$65785112@news.neostrada.pl>
    <k79hhh$26k$1@news.dialog.net.pl> <k7am9f$n0p$1@zeus.man.szczecin.pl>
    <k7apte$eiu$1@news.task.gda.pl>
    <0...@g...com>
    <k7b4tp$9ke$1@news.task.gda.pl> <k7b8b5$nqq$1@node1.news.atman.pl>
    <k7bbgo$pth$1@news.task.gda.pl>
    <50996f4d$0$1297$65785112@news.neostrada.pl>
    <k7c0hi$jp4$1@news.task.gda.pl>
    <50999d69$0$1215$65785112@news.neostrada.pl>
    <k7c774$3tq$1@news.task.gda.pl> <k7dic5$ssp$1@node2.news.atman.pl>
    <5...@g...com>
    <k7h3p6$tbl$1@mx1.internetia.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <0...@g...com>
    Subject: Re: jak się liczy błąd maszynowy?
    From: e...@g...com
    Injection-Date: Thu, 08 Nov 2012 23:04:15 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Lines: 71
    Xref: news-archive.icm.edu.pl pl.comp.programming:200652
    [ ukryj 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: