Całka oznaczona metody numeryczne ?

Całka oznaczona metody numeryczne ?


Oglądasz archiwalną wersję wątku "Całka oznaczona metody numeryczne ?" z forum pl.sci.matematyka




Andrzej Kmicic
12 Wrz 2004, 10:11

Witam
Proszę o poradę, jaka metoda numeryczna jest najprostsza do zaimplementowania w
programie komputerowym do obliczenia całki oznaczonej z dowolnej funkcji y=f(x)
w określonym przedziale x1 do x2. Superprecyzja nie jest konieczna. Jakby ktoś
był miły i podpowiedział równiez zestaw słów kluczowych w języku angielskim do
szukania w Googlach ?.

pozdrawiam
Andrzej Kmicic


enlil
12 Wrz 2004, 10:17


Proszę o poradę, jaka metoda numeryczna jest najprostsza do
zaimplementowania w
programie komputerowym do obliczenia całki oznaczonej z dowolnej funkcji
y=f(x)
w określonym przedziale x1 do x2. Superprecyzja nie jest konieczna. Jakby
ktoś
był miły i podpowiedział równiez zestaw słów kluczowych w języku
angielskim do
szukania w Googlach ?.

pozdrawiam
Andrzej Kmicic



Moze znajdziesz cos na http://www.ia.pw.edu.pl/~tatjewsk/tatjewskdyd

Teres
12 Wrz 2004, 11:51


Proszę o poradę, jaka metoda numeryczna jest najprostsza do
zaimplementowania w
programie komputerowym do obliczenia całki oznaczonej z dowolnej funkcji
y=f(x)
w określonym przedziale x1 do x2. Superprecyzja nie jest konieczna. Jakby
ktoś
był miły i podpowiedział równiez zestaw słów kluczowych w języku
angielskim do
szukania w Googlach ?.

pozdrawiam
Andrzej Kmicic



Chyba metoda Simpsona. W goglach wpisz simpsons rule. Dosyć łatwo się
implementuje.
http://www.mactech.com/articles/mactech/Vol.09/09.10/SimpsonsRule/

Pozdrawiam,
Teres

PFG
12 Wrz 2004, 12:13

Proszę o poradę, jaka metoda numeryczna jest najprostsza do zaimplementowania w
programie komputerowym do obliczenia całki oznaczonej z dowolnej funkcji y=f(x)
w określonym przedziale x1 do x2.



Najprostsza? Metoda trapezów, a ścislej złożona metoda trapezów. Ale
uwaga: chcesz, żeby to działało dla dowolnej funkcji. No to nie będzie.
Bardzo łatwo podać przykłady funkcji (elementarnych, nie żadnych tam
dziwadeł), dla których metoda trapezów albo się nędznie wyłoży, albo
będzie potwornie kosztowna. Takie przykłady mozna podac dla każdej
metody - po prostu nie ma metod uniwersalnych.

Andrzej Kmicic
12 Wrz 2004, 23:02

| Proszę o poradę, jaka metoda numeryczna jest najprostsza do zaimplementowania
w
| programie komputerowym do obliczenia całki oznaczonej z dowolnej funkcji
y=f(x)
| w określonym przedziale x1 do x2.
Najprostsza? Metoda trapezów, a ścislej złożona metoda trapezów. Ale
uwaga: chcesz, żeby to działało dla dowolnej funkcji. No to nie będzie.
Bardzo łatwo podać przykłady funkcji (elementarnych, nie żadnych tam
dziwadeł), dla których metoda trapezów albo się nędznie wyłoży, albo
będzie potwornie kosztowna. Takie przykłady mozna podac dla każdej
metody - po prostu nie ma metod uniwersalnych.



Dziękuje wszystkim za wskazówki.

Pawle czy możesz podać kilka przykładów typowych dla których metoda trapezów się
nie sprawdzi ?

Andrzej Kmicic

Pawel F. Gora
13 Wrz 2004, 02:34


Pawle czy możesz podać kilka przykładów typowych dla których metoda trapezów się
nie sprawdzi ?



Na przykład funkcje wykazujące oscylacje na jakimś ograniczonym obszarze.
Powiedzmy, masz obliczyć całkę (pseudo-TeX)

\int_{-\infty}^\infty H_n(x) H_m(x) exp(-x^2) dx

gdzie H_n jest wielomianem Hermite'a. Weź n~5 lub więcej, n=m+1. Analitycznie
ta całka znika. Liczymy jednak numerycznie. Eksponenta zabija
wielomian, więc całkę po ogonach szacujesz analitycznie. Zostaje całka po
pewnym przedziale skończonym, dość sporym. I teraz: albo w metodzie trapezów
bierzesz duży krok, ale wtedy bardzo źle szacujesz oscylacje, albo bierzesz
mały krok, ale wtedy musisz wykonać bardzo wiele obliczeń w obszarze, w którym
funkcja zmienia się bardzo wolno. (Rozwiązaniem są kwadratury adaptacyjne.)

Przykład innego rodzaju: Metoda trapezów jest prosta, ale bywają metody
znacznie szybsze, choć oparte o metodę trapezów. Powiedzmy, chcemy
obliczyć całkę

\int_1^2 sin(10x)/(1+x^2) dx

z dokładnością 10^{-6}. IIRC, metoda trapezów wymaga kilku tysięcy obliczeń
funkcji podcałkowej, metoda Simpsona niewiele mniej, natomiast metoda Romberga
(takie "ulepszenie" ekstrapolacji Richardsona, startujące z metody trapezów!)
wymaga tych obliczeń zaledwie kilkudziesięciu.

No ale pytałeś o metodę najprostszą do zakodowania :-)

koz...@duch.mimuw.edu.pl
13 Wrz 2004, 05:24
Najprostsze sa kwadratury prostokatow. Banalne do zaimplementowania.
Dzielimy obszar na n kawalkow, wyliczamy wartosc na srodku przedzialu
(najlepiej, ale moze to byc takze wartosc na ktoryms z krancow). Sumujemy te
wartosci i mnozymy przez dlugosc przedzialu calkowania podzielano przez n.
Jesli nie jest Ci potrzebny super dokladny wynik, to to co tutaj uzyskasz jest
wystarczajace.

Pozdrawiam
M.

Andrzej Kmicic
13 Wrz 2004, 12:10

\int_1^2 sin(10x)/(1+x^2) dx

z dokładnością 10^{-6}. IIRC, metoda trapezów wymaga kilku tysięcy obliczeń
funkcji podcałkowej, metoda Simpsona niewiele mniej, natomiast metoda Romberga
(takie "ulepszenie" ekstrapolacji Richardsona, startujące z metody trapezów!)
wymaga tych obliczeń zaledwie kilkudziesięciu.

No ale pytałeś o metodę najprostszą do zakodowania :-)

--



Panie Pawle jeżeli koszt obliczeń jest bardzo mały kosztem skomplikowania
to może być metoda najlepsza więc proszę o kilka słów kluczowych pod którymi
mam szukać metody w googlach.

pozdrowienia
Andrzej Kmicic

Wlodzimierz
14 Wrz 2004, 01:26

Najprostsze sa kwadratury prostokatow. Banalne do zaimplementowania.
Dzielimy obszar na n kawalkow, wyliczamy wartosc na srodku przedzialu
(najlepiej, ale moze to byc takze wartosc na ktoryms z krancow). Sumujemy
te
wartosci i mnozymy przez dlugosc przedzialu calkowania podzielano przez n.
Jesli nie jest Ci potrzebny super dokladny wynik, to to co tutaj uzyskasz
jest
wystarczajace.



Można poprawić dokładność tej metody.
Robi się obliczenia dla trzech różnych wartości kroku całkowania .
Następnie tworzy się zależność całki od  kroku całkowania.
Teraz metodą ekstrapolacji wyznaczamy wartość
dla zerowego kroku całkowania.
Pozdrawiam WM

koz...@duch.mimuw.edu.pl
14 Wrz 2004, 05:53

| \int_1^2 sin(10x)/(1+x^2) dx

| z dokładnością 10^{-6}. IIRC, metoda trapezów wymaga kilku tysięcy obliczeń
| funkcji podcałkowej, metoda Simpsona niewiele mniej, natomiast metoda Romberga
| (takie "ulepszenie" ekstrapolacji Richardsona, startujące z metody trapezów!)
| wymaga tych obliczeń zaledwie kilkudziesięciu.

| No ale pytałeś o metodę najprostszą do zakodowania :-)

| --

Panie Pawle jeżeli koszt obliczeń jest bardzo mały kosztem skomplikowania
to może być metoda najlepsza więc proszę o kilka słów kluczowych pod którymi
mam szukać metody w googlach.

pozdrowienia
Andrzej Kmicic



To nie koniecznie Pan Pawel, ale jesli chodzi o implementacje 'kwadratur
prostokatow' to wyglada ona nastepujaco.

function y = kwadratura_prostokatow(n)
% y - wartosc 'kwadrarury' przyblizajacej calke oznaczona
%     z funkcji f(), na przedziale [0,L]
% n - gestosc podzialu
% L - dlugosc przedzialu calkowania
% h - krok
% punkt - argument funkcji

h = L/n
suma = 0;

for i=1:n
    punkt = ((i-1)+0.5)*h;    
    suma  = suma + f(punkt)
endfor

y = suma*h;

endfunction

Nie sprawdzalem, ale raczej dziala.
Pozdrawiam
Mariusz

Andrzej Kmicic
14 Wrz 2004, 06:59

To nie koniecznie Pan Pawel, ale jesli chodzi o implementacje 'kwadratur
prostokatow' to wyglada ona nastepujaco.

function y = kwadratura_prostokatow(n)
% y - wartosc 'kwadrarury' przyblizajacej calke oznaczona
%     z funkcji f(), na przedziale [0,L]
% n - gestosc podzialu
% L - dlugosc przedzialu calkowania
% h - krok
% punkt - argument funkcji

h = L/n
suma = 0;

for i=1:n
    punkt = ((i-1)+0.5)*h;
    suma  = suma + f(punkt)
endfor

y = suma*h;

endfunction



Faktycznie prosta,tak prosta że sam powinienem to wymyśleć,  dzięki za przykład
i rozjaśnienie.

a teraz w kontekście odpowiedzi Włodzimierza :

Można poprawić dokładność tej metody.
Robi się obliczenia dla trzech różnych wartości kroku całkowania .
Następnie tworzy się zależność całki od  kroku całkowania.
Teraz metodą ekstrapolacji wyznaczamy wartość
dla zerowego kroku całkowania.
Pozdrawiam WM



Rozumiem że wykonuję 3 razy dla różnych n1,n2 i n3 powyższą funkcję y =
kwadratura_prostokątów(n)
i otrzymuję 3 sumy dla n1-s1, dla n2-s2 i dla n3-s3 i jak to EXTRAPOLOWAĆ ?
Czy średnia to extrapolacja czy tez to inny nieznany mi proces ?.

pozdrowienia
ale macie ze mną utrapienie zupełnie jak z malcem pytającym "aaa cioto" :).
Andrzej Kmicic

Pawel F. Gora
14 Wrz 2004, 06:57


Panie Pawle jeżeli koszt obliczeń jest bardzo mały kosztem skomplikowania
to może być metoda najlepsza więc proszę o kilka słów kluczowych pod którymi
mam szukać metody w googlach.



Powtarzam, że nie ma metod uniwersalnych. To, co dla jednej funkcji działa
cudnie, dla innej nie zadziała lub będzie bardzo kosztowne.

Jeśli funkcja jest stosunkowo wolnozmienna, można próbować Romberga.
Trzeba w guglu wpisać "Romberg quadrature" i pojawią się tysiące linków.
Coś - daleko nie wszystko - jest na przykład tutaj:
http://zfs.if.uj.edu.pl/metnum/notatki/calki.pdf

Jeśli funkcja jest oscylująca, trzeba próbować kwadratur adaptacyjnych.
Znów, gugiel, "adaptive quadrature" i viola.

Gotowe kody na jedno i na drugie są na przykład w Netlibie,
http://www.netlib.org

Wlodzimierz
14 Wrz 2004, 09:07

a teraz w kontekście odpowiedzi Włodzimierza :
| Można poprawić dokładność tej metody.
| Robi się obliczenia dla trzech różnych wartości kroku całkowania .
| Następnie tworzy się zależność całki od  kroku całkowania.
| Teraz metodą ekstrapolacji wyznaczamy wartość
| dla zerowego kroku całkowania.
Rozumiem że wykonuję 3 razy dla różnych n1,n2 i n3 powyższą funkcję y =
kwadratura_prostokątów(n)
i otrzymuję 3 sumy dla n1-s1, dla n2-s2 i dla n3-s3 i jak to



EXTRAPOLOWAĆ ?

Obliczasz wspólczynniki a,b,c równania kwadratowego z ukladu 3-ch równań:

S1=a*h1^2+b*h1+c
S2=a*h2^2+b*h2+c
S3=a*h3^2+b*h3+c

Gdzie oczywiscie hi=L/ni

Dla h=0 masz wynik ekstrapolacji: S0=c

Najlepiej aby h1=2*h2=2*h3 wtedy mozna wykorzystać sumy częsciowe.

Pozdrawiam WM

Andrzej Kmicic
15 Wrz 2004, 05:01

Obliczasz wspólczynniki a,b,c równania kwadratowego z ukladu 3-ch równań:

S1=a*h1^2+b*h1+c
S2=a*h2^2+b*h2+c
S3=a*h3^2+b*h3+c

Gdzie oczywiscie hi=L/ni

Dla h=0 masz wynik ekstrapolacji: S0=c

Najlepiej aby h1=2*h2=2*h3 wtedy mozna wykorzystać sumy częsciowe.



I już jasne :) dzięki

pozdr

Andrzej Kmicic

czy istnieje calka poczwurna i kazda nastepna??
calka powierzchniowa niezorientowana - 1 zadanie - pomocy
całka z granicami zespolonymi wielomianu 3 stopnia
Calka wzdluz linii a wplyw biegunow
  • obrazy o gorach
  • piosenki z kosciola tekst i podklad
  • program arionerem
  • prokuratura okregowa w bydgoszczy
  • jak nie stracic wynajmujac
  • lokal u4
  • szkolenia;haccp;wroclaw
  • spis ulic krakowa
  • fluidki zarazki wiruski dla staraczek cz vii 200
  • Pakiet wiadomości z for internetowych | Index