-
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
Następne wpisy z tego wątku
- 06.07.09 20:06 slawek
- 06.07.09 20:09 slawek
- 06.07.09 20:18 slawek
- 06.07.09 20:24 Mariusz Marszałkowski
- 06.07.09 20:28 slawek
- 06.07.09 20:45 slawek
- 06.07.09 20:54 bartekltg
- 06.07.09 21:11 Mariusz Marszałkowski
- 06.07.09 21:11 Wit Jakuczun
- 07.07.09 05:34 slawek
- 07.07.09 05:46 slawek
- 07.07.09 05:59 Wit Jakuczun
- 07.07.09 06:06 Tomasz Kaczanowski
- 07.07.09 06:54 slawek
- 07.07.09 07:34 Wit Jakuczun
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-29 Chrzanów => Specjalista ds. public relations <=
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- 2024-11-28 droga laweta
- 2024-11-28 Co tam się odpierdala w tej Warszawie?
- 2024-11-28 skąd się biorą tacy debile?
- 2024-11-28 JDG i utylizacja sprzetu
- 2024-11-27 Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- 2024-11-28 Katowice => Technical Artist <=
- 2024-11-28 Katowice => Technical Artist <=
- 2024-11-28 Bydgoszcz => QA Engineer <=
- 2024-11-28 Zielona Góra => Spedytor międzynarodowy <=
- 2024-11-28 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-27 Warszawa => Analityk Biznesowo-Systemowy <=
- 2024-11-27 Zielona Góra => Senior PHP Developer <=