eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Pocedura całkowania
Ilość wypowiedzi w tym wątku: 84

  • 21. Data: 2009-07-06 18:45:06
    Temat: Re: Pocedura całkowania
    Od: "Mariusz Marszałkowski" <b...@g...pl>

    A.L. <a...@a...com> napisał(a):

    > On Mon, 6 Jul 2009 16:05:40 +0000 (UTC), "Mariusz Marszałkowski"
    > <b...@g...pl> wrote:
    >
    > >Mateusz Ludwin <n...@s...org> napisał(a):
    > >
    > >> Mariusz Marszałkowski wrote:
    > >> > Wit Jakuczun <w...@g...com> napisał(a):
    > >> >
    > >> >> On 6 Lip, 16:55, "Mariusz Marsza=B3kowski" <b...@g...p
    > >> >>> Je=B6li funkcja dana jest tablic=B1 to ku =B6cis=B3o=B6ci nie da si=EA p
    > o=
    > >> >> liczy=E6 jej
    > >> >>> ca=B3ki :)
    > >> >> To nie jest prawda, patrz rachunek prawdopodobie=F1stwa.
    > >> >> O ca=B3ce Lebesque'a s=B3ysza=B3e=B6?
    > >> >
    > >> > "W uproszczeniu całkowanie oznacza obliczanie pola pod wykresem funkcji na
    > >> > zadanym odcinku."
    > >>
    > >> Byłeś kiedyś na jakichś studiach?
    > >
    > >W czym problem?
    > >http://pl.wikipedia.org/wiki/Ca%C5%82ka_Lebesgue%27
    a
    > >
    > >Pozdrawiam
    >
    > W tym problem ze chyba nie byles na zadznych studiach...
    >

    Byłem i nijak to się ma do całek, natomiast zdaje dobrze służyć
    do dosrania komuś.


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 22. Data: 2009-07-06 19:59:16
    Temat: Re: Pocedura całkowania
    Od: "Mariusz Marszałkowski" <b...@g...pl>

    Wit Jakuczun <w...@g...com> napisał(a):

    > On 6 Lip, 18:02, "Mariusz Marsza=B3kowski" <b...@g...pl>
    > wrote:
    >
    > > Co najwy=BFej 3 stopie=F1. Dziedzina tak podanej funkcji to zbi=F3r {1,2,=
    > 3,4}.
    > > Nie umiem tego sca=B3kowa=E6.
    > >
    > A policzy=E6 prawdopodobie=F1stwo umiesz? Np. jakie jest
    > prawdopodobie=F1stwo wyrzucenia parzystej liczby oczek
    > na kostce?
    > Do policzenia tego stosujesz w=B3a=B6nie ca=B3k=EA :)
    >

    Ok, nie rozumiem tak zdefiniowanej całki, jeśli kiedyś będę miał czas i
    warunki to się chętnie zapoznam. Dziękuję za uświadomienie mi czegoś.

    Pozdrawiam



    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 23. Data: 2009-07-06 20:01:34
    Temat: Re: Pocedura całkowania
    Od: "slawek" <s...@h...pl>



    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



  • 24. Data: 2009-07-06 20:06:47
    Temat: Re: Pocedura całkowania
    Od: "slawek" <s...@h...pl>



    Użytkownik "Wit Jakuczun" <w...@g...com> napisał w wiadomości grup
    dyskusyjnych:e23df4d2-c8be-4fed-a001-ff1e161fac7c@37
    g2000yqp.googlegroups.com...
    >> Jeżeli krzywa jest przybliżana łamaną nie będącą prostą,
    > Pozwolisz, że ten tekst sobie zachowam? Jest świetny.

    Oczywiście. Prosta to szczególny przypadek łamanej, choć jest jako taka
    pojęciem podstawowym u Euklidesa. Jeżeli wszystkie segmenty łamanej
    przypadkiem będą współliniowe, to taka łamana nie będzie się różnić od
    prostej. To zdegenerowany przypadek i trochę bez sensu go rozpatrywać - ale
    w takim przypadku istniałaby wszędzie pochodna - i dlatego zastrzegłem na
    wszelki przypadek, że nie o to mi chodzi. :)

    slawek



  • 25. Data: 2009-07-06 20:09:53
    Temat: Re: Pocedura całkowania
    Od: "slawek" <s...@h...pl>



    Użytkownik "Mariusz Marszałkowski" <b...@g...pl> napisał w
    wiadomości grup dyskusyjnych:h2t4tf$cf9$...@i...gazeta.pl...
    > Jak policzyć całkę funkcji danej taką tabelą?
    >
    > x|1|2|3|4
    > ------------
    > y|4|3|4|3

    Prawidłowa odpowiedź: zero. (Dziedzina ma miarę etc.)

    Z drugiej strony, jeżeli x to czas, y to prędkość, to można już próbować
    oszacować ile wynosi całka (czyli przebyta droga), bo wiemy że prędkość nie
    może zmieniać się zbyt gwałtownie (prędkość jest ciągłą funkcją czasu) itd.
    itp.

    slawek



  • 26. Data: 2009-07-06 20:18:30
    Temat: Re: Pocedura całkowania
    Od: "slawek" <s...@h...pl>



    Użytkownik "Mariusz Marszałkowski" <b...@g...pl> napisał w
    wiadomości grup dyskusyjnych:h2t6a5$htv$...@i...gazeta.pl...
    > Nie wiem jak obliczyć pole jeśli funkcja jest określona tylko w punktach
    > zawartych w tabeli.

    I właśnie na to pytanie szukamy odpowiedzi. Jak do tej pory standardową
    metodą była metoda trapezów. Oczywiście, takie podejście było
    nie-do-przyjęcia z punktu widzenia matematyków. Ale każdy wie o co chodzi i
    jak to się robi. Lepszą metodą jest aproksymacja funkcjami sklejanymi. Tzn.
    zanim funkcja podcałkowa zacznie przypominać odcinek prostej to wyraźnie
    robi się podobna do (kawałka) wielomianu.

    Pytanie - czy jest jeszcze lepsza metoda?

    > 2) Wybieramy losowo ( o rozkładzie liniowym ) punkt (x,y) gdzie x należy

    Koszt obliczenia każdego punktu jest obrzydliwie wielki, chyba że punkt jest
    już w tablicy. W zasadzie aby wyliczyć jeden punkt - trzeba skonstruować
    całą tabelkę.

    Metody MC stosują już do tego inni ludzie - tacy co nie całkują tylko od
    razu bawią się w ping-ponga. Przy liczbie cząstek rzędu 10^23 może im trochę
    RAM brakować...

    slawek


  • 27. Data: 2009-07-06 20:24:04
    Temat: Re: Pocedura całkowania
    Od: "Mariusz Marszałkowski" <b...@g...pl>

    slawek <s...@h...pl> napisał(a):

    > 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.?!

    A może da się cały zbiór danych dobrze aproksymować jakąś funkcją i
    wtedy całkę funkcji aproksymującej?

    Pozdrawiam


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 28. Data: 2009-07-06 20:28:00
    Temat: Re: Pocedura całkowania
    Od: "slawek" <s...@h...pl>



    Użytkownik "A.L." <a...@a...com> napisał w wiadomości grup
    dyskusyjnych:1ha4551u4tbnlo02cjmpjbbp07vgn3hilm@4ax.
    com...
    > W tym problem ze chyba nie byles na zadznych studiach...

    Chyba jestem w KF u A.L. (co samo w sobie prawie jak Nobel :) ), ale nie
    mogę sie powstrzymać od komentarza:

    czy gdyby przedmówca A.L. odparł mu że owszem, skończył grekę klasyczną,
    archeologię, eksternistycznie prawo a ponad to doktorat z filozofii i trzeci
    stopień mistrzowski w karate - to jaki miałoby to wpływ na dalszą dyskusję?
    Zero wiedzy o całkach. A warunek "bycia na studiach" - spełniony byłby jak
    najbardziej! Cóż, ani Indiana Jones ani Lara C. nie są godnymi dyskusji z
    A.L. :)

    slawek



  • 29. Data: 2009-07-06 20:45:32
    Temat: Re: Pocedura całkowania
    Od: "slawek" <s...@h...pl>



    Użytkownik "Michoo" <m...@v...pl> napisał w wiadomości grup
    dyskusyjnych:h2tcvs$kbn$...@n...onet.pl...
    > mieć też równe pochodne do n-1 rzędu - jeżeli masz tylko tablicę z
    > wartościami funkcji bazowej to jak zrobiłeś splajny stopnia większego niż
    > 1(gdzie wychodzi łamana - jak we wzorze trapezów)?

    Interpolacja spline'em. Ma się zgadzać wartość i m-1 pochodnych, ma być
    wielomian stopnia m-tego pomiędzy węzłami. Z tego wychodzi jaki to spline.
    Ze spline nietrudno policzyć całkę - skoro to wielomian, to całka jest
    wielomianem, potem tylko granice całkowania - sumowanie po wszystkich
    kawałkach. Patrz Forman S. Acton, Numerical Methods that Work, Princeton
    University, (ISBN-13: 9780883854501 | ISBN-10: 0883854503) - niezła książka
    na swój sposób. Nota bene, odjazd to jest jak to się robi na zespolonych
    (zmiana deklaracji) - też działa, bo czemu miałoby nie działać?! :)

    slawek


    !***************************************************
    ****************************************************
    ****************************
    !
    ! Spline integration
    !
    !***************************************************
    ****************************************************
    ****************************

    double precision function intspl(y,n,h)

    integer, parameter :: nmax = 16384

    double precision h
    double precision :: y(1)
    double precision :: sa,sb,sc,sd,un
    double precision, dimension(nmax) :: s,u

    s(1) = 0.
    s(n) = 0.
    u(1) = 0.
    sa = 0.
    sb = 0.
    sc = 0.
    sd = 0.

    if(n .gt. 1) then
    do i=2,n-1
    s(i)= -1.0 / (s(i-1) + 4.0)
    u(i)=(y(i+1)-2*y(i)+y(i-1)) / h
    u(i)=(12.0*u(i)/h - u(i-1))/(s(i-1)+4.0)
    end do
    do i=n-1,1,-1
    s(i)=s(i)*s(i+1)+u(i)
    end do
    do i=1,n
    sa = sa + (s(i+1)-s(i))
    sb = sb + (s(i)/2.)
    sc = sc + ((y(i+1)-y(i))/h - (2.*h*s(i)+h*s(i+1))/6.)
    sd = sd + y(i)
    end do
    end if

    intspl = h**4/4.*sa + h**3/3.*sb + h**2/2.*sc + h*sd

    end function intspl


  • 30. Data: 2009-07-06 20:54:04
    Temat: Re: Pocedura całkowania
    Od: bartekltg <b...@g...com>

    On 6 Lip, 18:06, "slawek" <s...@h...pl> wrote:

    > Nic nie daje. Jeżeli jest 10 tysięcy punktów to zastosowanie wzoru Boole'a
    > czy Simpsona nie jest lepsze niż metoda trapezów. Różne wyniki mogą
    > wprowadzać jedynie punkty na końcach krzywej. A tych jest paręnaście sztuk
    > na kilkadziesiąt tysięcy punktów "wewnątrz". Weź sobie np. wzorek Simpsona i
    > uśrednij wszelkie możliwe jego przyłożenie do tych 10 tysięcy punktów -
    > ostatecznie każdy punkt wewnętrzny będzie miał taką samą "wagę".

    Cytujac jednago z grupowiczow: glupoty pleciesz.

    Z jednaj strony zachwalasz splajny, ze sa podobne do funkcji, z
    drugiej strony to.

    Trapezy, sipmson, czy podobne kwadratury wyzszych, to kwadratury
    interpolacyjne.
    Mozesz na nie patrzec tak, ze dopasowujemy do n (trzech) punktlow
    wielomian
    (parabole) i liczymy jej calke. Mozesz brac wyzszy stopien wielomianu
    i rzadac
    gladkosci na zszyciach (o, juz prawie splajny;)
    Jesli funkcja jest odpowiedniej klasy, majac zadane n punktow,
    kwadratura wyzszego
    rzedu da znacznie lepszy wynik*). A to, ze roznica miedzy tym, a
    trapezami jest taka,
    ze co drugi wezel bierzemy z dwa razy wieksza waga niz inne.. jak
    popatrzysz
    na calke z paraboli to nawet nie jest takie zaskakujace.

    Tak wiec:
    zastanow sie, co mozesz powiedziec o klasie gladkosci swojej funkcji,
    czy wiesz cos o jej pochodnych i dobierz kwadrature interpolacyjna,
    ktora
    bedzie dawala najmniejsze osacowanie bledu.
    Simpsona mozesz smialo dawac. Albo wielomany 3 rzedu. Blad taki sam,
    a prostrze niz splajny.

    Jesli mozesz uzyskac liczbe punktow postaci 2^n, a funkcja jest
    gladka,
    to zdecydowanie romberg - algorytm jakby stworzony do Twojego
    zagadnienia,
    mamy tabelke rownooddalonych punktow i szacujemy calke.


    *) do czasu. aproksymacja wielomaniami o wezlach rowno oddalonych zle
    sie zachowuje,

    pozdrawiam
    bartek

strony : 1 . 2 . [ 3 ] . 4 ... 9


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: