eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingSimpson vs. Niski Cotes
Ilość wypowiedzi w tym wątku: 185

  • 41. Data: 2012-11-13 12:01:15
    Temat: Re: Simpson vs. Niski Cotes
    Od: "slawek" <h...@s...pl>

    Użytkownik "PK" napisał w wiadomości grup
    dyskusyjnych:s...@n...notb-home.
    ..

    >Akurat nie brakuje speców od numeryki, którym wszyscy na tej grupie
    >moglibyśmy najwyżej temperować ołówki, a którzy mogliby C od Fortrana

    Po pierwsze, to ja używam ołówka automatycznego, wkłady 0.7 mm, nie wymaga
    temperowania. Więc nie skorzystam z oferty.

    Po drugie, cytując za (wersja on-line jest łatwo dostępna
    http://www.nr.com ) "Numerical Recipes Electronic, the on-line version of
    the 2007 Third Edition in C++", książce napisanej przez Press'a,
    Teukolsky'ego, Vetterling'a i Flannery'ego, wydanej (w postaci książkowej)
    przez CUP (chyba Cambridge jest trochę wyżej w rankingach niż większość
    polskich uczelni), a która jest powszechnie uznanym podręcznikiem
    przeglądowo pokazujących możliwości metod numerycznych, jest napisane na
    stronie 157:

    "Alas, times do change; with the exception of two of the most modest
    formulas ("extended trapezoidal rule," equation 4.1.11, and "extended
    midpoint rule," equation 4.1.19; see 4.2), the classical formulas are almost
    entirely useless. They are museum pieces, but beautiful ones; we now enter
    the museum."


  • 42. Data: 2012-11-13 12:04:59
    Temat: Re: Simpson vs. Niski Cotes
    Od: "slawek" <h...@s...pl>

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

    >Nie. Schrzanił implementację.

    Tzn. co konkretnie?

    Jeżeli nie potrafisz wskazać co i jak - to może ty "schrzaniłeś
    implementację" - i dlatego masz przewagę Simpsona nad trapezami...???


  • 43. Data: 2012-11-13 12:19:37
    Temat: Re: Simpson vs. Niski Cotes
    Od: "slawek" <h...@s...pl>

    Użytkownik "AK" napisał w wiadomości grup
    dyskusyjnych:k7t3ao$67k$...@n...task.gda.pl...

    >PS: Wlasciwie po Twym poscie powinno z wiadomej strony nastapic milczenie.
    > Nie liczylby jednak na to. Te duet (slawek, kenobi) jest wyjatkowo
    > odporny na fakty :)

    Nareszcie coś do ciebie dotarło - to mianowicie, iż jakiekolwiek twoje chęci
    są wyłącznie twoimi chęciami.

    Czas poprawić to i owo - zauważyłem coś użytecznego (nie napiszę co, bo i
    tak to dla was za trudne, po co męczyć wam mózgi myśleniem) - rzeczywiście
    jest pewien problem z /implementacjami/ - nie zastanawiałem się nad tym do
    tej pory, a trzeba było. Nie ma to większego wpływu na matematykę problemu,
    ale nie mogę wykluczyć, że nie ma wpływu na wyniki - a skoro można zrobić
    lepiej, to dlaczego robić gorzej? Chociaż (patrz nieszczęsny epsilon w
    okolicy 1E-16) przy 10E4 punktów dokładność nie powinna polecieć dalej niż o
    jakieś 3-4 miejsca dziesiętne, czyli za mało aby by itd.

    Na razie macie cytat z dzieła uznanych autorytetów (błe nie lubię tak, ale
    nie mogłem się powstrzymać) - jest tam coś o jakimś muzeum i ogólnie w
    temacie. Poszukajcie sobie w wątku - czasem jednak warto czytać choćby
    jakieś e-booki.

    Z harcerskim pozdrowieniem dla leśnych dziadków ;)


  • 44. Data: 2012-11-13 12:42:22
    Temat: Re: Simpson vs. Niski Cotes
    Od: "slawek" <h...@s...pl>

    Użytkownik "Roman W" napisał w wiadomości grup
    dyskusyjnych:4c699929-26e9-484c-a399-c34765287e83@go
    oglegroups.com...

    >Poprawnie zaimplementowany Simpson (wg.
    >http://en.wikipedia.org/wiki/Simpson%27s_rule#Compo
    site_Simpson.27s_rule)
    >daje wartosc, dla Twoich danych, 0.5022749400837603, czyli >znacznie blizej
    >prawdziwej wartosci niz Twoje trapezy.

    Primo, nie pisze się zaimków osobowych wielką literą, wyjątek może być dla
    czasem w tekstach religijnych.

    Secundo, ciekawy sposób stosowania szablonów - wiem, wskaźniki do funkcji
    zanikło w C++... (z drugiej strony to ani to, ani to do niczego nie
    potrzebne w tak małym przykładzie).

    Tertio, popatrzmy co mamy, 1000 przedziałów, 500 przedziałów, czy może 2000
    przedziałów? Przedziałów czy węzłów? Ale to chyba nie w tym przyczyna...

    Quarto, porównaj z wynikiem "mojego Simpsona" - jeżeli "mój Simpson" był
    gorszy niż "moje trapezy", to oznacza że "twój Simpson" jest dokładniejszy
    niż "mój Simpson" (bo "mój Simpson" gorszy niż "moje trapezy") - a to
    oznacza, że masz inne wyniki dlatego, że masz inny komputer i/lub nie masz
    tablicy wartości (czyli liczysz na 80-bitach zamiast na 64-bitach). Spróbuj
    najpierw władować wszystkie wartości do tablicy liczb double (tzn. np.
    właśnie 1000 liczb, co da 999 przedziałów) - i dopiero potem, po tej
    modyfikacji, policz co daje "twój Simpson".

    Quinto, jest istotnie pewien problem - Bartek go przeskoczył, bo użył
    Matlab'a (tj. nie był świadomy na czym ten problem polega, a Matlab
    automatycznie daje w tym konkretnym przypadku - a przynajmniej powinien
    dawać - pewną przewagę w dokładności obliczeń). Ja muszę nad tym trochę
    popracować. Być może to jest "nieznaczące" - a być może nie. W każdym razie
    ładnie wyjaśniałoby, dlaczego metody wielopunktowe są pozornie
    dokładniejsze... choć naprawdę są równie (lub nawet mniej) dokładne w
    porównaniu z ordynarnym sumowaniem (żadne tam trapezy - zwykła suma).


  • 45. Data: 2012-11-13 12:54:02
    Temat: Re: Simpson vs. Niski Cotes
    Od: "zdumiony" <z...@j...pl>

    Użytkownik "slawek" <h...@s...pl> napisał w wiadomości
    news:k7tbmv$6se$1@zeus.man.szczecin.pl...
    > Primo, nie pisze się zaimków osobowych wielką literą, wyjątek może być dla
    > czasem w tekstach religijnych.

    NIe trolluj, choć jak tak ci zależy, mogę pisać o tobie małą literą.

    > popracować. Być może to jest "nieznaczące" - a być może nie. W każdym
    > razie ładnie wyjaśniałoby, dlaczego metody wielopunktowe są pozornie
    > dokładniejsze... choć naprawdę są równie (lub nawet mniej) dokładne w
    > porównaniu z ordynarnym sumowaniem (żadne tam trapezy - zwykła suma).

    Ordynarne sumowanie dałoby nie gorsze wyniki tylko w przypadku gdyby punkty
    miały chaotyczną wartość, ale przeważnie funkcja jest ciągła a nawet gładka
    w przeważającej częśći przedziału.


  • 46. Data: 2012-11-13 13:37:19
    Temat: Re: Simpson vs. Niski Cotes
    Od: "AK" <n...@n...com>

    Użytkownik "slawek" <h...@s...pl> napisał:

    > Totalne niezrozumienie problemu: tobie nadal wydaje się, że możesz sam sobie
    określać ile razy i w
    > jakich "węzłach" wywołasz sobie funkcję f(x). A tym razem problem był i jest taki,
    że masz z góry
    > zadany ciąg par (x,y), dla ułatwienia x[n] = n * h.

    Glupi chamowaty palancie :) To zalozenie to sam sobie wymysliles chyba.

    Ale..
    Gdybys mial choc troche rozumu to zauwazylbyc, ze w tym przypadku
    _tym bardziej_ twoja uber alles metoda trapezow jest do kitu.

    Przeciez cale to calkowanie sprowadza sie do tego, ze ty
    posrednio twierdzisz iz interpolacja funkcji przez trapezy jest lepsza
    (dokladniejsza) niz przez parabole czy wielomiany wyzszego rzedu.
    A to bylo, jest i bedzie (poza szczegolnymi przypadkami) g.. prawda.

    Przeciez Bartek wyraznie ci pokazal ze metody te (wyzszych stopni)
    sa szybciej zbiezne (wystarczy mniejsza liczba punktow do osiagniecia tej samej
    dokladnosci) niz przeswietne trapezy.
    BTW: W przypadku danych otrzynanych z pomiarow, (a wiec obardzonych
    bledem) w ogole nie stosuje sie tego typu interppolacji, ale aproksymacje
    i jesli juz "surowymi" wielomianami to przynajmniej poprzez jakis
    nawet najprymitywniejsze "wygladzanie" danych (chcby wielomianami Gramma
    z - co bardzo wazne - "automatycznyn"/statystycznym doborem stopnia).

    Co do twoich ksiezycowych idiotyzmow odnosnie bezkosztowego
    "liczenia funkcji" to dwa sa "dwa swiaty":
    1. baaardzo kosztowne obliczanie funkcji (patrz planowanie eksperymentu
    majace na celu mimalizacje ilosci "probek"). Tu jak najbatdziej
    wazne jest aby metoda interpolacyjna/ekstrapolacyjna byla najszybciej
    zbiezna. Tu tez trapezy sa do kitu.
    2. bezkosztowe liczenie funkcji, ale za to "dosc szybkie". Tak szybkie
    ze nie nadazysz z "wyliczaniem" online "poprawek" np do korekcji
    przyslowiowego narzedzia skrawajacego dla twoich 10 000 punktow.
    Tu _tez_ kluczem jest jak najlepsza zbieznosc metody po to aby
    moc maksymalnie zmniejszyc ilosc "probke" przy zachowaniu
    zalozonej dokladnosci metody. Tu _tez_(co Bartek
    dobitnie na wykresach pokazal) twoje trapezy czy prostokaty
    sa w tyle.

    PS: Nie twierdze ze kwadratury Newtona-Coatsa sa super.
    Nie sa. daleko im do tego.
    Chocby dlatego, ze sa nieciagle w wezlach.
    Chocby dlatego ze sa interpoplacyjne (a wiec nadaja sie badziej
    wlasnei do obliczania calek finkcji o znanej analitycznie postaci).
    Ale ta wade maja zarowno trapezy jak i Simpson, 3/8 i wyzsze.
    Z tej nie idealnej rodziny, to jednak prostokaty czy trapezy sa gorsze.
    PS1: tak naprawde to wiekszosc poruszanych tu rzeczy to prostota i wrecz
    podstawy/abc wrecz elementarnej numeryki.
    No ale slawki wszelkie musza na nowo udowadniac, ze kolo jest
    kwadratowe :( i robic ludziom wode z mozgu.

    AK


  • 47. Data: 2012-11-13 13:40:36
    Temat: Re: Simpson vs. Niski Cotes
    Od: "slawek" <h...@s...pl>

    Użytkownik "zdumiony" napisał w wiadomości grup
    dyskusyjnych:k7tcca$p6a$...@n...news.atman.pl...

    >Ordynarne sumowanie dałoby nie gorsze wyniki tylko w przypadku gdyby punkty
    >miały chaotyczną wartość, ale przeważnie funkcja jest ciągła a nawet gładka
    >w przeważającej częśći przedziału.

    Po pierwsze, to funkcja jest fraktalem - tzn. ta funkcja o którą naprawdę
    chodzi - czasami jest fraktalem, a czasami gładka. I nie wiadomo kiedy
    zechce frelować.

    Po drugie, niezłym modelem jest zapis audio PCM przy 44kHz jakieś 5 sekund
    jakiegoś wizgotu i szumów - a z tego chcemy policzyć wartość skuteczną i RMS

    Czyli bycie funkcją gładką... nie podpada.

    Jeszcze raz powtarzam, co na temat jest w literaturze:

    http://www.nr.com "Numerical Recipes Electronic, the on-line version of the
    2007 Third Edition in C++", Press & Teukolsky & Vetterling & Flannery'ego,
    str. 157.:

    "Alas, times do change; with the exception of two of the most modest
    formulas ("extended trapezoidal rule," equation 4.1.11, and "extended
    midpoint rule," equation 4.1.19; see 4.2), the classical formulas are almost
    entirely useless. They are museum pieces, but beautiful ones; we now enter
    the museum."

    I zauważ, że to nie jakaś dyskusja w necie, tylko książka wydana w
    angielskim Cambridge, przez tych specjalistów, którym ktoś chciał ołówki
    temperować... Jak na poważny podręcznik sformułowanie "almost entirely
    useless" jest 1000x mocniejsze niż wszystkie "nei" pisane przez AK czy
    dyżurne forumowe trolle. (Niemniej jednak Press et al. mogą się mylić -
    nawet ja nie jestem nieomylny (sic/lol) - dlatego drążę temat i może kiedyś
    dodrążę się do jakiś konkretnych konkretów.)





  • 48. Data: 2012-11-13 13:46:40
    Temat: Re: Simpson vs. Niski Cotes
    Od: Roman W <r...@g...com>

    W dniu wtorek, 13 listopada 2012 11:01:15 UTC użytkownik slawek napisał:
    > Użytkownik "PK" napisał w wiadomości grup
    > Po drugie, cytując za (wersja on-line jest łatwo dostępna
    > http://www.nr.com ) "Numerical Recipes Electronic, the on-line version of
    > the 2007 Third Edition in C++", książce napisanej przez Press'a,
    > Teukolsky'ego, Vetterling'a i Flannery'ego, wydanej (w postaci książkowej)
    > przez CUP (chyba Cambridge jest trochę wyżej w rankingach niż większość
    > polskich uczelni), a która jest powszechnie uznanym podręcznikiem
    > przeglądowo pokazujących możliwości metod numerycznych, jest napisane na
    > stronie 157:
    >
    > "Alas, times do change; with the exception of two of the most modest
    > formulas ("extended trapezoidal rule," equation 4.1.11, and "extended
    > midpoint rule," equation 4.1.19; see 4.2), the classical formulas are almost
    > entirely useless. They are museum pieces, but beautiful ones; we now enter
    > the museum."

    http://www.lysator.liu.se/c/num-recipes-in-c.html#ba
    d

    RW


  • 49. Data: 2012-11-13 13:58:58
    Temat: Re: Simpson vs. Niski Cotes
    Od: Roman W <r...@g...com>

    W dniu wtorek, 13 listopada 2012 11:42:24 UTC uzytkownik slawek napisal:
    > Udz?ytkownik "Roman W" napisadz? w wiadomodz?ci grup
    > dyskusyjnych:4c699929-26e9-484c-a399-c34765287e83@go
    oglegroups.com...
    >
    > >Poprawnie zaimplementowany Simpson (wg.
    > >http://en.wikipedia.org/wiki/Simpson%27s_rule#Compo
    site_Simpson.27s_rule)
    > >daje wartosc, dla Twoich danych, 0.5022749400837603, czyli >znacznie blizej
    > >prawdziwej wartosci niz Twoje trapezy.
    >
    > Primo, nie pisze sidz? zaimkdz?w osobowych wielkdz? literdz?, wyjdz?tek modz?e
    bydz? dla
    > czasem w tekstach religijnych.

    Robilem to z grzecznosci, ale jezeli ciebie to krepuje, to przestaje.

    > Tertio, popatrzmy co mamy, 1000 przedziadz?dz?w, 500 przedziadz?dz?w, czy modz?e
    2000
    > przedziadz?dz?w? Przedziadz?dz?w czy wdz?zdz?dz?w? Ale to chyba nie w tym
    przyczyna...

    Moja implementacja uzywa prawie tyle samo wartosci funkcji co twoja (10001 zamiast
    10000).
    Roznica powinna byc zaniedbywalna, jezeli obie implementacje byly poprawne.

    > Quarto, pordz?wnaj z wynikiem "mojego Simpsona" - jedz?eli "mdz?j Simpson" bydz?
    > gorszy nidz? "moje trapezy", to oznacza dz?e "twdz?j Simpson" jest dokdz?adniejszy
    > nidz? "mdz?j Simpson" (bo "mdz?j Simpson" gorszy nidz? "moje trapezy") - a to
    > oznacza, dz?e masz inne wyniki dlatego, dz?e masz inny komputer i/lub nie masz
    > tablicy wartodz?ci (czyli liczysz na 80-bitach zamiast na 64-bitach). Sprdz?buj
    > najpierw wdz?adowadz? wszystkie wartodz?ci do tablicy liczb double (tzn. np.
    > wdz?adz?nie 1000 liczb, co da 999 przedziadz?dz?w) - i dopiero potem, po tej
    > modyfikacji, policz co daje "twdz?j Simpson".

    OK, point taken: sprawdzilem wersje z tablica (kod ponizej). Wynik jest nadal
    0.5022749400837603, czyli praktycznie tyle samo, co analityczny rezultat.

    Sorry, masz zla implementacje. Moze sam po swojemu zaimplementuj wersje z Wiki,
    a potem pogadamy?

    RW

    ------

    Kod:

    #include <cmath>
    #include <iostream>
    #include <iomanip>
    #include <vector>

    double function(double x)
    {
    return sin(x) * exp(-x);
    }

    template <class F>
    double integrate_simpson(F f, double x0, double x1, size_t k)
    {
    const size_t n = 2 * k;
    const double h = (x1 - x0) / n;
    std::vector<double> y(n + 1);
    for (size_t j = 0; j <= n; ++j) {
    y[j] = f(x0 + j * h);
    }
    double sum = y[0] + y[n];
    for (size_t j = 1; j < k; ++j) {
    sum += 2 * y[2 * j];
    }
    for (size_t j = 1; j <= k; ++j) {
    sum += 4 * y[2 * j - 1];
    }
    return h * sum / 3.0;
    }

    int main()
    {
    std::cout << std::setprecision(16) << integrate_simpson(function, 0.0, 5.0, 10000/2)
    << std::endl;
    }


  • 50. Data: 2012-11-13 14:03:23
    Temat: Re: Simpson vs. Niski Cotes
    Od: Roman W <r...@g...com>

    W dniu wtorek, 13 listopada 2012 12:58:58 UTC użytkownik Roman W napisał:
    [snip]

    Poniewaz w miedzyczasie slawek zmienil zdanie co do liczby punktow ktore
    chcial brac w calkowaniu (kod w pierwszym poscie definiowal NPTS jako 10000,
    a teraz slawek mowi o braniu 1000 wartosci), to puscilem swoj kod na 1000
    przedzialach. Wynik wynosi teraz 0.5022749400767844, czyli nadal znacznie
    dokladniej niz skaszaniona slawkowa implementacja.

    Sorry mate.

    RW

strony : 1 ... 4 . [ 5 ] . 6 ... 19


Szukaj w grupach

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: