Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > pl.comp.lang.python > #114

Re: Martwa grupa?

From "AK" <nobody@nowhere.net>
Newsgroups pl.comp.lang.python
Subject Re: Martwa grupa?
Date 2018-02-18 16:07 +0100
Organization Aioe.org NNTP Server
Message-ID <p6c4t5$14pi$1@gioia.aioe.org> (permalink)
References (12 earlier) <almarsoft.8137023269573244304@news.v.pl> <p69ig8$1anq$1@gioia.aioe.org> <almarsoft.2189709423721289494@news.v.pl> <p69vsn$67v$1@gioia.aioe.org> <almarsoft.2620017325425202706@news.v.pl>

Show all headers | View raw


Użytkownik "slawek" <fake@fakeemail.com> napisał:

> On Sat, 17 Feb 2018 20:29:51 +0100, "AK" <nobody@nowhere.net> wrote:
>> Czyli jak porownujemy liczby FP? Ano zawsze tak:
>> a == b    =>   abs(a - b) <= EPS
>
> Poczytaj sobie PEP485.

Znam go w miare dokladnie.
Mowilem zreszta wyraznie, ze najczesciej stosuje sie EPS wzglednie,
ale.. nie zawsze na to sens. Czasem/czesto to wlasnie EPS bezwzgledny
jest odpowiedniejszy. Czesto stosuje sie techniki no..nazwe je "dynamicznym EPSem"
zwlaszac w przypadku algorytmow slabo/zbieznych/malo odpornych na bledy zaikraglen/malo stabilnych
gdzie nawet stosuje sie dosc zaawansowane statystyczne szacoiwanie bledu, aby
zdecydowac czy "toto jest rowne 0.0" (np. odleglosc od ekstremum).
Czesto jest to problem sam w sobie, bo np w przypadku dochodzenia
do ekstremum badac czy na tyle malo zmienia sie krok czy wartosc fukcji
czy moze obie? A co gdy funkcja jest bardzo plaska i krok (x) zmienia sie
"kilka rzedow" bardziej od wartosci(y)? Wtedy "moze" lepiej miec/stosowac
dwa EPS(XY), co jesy funkcja jest bardzo stroma, a co jestli jest
rozna w roznym zakresie/dziedzinie? Itp itd. Problem z fp (i w ogole
z szacowaniem "czy cus jest 0.0:) wydaje sie prosty, ale nim nie jest.

> To co proponujesz nie nadaje się do danych które są z natury rzeczy mniejsze niż EPS.

.. bo przeciez EPS jest _wlasnie po to _ aby do dobrac _wlasciwie_ do skali danych
/domeny wiec: albo stosowac roznice wzgledne albo stosowac EOS _odpowiednio_
dobrany, ale bezwzgledny. Nie zawsze roznice wzgkedne maja sens. Czesto wlasnie
EPS i roznice bezwzgledne sa wlasciwe,

PS: W "moich czasach" EPS zwykle wystepowal jako parametr stosowanej
procedury/algorytmu i.. nie posiadal anu wartosc domyslnych ani zalecanych.
Pozostawiano to (i slusznie) programiscie numerykowi.

> Poprawniej jest porównywać abs(a-b) <= EPS*(abs(a)+abs(b)), ale i ten sposób - używany m.i. w 
> Numerical Recipes - ma swoje wady.

To prawda. niekiedy "zwykly"surowy bezwzgledny EPS jest odpowiedniejszy
a niekiedy (tak jak zaznaczylem) EPS jest "dynamiczny" i jest to skomplikowany
test/algorytm np. statystyczny na podstawie/bazie dotychczasowych danych.

> Bo zasadniczy problem to nie porównywanie... do tego zawsze wystarczyłoby a == b... ale 
> oszacowanie jak duże mogą być błędy zaokrągleń.

Porownananie "sztywne"wiedzac, ze sa bledy zaokraglen/kunulacja bledow itp
jest zwykla bzdura, bo zaklamuije rzeczywistosc.

>A tego nie da się wiedzieć w bibliotece numerycznej nie  znając domeny problemu.

Tak. Tu 100% zgoda.

> W szczególności są takie dane, gdzie jest  około 20 dokładnych cyfr po przecinku.

Ilosc miejsc znaczacyh mantysy tak naprawde nie ma tu znaczenia.
Problem porownania/szacowania fp bedzie taki sam nawet przy 1000 cyfr znaczacych.

Liczy sie tez dokladnosc dzialan posrednich (a moze byc rozna/mniejsza od
wyniku/formatu koncowego. Liczy sie dlugosc akumulatorow wewnetrznych
w koprocesorze itp. Bardzo madrze u Laheya napisali, ze nawet jesli na dwoch
roznych srodowiskach stosuje sie "zewnetrznie" ten sam format IEEE to i tak
wyniki (i ich bledy) moga byc inne. Wlasnie z w/w powodow.

PS: Najlepiej przyjac zasade: _nic nie wiemy o formacie/dokladnosci liczb fp_
(nawet jesli wiemy wszystko:)

AK

Back to pl.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Martwa grupa? Robert Wańkowski <robwan@wp.pl> - 2018-02-09 10:20 +0100
  Re: Martwa grupa? szykcech@gmail.com - 2018-02-09 02:05 -0800
    Re: Martwa grupa? Robert Wańkowski <robwan@wp.pl> - 2018-02-09 11:22 +0100
      Re: Martwa grupa? Marcin Konarski <amok@codestation.org> - 2018-02-09 10:31 +0000
      Re: Martwa grupa? Roman Tyczka <noemail@because.no> - 2018-02-09 12:55 +0100
        Re: Martwa grupa? Robert Wańkowski <robwan@wp.pl> - 2018-02-09 13:11 +0100
          Re: Martwa grupa? Roman Tyczka <noemail@because.no> - 2018-02-09 13:33 +0100
            Re: Martwa grupa? Robert Wańkowski <robwan@wp.pl> - 2018-02-09 13:42 +0100
              Re: Martwa grupa? szykcech@gmail.com - 2018-02-09 05:59 -0800
                Re: Martwa grupa? amorawski@magna-power.com - 2018-02-09 07:15 -0800
                Re: Martwa grupa? szykcech@gmail.com - 2018-02-09 08:16 -0800
                Re: Martwa grupa? Adam M <amorawski@magna-power.com> - 2018-02-09 08:38 -0800
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-16 19:22 +0100
                Re: Martwa grupa? szykcech@gmail.com - 2018-02-09 08:19 -0800
                Re: Martwa grupa? Adam M <amorawski@magna-power.com> - 2018-02-09 08:41 -0800
                Re: Martwa grupa? szykcech@gmail.com - 2018-02-09 09:41 -0800
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-16 19:24 +0100
                Re: Martwa grupa? Cezary Grądys <czarekgr@wa.onet.pl> - 2018-02-17 23:08 +0100
                Re: Martwa grupa? szykcech@gmail.com - 2018-02-18 03:21 -0800
                Re: Martwa grupa? Cezary Grądys <czarekgr@wa.onet.pl> - 2018-02-18 23:25 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-18 15:25 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-16 19:20 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-16 19:10 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-17 00:46 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-17 08:49 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-17 11:39 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-17 12:15 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-17 14:29 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-17 14:43 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-17 15:04 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-17 16:49 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-17 14:46 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-17 16:41 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-17 17:16 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-17 20:29 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-17 21:00 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-17 21:22 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-18 14:49 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-18 16:07 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-18 15:16 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-18 16:26 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-17 21:38 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-17 14:56 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-17 16:43 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-17 17:25 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-17 20:34 +0100
          Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-10 11:37 +0100
            Re: Martwa grupa? Robert Wańkowski <robwan@wp.pl> - 2018-02-10 11:47 +0100
              Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-11 17:54 +0100
                Re: Martwa grupa? szykcech@gmail.com - 2018-02-11 11:45 -0800
                Re: Martwa grupa? Roman Tyczka <noemail@because.no> - 2018-02-11 21:40 +0100
                Re: Martwa grupa? szykcech@gmail.com - 2018-02-11 13:13 -0800
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-12 10:37 +0100
                Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-12 10:43 +0100
                Re: Martwa grupa? m <mvoicem@gmail.com> - 2018-02-12 13:47 +0100
                Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-16 19:33 +0100
            Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-16 19:25 +0100
        Re: Martwa grupa? Robert Wańkowski <robwan@wp.pl> - 2018-02-09 18:44 +0100
          Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-16 19:56 +0100
            Re: Martwa grupa? Robert Wańkowski <robwan@wp.pl> - 2018-02-16 20:15 +0100
              Re: Martwa grupa? "AK" <nobody@nowhere.net> - 2018-02-16 23:55 +0100
              Re: Martwa grupa? slawek <fake@fakeemail.com> - 2018-02-17 07:51 +0100
  Re: Martwa grupa? Roman Tyczka <noemail@because.no> - 2018-03-12 14:50 +0100

csiph-web