eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingAdams-Bashforth - wiki?
Ilość wypowiedzi w tym wątku: 2

  • 1. Data: 2010-07-29 15:35:02
    Temat: Adams-Bashforth - wiki?
    Od: "slawek" <s...@h...pl>

    Czy przypadkiem w Wikipedii nie ma błędu odnośnie metody Adamsa-Bashforth'a?

    http://en.wikipedia.org/wiki/Linear_multistep_method
    http://wapedia.mobi/en/Adams_Bashforth

    Wzorki po frazie "The Adams-Bashforth methods with s = 1, 2, 3, 4, 5 are"
    (ten dla y_{n+5} szczególnie).

    Tak samo jest w skrypcie Pawła Góry,
    http://student.eldoras.com/UJ/metody_numeryczne/Gora
    /wyklad07.pdf, niemniej
    jednak nie pytałem go, czy to nie przypadkiem z tego samego źródła (Wiki?) -
    może w nim jest błąd? Trzeba będzie pokopać dalej, i/lub wyliczyć owe b[n]
    samemu.

    Działało u kogoś z s = 5 dobrze?

    Mój program ślicznie mi liczy co trzeba... pod warunkiem, że nie daję tego
    tasiemca dla n+5 - czyżby ktoś pomylił się przepisując współczynniki?!

    Jeżeli jest s = 1, 2, 3, 4 --- to jest dobrze.
    Dam s = 5 --- idzie w krzaki.

    Ogólnie metoda bardzo przydatna, bo mam przezatentego duże koszty liczenia
    f, to takie całkowanie jest brrr...
    W A-B mogę użyć f-ów archiwalnych, czysta oszczędność. Tylko dziwi, czemu
    danie "lepszego" ciut wzoru prowadzi aż tak w krzaki - powinno ciut
    prowadzić wentualnie.

    Czy całkuję spline'ami czy trapezami - wisi to rozwiązaniu. Czyli to nie
    problem z ciągłością czegoś itd. itp. - nic finezyjnego, wygląda na
    literówkę we współczynnikach. Ale żeby w Wikipedii? Wątpię.

    Ma ktoś kreatywne pomysły?

    slawek

    P.S. fragmencik copy/paste - jak wyrzucić pierwsze trzy linie, to chodzi jak
    trzeba. A jak jest jak jest, to robi sruuu i wywala rozwiązanie w
    nieskończoność.

    if (j .gt. 4) then
    y1(j+1) = y1(j) + h *
    (1901.*f1(j)-2774.*f1(j-1)+2616.*f1(j-2)-1274.*f1(j-
    3)*251.*f1(j-4))/720.
    y2(j+1) = y2(j) + h *
    (1901.*f2(j)-2774.*f2(j-1)+2616.*f2(j-2)-1274.*f2(j-
    3)*251.*f2(j-4))/720.
    elseif (j .gt. 3) then
    y1(j+1) = y1(j) + h *
    (55.*f1(j)-59.*f1(j-1)+37.*f1(j-2)-9.*f1(j-3))/24.
    y2(j+1) = y2(j) + h *
    (55.*f2(j)-59.*f2(j-1)+37.*f2(j-2)-9.*f2(j-3))/24.
    elseif (j .gt. 2) then
    y1(j+1) = y1(j) + h * (23.*f1(j)-16.*f1(j-1)+5.*f1(j-2))/12.
    y2(j+1) = y2(j) + h * (23.*f2(j)-16.*f2(j-1)+5.*f2(j-2))/12.
    elseif (j .gt. 1) then
    y1(j+1) = y1(j) + h * (3.*f1(j)-f1(j-1))/2.
    y2(j+1) = y2(j) + h * (3.*f2(j)-f2(j-1))/2.
    else
    y1(j+1) = y1(j) + h * f1(j)
    y2(j+1) = y2(j) + h * f2(j)
    endif



  • 2. Data: 2010-07-29 15:41:24
    Temat: Re: Adams-Bashforth - wiki?
    Od: "slawek" <s...@h...pl>


    Użytkownik "slawek" <s...@h...pl> napisał w wiadomości grup
    dyskusyjnych:4c519fa4$0$19166$6...@n...neostrad
    a.pl...
    > if (j .gt. 4) then
    > y1(j+1) = y1(j) + h *
    > (1901.*f1(j)-2774.*f1(j-1)+2616.*f1(j-2)-1274.*f1(j-
    3)*251.*f1(j-4))/720.

    A powinno być:

    (1901.*f1(j)-2774.*f1(j-1)+2616.*f1(j-2)-1274.*f1(j-
    3)*251.+f1(j-4))/720.

    Czyli * zamiast + wlazła.

    Czyli Wiki nie kłamie.

    slawek


strony : [ 1 ]


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: