eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPocedura całkowaniaRe: Pocedura całkowania
  • Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.neostrada.pl!a
    tlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
    From: "slawek" <s...@h...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: Pocedura całkowania
    Date: Mon, 6 Jul 2009 22:01:34 +0200
    Organization: TP - http://www.tp.pl/
    Lines: 82
    Message-ID: <h2tlp8$7a2$1@nemesis.news.neostrada.pl>
    References: <h2t00t$4h$1@atlantis.news.neostrada.pl> <h2t38s$5mu$1@inews.gazeta.pl>
    NNTP-Posting-Host: 62.69.219.25
    Mime-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original
    Content-Transfer-Encoding: 8bit
    X-Trace: nemesis.news.neostrada.pl 1246911080 7490 62.69.219.25 (6 Jul 2009 20:11:20
    GMT)
    X-Complaints-To: u...@n...neostrada.pl
    NNTP-Posting-Date: Mon, 6 Jul 2009 20:11:20 +0000 (UTC)
    In-Reply-To: <h2t38s$5mu$1@inews.gazeta.pl>
    X-Priority: 3
    X-MSMail-Priority: Normal
    Importance: Normal
    X-Newsreader: Microsoft Windows Live Mail 14.0.8064.206
    X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8064.206
    Xref: news-archive.icm.edu.pl pl.comp.programming:182585
    [ ukryj nagłówki ]



    Użytkownik "Mariusz Marszałkowski" <b...@g...pl> napisał w
    wiadomości grup dyskusyjnych:h2t38s$5mu$...@i...gazeta.pl...
    > Jeśli funkcja dana jest tablicą to ku ścisłości nie da się policzyć jej
    > całki :) Pomijając ten mankament, lepsze wyniki uzyska się wtedy gdy
    > się zastosuje lepszą aproksymację przebiegu pomiędzy znanymi wartościami.
    > A nie znając oryginalnej funkcji, nie wiadomo jak ją lepiej aproksymować
    > :)

    Po prostu wierzymy iż pewna funkcja czasu u(t), która - jeżeli pominiemy
    problemy czysto filozoficzne - opisuje ewolucję pewnego układu. Istnieje też
    model matematyczny, który określa zależności jakie powinna spełniać pewna
    funkcja psi(t), która - biorąc pod uwagę nasze ograniczenia - jest w
    zasadzie równa u(t), a w każdym razie - niezłym jej przybliżeniem. Funkcja
    psi jest ciągła (w danym przypadku), klasy C^n, może spełniać jeszcze
    rozmaite warunki (np. na wartość asymptotyczną itd. itp.)

    Teraz chcemy zbudować model numeryczny. Funkcja psi była i ciągła i miała
    jako dziedzinę R. A komputer liczy na podzbiorze (o skończonej mocy) liczb
    wymiernych. Nawet zapominając o tym że R i liczby Real to trochę dwie różne
    rzeczy - i tak będziemy mieli szeregi skończone zamiast funkcji (rozumianych
    jako odwzorowanie). Mamy teraz jakieś ciągi x[1], x[2], ..., x[n] oraz
    y[1],y[2],...,y[n] i uważamy że one są takie że norma[ y[k] - psi(x[k])]
    jest ogólnie mówiąc mała. Ale że nie mamy pojęcia jakie jest psi, to
    wymyślamy sobie jakąś funkcję f, taką że norma[y[k] - f(x[k])] jest mała. I
    pewnie wtedy funkcja f nienajgorzej aproksymuje funkcje psi, która z kolei
    ma coś wspólnego z u(t), czyli f jakoś tak opisuje u(t). A całka z f
    jakośtam ma się do całki z u.

    Jeżeli całkujemy numerycznie po dyskretnych punktach - to aby to było
    możliwe - konstruujemy sobie jakąś funkcję f. I jeżeli wzór jest wzorem
    trapezów - to f jest łamaną, czyli w niektórych miejscach nie ma pochodnej.
    Ale z jakiś powodów - np. wiemy że psi spełnia pewne rr czy jeszcze z innych
    przyczyn - wiemy że f powinno być np. klasy C^n lub nawet C^nieskończoność.
    I wtedy chyba lepiej aproksymować funkcjami sklejanymi wyższego nieco
    stopnia. To zapewni że tam gdzie trzeba zrobić coś z obliczonymi punktami
    funkcji f - da się zrobić (np. gdy potrzebna będzie 2-ga pochodna to można
    ją policzyć będzie). Całe te całkowanie numeryczne to de facto całkowanie
    funkcji aproksymującej.

    Więc po prostu są dwie sprawy:

    - da się czasem wiedzieć coś więcej o przebiegu funkcji - i najczęściej nie
    jest to coś, co skłania do wzoru trapezów;
    - aproksymacja łamaną nie jest w żadnym razie standardową, bo łamana nie
    jest niczym lepsza niż np. sinusoida.

    > Podstawowa metoda to zwiększanie "n" i użycie trapezów, niestety wraz
    > ze wzrostem "n" wydłuża się czas - ale to wszystko z pewnością już wiesz
    > :)

    Niezupełnie. Aby zwiększyć n, trzeba popracować - koszt O(n^3) operacji się
    mści. Ba, samo całkowanie nie jest sztuką dla sztuki - lecz właśnie jest
    potrzebne do wyznaczania właśnie tych y[k] dla k=1,2,...,n Okazało się, że
    przejście od trapezów do kubicznych splineów dało możliwość zaoszczędzenia
    10 razy na n. Czyli 1000 krotnie szybciej jest. Ale nadal spline'y (jako
    aproksymacja i sumowanie całki obliczonej analitycznie pod splinem o danych
    współczynnikach) to chyba nie jest to co lubię najbardziej - choć sam
    algorytm jest kompaktowy - jakieś 30 linijek, może 50. Ale właśnie szukam
    czegoś lepszego - może mieć i 1000 linijek lub sam-nie-wiem-co.

    > Nie wspominasz nic o metodzie montecarlo, ale jej dokładność także
    > będzie zależała od dokładności aproksymacji wewnątrz przedziałów :)

    Monte Carlo do tego się nie nadaje. Dane są "już" w postaci tablicy. Proste
    sumowanie jej elementów będzie dokładniejsze i szybsze. W zasadzie i tak
    takie sumowanie to metoda trapezów. W MC są narzuty na generowanie liczb
    losowych itd. itp. - to się opłaca w niektórych przypadkach - ale chyba
    właśnie nie przy takim jednowymiarowym całkowaniu.

    > Nie masz takiej możliwości aby jako parametr funkcji całkującej przekazać
    > funkcję całkowaną zamiast tablicy jej wartości?

    Nie, tzn. np. wyznaczenie jakiegokolwiek y=f( ( x[k]+x[k+1] ) / 2 )
    wymagałoby wyliczenia WSZYSTKICH "wartości pomiędzy", czyli (x[m]+x[m+1])/2
    , dla m < k . To delikatnie mówiąc nie jest zbyt komfortowe - bo jak tu np.
    marzyć o zmiennym kroku itd. itp.?!

    slawek


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: