-
51. Data: 2009-07-07 13:54:08
Temat: Re: Pocedura całkowania
Od: bartekltg <b...@g...com>
On 7 Lip, 15:23, "slawek" <s...@h...pl> wrote:
> Użytkownik "bartekltg" <b...@g...com> napisał w wiadomości grup
> dyskusyjnych:98a4aeba-51da-4e56-8f7f-edbf2e378...@c1
g2000yqi.googlegroups.com...
Teraz odpowiem wstepnie na szybko
> Teoretycznie tak. W praktyce - weź sobie metodę która łyka na raz 23 węzły
> (dlaczego tyle? nieważne, to tylko przykład). Podziel sobie 10000 punktów w
> następujące sposoby:
> 23+23+..., 1+23+23+..., 2+23+23+...,...,22+23+23+... (oczywiście, dla
> punktów na początku i na końcu jakoś trzeba dać sobie radę - ale tego będzie
> mniej więcej 50 punktów na 10000 czyli 0.5%). Uśrednij te wszystkie wyniki.
> Co ci wyjdzie? Surprise, surprise - wzór trapezów (z małymi zwichrowaniami
> na końcach, ale to 0.5% przypadków, do olania).
Pokazales, jak zerpsuc metode. Brawo. Nie wierzysz, ze kwadratura
rzedu
23 bedzie szybceij zbiegac niz trapezy? To ciezko mi bedzie dalej
rozmawiac:(
> Trochę to śmieszne. Ale robienie tych wszystkich tabelek i współczynników
> nie ma sensu.
Czemu smieszna? jakich tabelek, w programie nic nie robie.
>
> Natomiast dla spline'ów wrzucasz całą krzywą na raz do procedury (wysłałem
> ją do wątku, więc możesz ją sobie przetestować, to uproszczony wariant dla
To sprawy implementacji. WIadomo, ze duzo rzeczy mozna zrobic zle:)
> W zasadzie dla wielomianu n-tego stopnia przechodzącego przez n punktów -
> też tak jest. Cała krzywa idzie od razu. Ale wielomian stopnia 10 tysięcy?
> Brrr... to nie zadziała.
Robisz tak jak w splajnach - _kwadratury zlozone_ pierwsze 23 punkty,
pozniej
kolejne (22 nowe) na kazdym przedziale dopasowujesz wielomian.
Splajny robia dokladnie to samo, tylko dla n punktow bierzesz wyzszy
stopien wielomiany i rzadasz odpowiedniej ciaglosci pochodnych
na granicach.
> > Po pierwsze jednego nie dodasz, dla parabol musisz dodac 2, dla
> > simpspona 3.
>
> Tak, po prostu dodajesz po jednym punkcie - i patrzysz jak wzór ślizga się
> po sobie.
Co to znaczy slizga?
Mowilem juz, nie dodasz tylko jednego punktu. A jak dodales bez
zastanowienia,
to moze i dadala Ci sie liczba postaci 0xFFFFF8 :)
> Spline jest dokładniejszy. Sprawdzone - połowienie kroku całkowania daje
> wartości szybciej zbieżne.
Jaki spline? kubiczny?
Szybiej od czego? trapezow, parabol - oczywiscie. Simpsona- wielomiany
sa
i tu i tu stopnia 3, wiec ok. Wyniki porownania moga byc ceikawe. Ale
nie
beda szybsze od romberga czy gaussa oaprtego na 23 wezlach:)
> > z 'wypuklosci'. Usredniajac to spowrotem dostajesz trapezy - tracisz
> > aproksymowana informacje f'.
>
> Im więcej uśredniania, tym mniej arbitralny jest wynik.
To jest _nieprawda_.
Jakby tak bylo, splajny kubiczne czy simpson wcale ine byly by lepsze
od trapezow, a oczywiscie sa.
> A to już jest ciekawe. Vide procedurka - pętla jest po n, więc byłyby to
> unrolling loopsa po n, gdzie n jest nieznane.
NIe o to chodzilo.
> > Ale po co? Jedyne zadanie, jakie przed Toba stoi to zwiac taka
> > kwadrature,
> > aby jej wezly pokrywalty sie z x[k]. No, chyba, ze x[k] nie sa rozno
> > oddalone,
> > ale o to sie pytalem w pierwszym poscie;p
>
> Są. Na razie. Ale jest ich 10000. A to oznacza, że kwadratura
> "równouprawniająca" te punkty byłaby stopnia 10000. Co jest do zrobienia
To jest nieprawda. Kwadratura zlozona prostokotow tez rownouprawnia
punkty. Zreszta, skad pomysl na "rownouprawnienie" punktow.
Splajny nie maja tej wlasnosci! Zadajac tej wlasnosci tracisz
informacje
o pochodnych i psujesz zbieznosc kwadrtatur.
Chyba rzeczywiscie nie wierzysz, ze prostokaty zbiegaja wolniej niz
trapezy,
trapezy niz parabole, a te wolniej niz simpson..;]
> (Integrate na InterpolatingPolynomial)... ale kompletnie niepraktyczne - ze
> wzrostem stopnia wielomianu rosą szanse na to że owszem będzie interpolował,
Tak, interpolowanie wielomianem tak wysokiego stopnia na
rownooddalonych
wezlach bylo by kiepskim pomyslem.
> ale będzie też złą aproksymacją w sensie L2. Jak chcesz to ci mogę taką
> kwadraturę wysłać :) Powinno być mniej niż 1000 linijek.
I w normie max, tec... takie przyklady rzuca sie na podstawowym kursie
numerkow
pomiedzy interpolacja wielomianami o dowolnych wezlach a wspomnieniem
o
tym, zeby wybrac ladne wezly, np miejsca zerowe weilomianow
czebyszewa.
[o, nawet ladny wykresik dali http://en.wikipedia.org/wiki/Runge_function
http://www.mste.uiuc.edu/exner/ncsa/runge/ ]
Pamietac trzeba , ze w pewien sposob dotyczy to tez splajnow wykokiego
rzedu:)
pozdr
bartekltg
-
52. Data: 2009-07-07 13:58:32
Temat: Re: Pocedura całkowania
Od: "slawek" <s...@h...pl>
Użytkownik "bartekltg" <b...@g...com> napisał w wiadomości grup
dyskusyjnych:29953dfe-0918-47f1-9afc-51ad19ff22ed@o7
g2000yqb.googlegroups.com...
> Podobnie simpson interpoluje na kazdych polejnych trzech przedialach
> (4 punkty) wielomian 3 stopnia i wylica calke tego wialomianu.
Oczywiście. Każde jednak kolejne 4 punkty są po prostu zestawione bez
synchronizacji pochodnych. Simpson to 4 punkty. A do całkowania jest 10000.
Czyli 2500 razy Simpson, czyli 2500 razy źle zszyta funkcja.
> nadal dzialaja. Bierzesz jakas ladna baze, najlepiej lagrange'a
Błeee. Nie działa dobrze. Lepsze spline są.
> calke z tego wyrazenia w granicach x1-xn jestes w stanie policzyc
> analitycznie i wstawic
Owszem. Dla n = 10000 też mogę. Ale może wynik to jednak wyślę ci na priv
:)
> Bedzie to na pewno szybsze niz splajny dla duzej liczby punktow.
Ma być szybkie. Ale musi być dokładne. Splajny są dokładne i wystarczająco
szybkie, tzn. O(n). Chodzi teraz o podniesienie dokładności. Jeszcze trochę.
> przybedzie, czy ostatni fragment przyblizac inaczej (wielomianem
> mniejszego stopnia
Z tym są problemy - bo wprowadzi to dodatkowe numeryczne oscylacje do
wyników (przełączanie między metodami). Jeżeli np. kwadratura jest 5-cio
punktowa, to będzie to "sinusoidka" o długości na 5 punktów. Samo w sobie
paskudne.
slawek
-
53. Data: 2009-07-07 14:12:02
Temat: Re: Pocedura całkowania
Od: "slawek" <s...@h...pl>
Użytkownik "Mateusz Ludwin" <n...@s...org> napisał w wiadomości grup
dyskusyjnych:h2vgh0$b6o$...@i...gazeta.pl...
> Człowieku, nie masz zielonego pojęcia o czym mowa, nie rozumiesz czym jest
> całka określona za pomocą miary (gdzie NIC NIE BRONI ŻEBY PRZEDZIAŁÓW BYŁA
> SKOŃCZONA ILOŚĆ), ale musisz sobie koniecznie pobełkotać. Po co?
Problem jest jasno zdefiniowany. To że nie potrafisz go zrozumieć - a co
mnie to obchodzi? Funkcja jest ciągła i rzeczywista. Ale nieznana. Znane są
jedynie jej "sample". A problem to jak oszacować całkę z tej nieznanej
funkcji przez operacje na "samplach" - a nie jak wyliczyć miarę Lebesgue'a
dla sampli.
Całka Lebesgue'a - fajnie że jest. Tyle że dla funkcji rzeczywistej jednej
zmiennej o suporcie zwartym i całkowalnej z kwadratem redukuje się do
Reinmanna. Daj konstruktywny przykład ad absurdum iż jest inaczej.
slawek
-
54. Data: 2009-07-07 14:22:12
Temat: Re: Pocedura całkowania
Od: "slawek" <s...@h...pl>
Użytkownik "A.L." <a...@a...com> napisał w wiadomości grup
dyskusyjnych:hkh6551suknsnvi4ebn5vdvvc0lnhdn3c8@4ax.
com...
> Znaczy, Panei Slawek, ze ani odtwarzacz CD, ani Panski ulubiony iPod
> nei maja prawa dzialac. One wlasnei pzrechowuja muzyke "zsamplowana" w
Panie "nei" A.L. - gratuluję nieznajomości elektroniki. Od kiedy w
odtwarzaczach MP3 na słuchawki podawane są impulsy szpilkowe?! ROTFL
> pomiecy probkami, Panski CD jest prawdopodobnie gluchy jak pien. Moj
> CD wie co jest meidzy punktami,. albowiem sluszal o twierdzeniu
> Shannona-Kotielnikowa i wie co robic.
Czy pana CD (nota bene, nie CD ale odtwarzać CD, CD-player) potrafi
odtworzyć sygnał 1 MHz z płyty? Nie potrafi. Bo właśnie twierdzenie na które
się pan powołujesz, a którego zwyczajnie nie rozumiesz pan, to określa. Nie
da się określić tego, co jest między samplami. Nawet jeżeli tam byłby strzał
z fazerów.
slawek
-
55. Data: 2009-07-07 14:24:03
Temat: Re: Pocedura całkowania
Od: bartekltg <b...@g...com>
On 7 Lip, 15:58, "slawek" <s...@h...pl> wrote:
> Użytkownik "bartekltg" <b...@g...com> napisał w wiadomości grup
> dyskusyjnych:29953dfe-0918-47f1-9afc-51ad19ff2...@o7
g2000yqb.googlegroups.com...
>
> > Podobnie simpson interpoluje na kazdych polejnych trzech przedialach
> > (4 punkty) wielomian 3 stopnia i wylica calke tego wialomianu.
>
> Oczywiście. Każde jednak kolejne 4 punkty są po prostu zestawione bez
> synchronizacji pochodnych. Simpson to 4 punkty. A do całkowania jest 10000.
> Czyli 2500 razy Simpson, czyli 2500 razy źle zszyta funkcja.
Raczej w okolicach 3334;
Interesuje nas wartosc calki, a nie interpolacja funkcji i
aproksymacja jej pochodnych.
Brak gładkosci _nic_ nam nie psuje. W splajnach rzedu r tez wielomian
jest stopnia
2r-1, ale na laczeniach maja rozniczkowalnosc o jeden stopien
mniejsza;)
> > nadal dzialaja. Bierzesz jakas ladna baze, najlepiej lagrange'a
>
> Błeee. Nie działa dobrze. Lepsze spline są.
Zle czyli?
Dzialaja bardzo dobrze.
Wszytkie kwadratury interpolacyjne(wielomianowe) sa na bazie tego
budowane
(na kartce wyprowadzajac wzorek, to ze w kodzie tego nie ma to nic nie
znaczy).
> > calke z tego wyrazenia w granicach x1-xn jestes w stanie policzyc
> > analitycznie i wstawic
>
> Owszem. Dla n = 10000 też mogę. Ale może wynik to jednak wyślę ci na priv
> :)
Uczepiles sie, Podaj fragment, gdzie ktokolwiek sugeruje Ci wielomian
rzedu 10 000. Moze zasugerowales sie ktoryms postem, gdzie n to byl
rzad wielomianu, a ilosc punktow, m. Czytac nalezy wszystko, wyraznie
bylo napisane, ze m=10 000 a n 2-10;
>
> > Bedzie to na pewno szybsze niz splajny dla duzej liczby punktow.
>
> Ma być szybkie. Ale musi być dokładne. Splajny są dokładne i wystarczająco
> szybkie, tzn. O(n). Chodzi teraz o podniesienie dokładności. Jeszcze trochę.
Podobny wynik a zlozonosc O(1). Jak wolisz.
> > przybedzie, czy ostatni fragment przyblizac inaczej (wielomianem
> > mniejszego stopnia
>
> Z tym są problemy - bo wprowadzi to dodatkowe numeryczne oscylacje do
> wyników (przełączanie między metodami). Jeżeli np. kwadratura jest 5-cio
> punktowa, to będzie to "sinusoidka" o długości na 5 punktów. Samo w sobie
> paskudne.
Nie bedzie tak zle. Pamietaj, ze to utonie w wartrosci calej calki.
PS. nie chodzi mi caly czas o to, aby przkonac Cie do innej metody,
ale sprostowac ewidentne bzdury.
pozdrawiam
bartekltg
-
56. Data: 2009-07-07 16:15:48
Temat: Re: Pocedura całkowania
Od: "slawek" <s...@h...pl>
Użytkownik "bartekltg" <b...@g...com> napisał w wiadomości grup
dyskusyjnych:86f41703-6867-41de-9b4e-44db080891e1@t3
3g2000yqe.googlegroups.com...
> Robisz tak jak w splajnach - _kwadratury zlozone_ pierwsze 23 punkty,
> pozniej
> kolejne (22 nowe) na kazdym przedziale dopasowujesz wielomian.
Robiłem to. Jest gorzej niż dla splajnów. Dużo gorzej. Sam się zdziwiłem.
> Jakby tak bylo, splajny kubiczne czy simpson wcale ine byly by lepsze
> od trapezow, a oczywiscie sa.
Wiara. Wiara. Sprawdź - a przestaniesz wierzyć. Ja przestałem.
slawek
-
57. Data: 2009-07-07 16:31:23
Temat: Re: Pocedura całkowania
Od: "slawek" <s...@h...pl>
Użytkownik "bartekltg" <b...@g...com> napisał w wiadomości grup
dyskusyjnych:9e238abc-8e85-453f-babf-831850f0fcd3@c9
g2000yqm.googlegroups.com...
> Brak gładkosci _nic_ nam nie psuje. W splajnach rzedu r tez wielomian
Psuje. Funkcja której całkę _dokładnie_ liczymy (czyli funkcja
aproksymująca) jest nieco bardziej przez to różna od funkcji, której całkę
chcemy poznać.
> Wszytkie kwadratury interpolacyjne(wielomianowe) sa na bazie tego
> budowane
Bo te kwadratury wielomianowe to dla plebsu są :)
A na serio - spróbuj, porównaj. Całkowanie splinami jest dużo lepsze (jeżeli
funkcja całkowana przypomina trochę spline, tzn. kawałkami wygląda np. jak
parabola). Inne procedury są bez szans.
> Uczepiles sie, Podaj fragment, gdzie ktokolwiek sugeruje Ci wielomian
> rzedu 10 000. Moze zasugerowales sie ktoryms postem, gdzie n to byl
> rzad wielomianu, a ilosc punktow, m. Czytac nalezy wszystko, wyraznie
> bylo napisane, ze m=10 000 a n 2-10;
Ale wtedy podział na segmenty jest arbitralny i do tego każdy segment jest
źle zszyty - chyba że jest dobrze zszyty - ale wtedy masz po prostu spline.
> Podobny wynik a zlozonosc O(1). Jak wolisz.
Jesteś pewien że O(1) a nie O(n^1) ? Czyli że koszt jest niezależny od
liczby danych wejściowych? Samo ich przeczytanie ma O(n), a bez ich czytania
to raczej policzyć się nie da...
> Nie bedzie tak zle. Pamietaj, ze to utonie w wartrosci calej calki.
Nie *będzie* -- bo -- *było* aż tak źle. Sprawdzone rzekłbym "empirycznie".
> PS. nie chodzi mi caly czas o to, aby przkonac Cie do innej metody,
> ale sprostowac ewidentne bzdury.
No nie wiem. Ja po prostu trochę liczyłem różnych rzeczy. Więc może moje
bzdury są nieco bardziej osadzone w rzeczywistości niż twoje pomysły
teoretyczne. Właśnie aby nie było że biję pianę z nudów - właśnie dlatego
dałem kod źródłowy do obejrzenia/wypróbowania.
slawek
-
58. Data: 2009-07-07 16:36:37
Temat: Re: Pocedura całkowania
Od: Wit Jakuczun <w...@g...com>
On 7 Lip, 18:31, "slawek" <s...@h...pl> wrote:
> Użytkownik "bartekltg" <b...@g...com> napisał w wiadomości grup
> dyskusyjnych:9e238abc-8e85-453f-babf-831850f0f...@c9
g2000yqm.googlegroups.com...
>
> > Brak gładkosci _nic_ nam nie psuje. W splajnach rzedu r tez wielomian
>
> Psuje. Funkcja której całkę _dokładnie_ liczymy (czyli funkcja
> aproksymująca) jest nieco bardziej przez to różna od funkcji, której całkę
> chcemy poznać.
>
> > Wszytkie kwadratury interpolacyjne(wielomianowe) sa na bazie tego
> > budowane
>
> Bo te kwadratury wielomianowe to dla plebsu są :)
>
> A na serio - spróbuj, porównaj. Całkowanie splinami jest dużo lepsze (jeżeli
> funkcja całkowana przypomina trochę spline, tzn. kawałkami wygląda np. jak
> parabola). Inne procedury są bez szans.
>
> > Uczepiles sie, Podaj fragment, gdzie ktokolwiek sugeruje Ci wielomian
> > rzedu 10 000. Moze zasugerowales sie ktoryms postem, gdzie n to byl
> > rzad wielomianu, a ilosc punktow, m. Czytac nalezy wszystko, wyraznie
> > bylo napisane, ze m=10 000 a n 2-10;
>
> Ale wtedy podział na segmenty jest arbitralny i do tego każdy segment jest
> źle zszyty - chyba że jest dobrze zszyty - ale wtedy masz po prostu spline.
>
> > Podobny wynik a zlozonosc O(1). Jak wolisz.
>
> Jesteś pewien że O(1) a nie O(n^1) ? Czyli że koszt jest niezależny od
> liczby danych wejściowych? Samo ich przeczytanie ma O(n), a bez ich czytania
> to raczej policzyć się nie da...
>
> > Nie bedzie tak zle. Pamietaj, ze to utonie w wartrosci calej calki.
>
> Nie *będzie* -- bo -- *było* aż tak źle. Sprawdzone rzekłbym "empirycznie".
>
> > PS. nie chodzi mi caly czas o to, aby przkonac Cie do innej metody,
> > ale sprostowac ewidentne bzdury.
>
> No nie wiem. Ja po prostu trochę liczyłem różnych rzeczy. Więc może moje
> bzdury są nieco bardziej osadzone w rzeczywistości niż twoje pomysły
W rzeczywistości, którą sam stworzyłeś. Zaiste podnosi to wiarygodność
Twoich stwierdzeń.
Pozdrawiam,
Wit
-
59. Data: 2009-07-07 16:53:44
Temat: Re: Pocedura całkowania
Od: "slawek" <s...@h...pl>
Użytkownik "Wit Jakuczun" <w...@g...com> napisał w wiadomości grup
dyskusyjnych:012c60de-a6af-43de-a8bf-fa00acd4f1bc@h1
8g2000yqj.googlegroups.com...
> W rzeczywistości, którą sam stworzyłeś. Zaiste podnosi to wiarygodność
> Twoich stwierdzeń.
>
> Pozdrawiam,
> Wit
Weź oblicz jakąś całkę spline'ami i zwykłym wzorkiem np. Simpsona. Założenie
takie, że węzłów łącznie ma być 10 tysięcy. Porównaj wyniki.
Jak widzisz, to co twierdzę jest łatwo falsyfikowalne. Chcesz udowodnić że
nie mam racji? Ok, cóż prostszego - po prostu policz i pokaż nam wyniki. Nie
musisz atakować mnie przez argumentację ad hominem, to zupełnie niepotrzebne
(i niehonorowe). Wystarczy pokazać, że masz lepszą dokładność. Procedurkę ze
spline-ami znajdziesz w wątku, funkcję sam wymyślisz (może być np. sin(x) *
exp(-0.001*x), całka z tego od 0 do 1000). No, nuże, skoro pan W.J. taki
kozak - to co dla niego!
slawek
-
60. Data: 2009-07-07 17:11:25
Temat: Re: Pocedura całkowania
Od: Michoo <m...@v...pl>
slawek pisze:
>
>
> Użytkownik "Wit Jakuczun" <w...@g...com> napisał w wiadomości
> grup
> dyskusyjnych:8b223f6a-6102-4946-a837-11fa604ebfa5@24
g2000yqm.googlegroups.com...
>
>> On 7 Lip, 07:46, "slawek" <s...@h...pl> wrote:
>>> Użytkownik "Wit Jakuczun" <w...@g...com> napisał w
>>> wiadomości grup
>>> dyskusyjnych:eba50ed9-bd38-4969-af56-029265233...@d4
g2000yqa.googlegroups.com...
>>>
>>>
>>> > Na pewno?
>>>
>>> Jak x,y są rzeczywiste to na pewno gdy poza tabelką y === 0
>>>
>> A jak nie są?
>>
>>> > Czy ja dobrze rozumiem, że jeśli funkcja jest ciągła to nie może się
>>> > gwałtownie
>>> > zmieniać?
>>>
>>> Prędkość jest ciągła (vide II Zasada Dynamiki N. - ibidem masz
>>> pochodną z
>>> prędkości, więc sama prędkość MUSI być ciągła), stąd położenie nie może
>>> "gwałtownie" się zmieniać.
>>>
>>> "Gwałtownie" oznacza w tym przypadku teleportację.
>>>
>> Ciągłość funkcji NIE gwarantuje, że funkcja nie zmienia się
>> gwałtownie.
>>
>> Pozdrawiam,
>> Wit
>
> Przeczytaj jeszcze raz - tym razem z większą uwagą i mniejszym
> zarozumialstwem - co wcześniej napisałem.
>
> Przypominam ci też, że ciągłość pochodnej g' funkcji GWARANTUJE ciągłość
> funkcji g wszędzie tam, gdzie istnieje pochodna.
>
> Elementarne: przyrost wartości = pochodna * przyrost argumentu. Dla
> jakiejś skończonej pochodnej i niewielkiego przyrostu x będzie jakiś tam
> przyrost y. Ogólnie - być może duży, ale skończony. Czyli nic bardzo
> gwałtownego. A szukamy osobliwości...
Nie muszą być osobliwości aby wynik był kompletnie nieprzydatny. Zobacz
przykład z prędkością:
Mierzymy drogę kuli załadowanej do karabinu w czasie jego ruchu.
"Pomiędzy pomiarami" dochodzi do wystrzału i zahamowania kuli w ścianie
wózka na którym mamy karabin. Z całki opartej o nasz pomiar wyjdzie coś
zupełnie innego niż gdybyśmy uwzględnili ciągłą obserwację.
--
Pozdrawiam
Michoo