Calkowanie numeryczne pdf


Całkowanie numeryczne
Całkowanie numeryczne to przybliżone obliczanie całek oznaczonych. Proste
metody całkowania numerycznego polegają na przybliżeniu całki za pomocą
odpowiedniej sumy ważonej całkowanej funkcji w kilku punktach.
Całkowanie numeryczne zalicza się do metod numerycznych.
Prawdopodobnie najprostszym wzorem jest metoda punktu środkowego (midpoint
rule):
Jeśli funkcja f(x) zmienia się w niewielkim stopniu na przedziale całkowania, reguła
taka da dobre przybliżenie całki.
Żeby uzyskać dokładniejsze przybliżenie można podzielić przedział całkowania na
niewielkie fragmenty i w każdym z nich osobno oszacować całkę.
Przykład
Spróbujmy scałkować funkcję cos(x) na przedziale od 0 do 1. Ponieważ da się ją
scałkować analitycznie, znamy dokładny wynik i możemy łatwo obliczać błąd
przybliżenia różnych metod całkowania. Z dokładnością do 10 miejsc dziesiętnych
prawidłowy wynik wynosi:
Całkowanie numeryczne za pomocą zasady punktu środkowego da nam wynik:
co daje błąd 0.0361115771 (błąd względny 4.3%)  niewielki jak na tak prostą
metodę, jednak oczywiście niezadowalający do wielu zastosowań.
Żeby uzyskać lepsze przybliżenia możemy podzielić przedział całkowania:
Z błędem bezwzględnym 0.0088296604 lub względnym 1%.
Dzieląc przedział całkowania na więcej fragmentów możemy uzyskać lepsze
przybliżenie:
Ilość części Wynik Błąd
1 0.8775825619 0.0361115771
2 0.8503006452 0.0088296604
4 0.8436663168 0.0021953320
8 0.8420190672 0.0005480824
Przykład 2
Całkowanie numeryczne przebiegów czasowych. Spróbujmy scałkować
spróbkowany przebieg sin(t) na przedziale od 0 do 4 * Ą [s]. Załóżmy, że
częstotliwość próbkowania f przebiegu wynosi f [Hz].
p p
Do obliczeń wykorzystamy metodę prostokątów. Średnica podziału
wynosi 1. Niech X (t) oznacza próbkę po całkowaniu. Każdy wyraz X można obliczyć
i i
jako sumę częściową:
Im mniejsza średnica podziału (wyższa częstotliwość próbkowania), tym wynik
dokładniejszy. Uwaga: po scałkowaniu amplituda przebiegu wzrasta, tym bardziej, im
mniejsza średnica podziału.
Ogólnie mamy metodę:
W metodzie prostokątów korzystamy z definicji całki oznaczonej
Riemanna , w której wartość całki interpretowana jest jako suma pól
obszarów pod wykresem krzywej w zadanym przedziale całkowania
. Sumę tę przybliżamy przy pomocy sumy pól odpowiednio
dobranych prostokątów. Sposób postępowania jest następujący:
Przedział całkowania dzielimy na n równo odległych punktów
x1,x2,...,xn. Punkty te wyznaczamy w prosty sposób wg wzoru:
dla i = 1,2,...,n
i
xi = xp + (xk - xp)
n
Obliczamy odległość między dwoma sąsiednimi punktami - będzie to
podstawa każdego prostokąta:
xk - xp
dx =
n
Dla każdego wyznaczonego w ten sposób punktu obliczamy wartość
funkcji f(x) w tym punkcie:
fi = f(xi), dla i = 1,2,...,n
Obliczamy sumę iloczynów wyznaczonych wartości funkcji przez
odległość dx między dwoma sąsiednimi punktami - da to sumę pól
poszczególnych prostokątów ograniczonych wykresem funkcji:
S = f1 dx + f2 dx + ... + fn dx
a po wyprowadzeniu wspólnego czynnika przed nawias:
S = dx (f1 + f2 + ... + fn)
Otrzymana suma jest przybliżoną wartością całki oznaczonej funkcji f(x)
w przedziale .
Obliczymy ręcznie przybliżoną wartość całki oznaczonej z funkcji f(x) =
sin(x) w przedziale <0,Ä„>.
Przedział podzielimy na n = 4 punkty:
Odległość między dwoma sąsiednimi punktami wynosi:
Dla każdego z wyznaczonych punktów obliczamy wartość funkcji f(x) =
sin(x):
Obliczamy sumę pól prostokątów:
S = dx (f1 + f2 + f3 + f4)
S = 0,7854 (0,7071 + 1,000 + 0,7071 + 0,0000)
S = 0,7854 2,4142
S = 1,8961
Dokładna wartość takiej całki oznaczonej wynosi wg tablic:
Zatem popełniliśmy błąd równy: 2 - 1,8961 = 0,1039, co stanowi nieco
ponad 5% wartości dokładnej. W sumie nie jest to zły wynik zważywszy
na ilość wykonanych przez nas rachunków. Jeśli chcemy zwiększyć
dokładność, to musimy zsumować więcej prostokątów, ale to
zostawimy już komputerom.
Dane wejściowe
xp - początek przedziału całkowania, xp R
xk - koniec przedziału całkowania, xk R
n - liczba punktów podziałowych, n N
f(x) - funkcja rzeczywista, której całkę liczymy
Dane wyjściowe
Wartość całki oznaczonej funkcji f(x) w przedziale . Wynik jest
liczbÄ… rzeczywistÄ….
Zmienne pomocnicze
s - suma wysokości prostokątów, którą pózniej zamieniamy w wartość całki, s
R
dx - odległość między dwoma sąsiednimi punktami podziałowymi, dx R
i - licznik punktów podziałowych, i N
krok 1: Czytaj xp xk
krok 2: s 0
xk - xp
krok 3: dx
n
krok 4: Dla i = 1,2,...,n, s s + f(xp + i dx)
krok 5: s s dx
krok 6: Pisz s i zakończ algorytm
Po odczytaniu informacji o krańcach xp i xk przedziału całkowania
ustawiamy sumę s na 0, obliczamy odległość dx pomiędzy sąsiednimi
punktami podziałowymi i ustawiamy ich licznik na 1.
Rozpoczynamy pętlę iteracyjną, która wykona się n-razy. Wewnątrz
pętli obliczamy i-ty punkt podziałowy oraz wartość funkcji w tym
punkcie, którą dodajemy do sumy s.
Po zakończeniu pętli sumę s musimy jeszcze pomnożyć przez
szerokość podstawy prostokątów, czyli odległość dx Po tej operacji s
zawiera wartość przybliżoną całki. Zwracamy ją użytkownikowi i
kończymy algorytm.
Prezentowane poniżej programy wyliczają całkę oznaczoną funkcji f(x)
= x2 + 2x. Przedział całkowania jest dzielony na n=1000 punktów. W
4
przedziale <0,1> całka oznaczona ma wartość dokładną równą /3 =
1.3333...
_Podsumowanie:
Całka przybliżana jest sumą pól prostokątów:
Metoda ta obarczona jest dosyć dużym błędem, ponieważ prostokąty
niezbyt dobrze przybliżają pole pod wykresem funkcji. Błąd maleje wraz
ze wzrostem n. Zaletą jest prosty wzór wyliczania całki.
Opisana w poprzednim rozdziale metoda prostokątów nie jest zbyt
dokładna, ponieważ pola użytych w niej prostokątów zle odwzorowują
pole pod krzywą. Dużo lepszym rozwiązaniem jest zastosowanie
zamiast nich trapezów o podstawie dx i bokach równych odpowiednio
wartości funkcji w punktach krańcowych.. Sama zasada nie zmienia się.
Przedział całkowania dzielimy na n+1 równo odległych punktów
x0,x1,x2,...,xn. Punkty te wyznaczamy w prosty sposób wg wzoru:
dla i = 0,1,2,...,n
i
xi = xp + (xk - xp)
n
Obliczamy odległość między dwoma sąsiednimi punktami - będzie to
podstawa każdego trapezu:
xk - xp
dx =
n
Dla każdego wyznaczonego w ten sposób punktu obliczamy wartość
funkcji f(x) w tym punkcie:
dla i = 0,1,2,...,n
fi = f(xi)
Pole pod wykresem funkcji przybliżane jest polami n trapezów. Pole i-
tego trapezu obliczamy wg wzoru:
dla i=1,2,...,n
fi-1 + fi
Pi = dx
2
Przybliżona wartość całki jest sumą pól wszystkich otrzymanych w ten
sposób trapezów:
s = P1 + P2 + ... + Pn
czyli
Wyprowadzony na końcu wzór jest podstawą przybliżonego wyliczania
całki w metodzie trapezów.
pola kolejnych trapezów wynoszą:
gdzie dla jednolitości oznaczono a = x i b = x .
0 n
Suma pól trapezów jest w przybliżeniu równa polu całego obszaru, czyli:
.
Ten właśnie wzór nazywany jest wzorem trapezów.
W przypadku funkcji ciągłej na przedziale [a, b], wzór trapezów pozwala obliczać jej
całkę oznaczoną na tym przedziale z dowolną dokładnością, wystarczy w tym celu
wziąć za n odpowiednio dużą liczbę. Błąd przybliżenia daje się oszacować w
przypadku funkcji, która ma na przedziale [a, b] ciągłą drugą pochodną:
gdzie K oznacza największą wartość funkcji |f 2 2 (x)| w przedziale [a, b].
Obecnie wzór trapezów ma znaczenie wyłącznie historyczne  dostępne programy
do całkowania numerycznego stosują o wiele dokładniejsze metody i pozwalają
uniknąć czasochłonnych rachunków.
Przykład:
Obliczymy ręcznie przybliżoną wartość całki oznaczonej z funkcji f(x) =
sin(x) w przedziale <0,Ä„>.
Przedział podzielimy na n+1 = 5 punktów:
Odległość między dwoma sąsiednimi punktami wynosi:
Dla każdego z wyznaczonych punktów obliczamy wartość funkcji f(x) =
sin(x):
fo = f (xo) = sin 0 = 0,0000
Obliczamy sumę pól trapezów:
fo + f4
s = dx( f1 + f2 + f3 + )
2
s = 0,7854(0.7071+1+0.7071) = 1,8961
Otrzymaliśmy wynik identyczny jak w przypadku metody prostokątów -
dlaczego?
Całka przybliżana jest sumą pól trapezów:
Trapezy dużo lepiej przybliżają pole pod wykresem funkcji. Dlatego
metoda ta jest dokładniejsza od metody prostokątów. W praktyce
oznacza to mniejszą wartość n, czyli mniej obliczeń w celu uzyskania
porównywalnej dokładności wyniku.
Metoda Simpsona jest szczególnym przypadkiem metody Newtona-Cotesa, która
polega na interpolacji funkcji (zadanej tabelką lub spróbkowanej) za pomocą funkcji
kwadratowej (stÄ…d metoda parabol).
Metoda Simpsona dla trzech punktów
Żeby zastosować metodę Simpsona potrzebujemy przynajmniej trzech punktów.
Niech dane będą wartości funkcji f(x) w trzech punktach a = x ,x ,b = x
0 1 2
Niech odległość punktu x od pozostałych wynosi h.
1
Całkę możemy (z pewną dokładnościa wyrazić wzorem)
Błąd który przy tym popełniamy jest równy: gdzie:
Oczywiście nie znamy położenia punktu c więc zamiast błędu R używamy
oszacowania błędu spełniającego nierówność: Lewa
strona nierówności służy do szacowania błędu w obliczeniach numerycznych
Metoda Simpsona jest najdokładniejszą z dotąd poznanych przez nas
metod przybliżonego całkowania. W metodzie prostokątów całka
oznaczona przybliżana była funkcjami stałymi - liczyliśmy sumę pól
prostokątów. W metodzie trapezów całkę przybliżaliśmy za pomocą
funkcji liniowych - obliczaliśmy sumy pól trapezów. W metodzie
Simpsona stosujemy jako przybliżenie parabolę - będziemy obliczali
sumy wycinków obszarów pod parabolą. Zasada jest następująca:
Przedział całkowania dzielimy na n + 1 równo odległych
punktów xo, x1, x2 ,..., xn:
dla i = 0,1,2,...,n
i
xi = xp + (xk - xp)
n
Dla każdych dwóch sąsiednich punktów wyznaczamy punkt środkowy ti
wg wzoru:
dla i = 1,2,...,n
xi-1 + xi
ti =
2
Obliczamy odległość między dwoma sąsiednimi punktami.
xk - xp
dx =
n
Dla każdego wyznaczonego w ten sposób punktu obliczamy wartość
funkcji f(x) w tym punkcie:
punkty podziałowe punkty środkowe
dla i = 0,1,2,...,n dla i = 1,2,...,n
fi = f(xi) fti = f(ti)
W każdym podprzedziale przybliżamy funkcję za pomocą
paraboli g(x) o następującej postaci:
dla i = 1,2,...,n
gi(x) = aix2 + bix + ci, x
Parabola gi(x) musi przechodzić przez punkty: (xi-1,fi-1), (ti,fti), (xi,fi).
Współczynniki ai, bi i ci wyznaczymy zatem z układu trzech równań:
dla i = 1,2,...,n
Pole pod parabolą w przedziale będzie równe całce
oznaczonej:
dla i = 1,2,...,n
Funkcja pierwotna jest bardzo prosta w tym przypadku i ma wzór
następujący:
dla i = 1,2,...,n
Wartość całki obliczymy zgodnie z definicją Newtona-Leibniza:
dla i = 1,2,...,n
Teraz postaramy się uprościć maksymalnie otrzymane wyrażenie. W
tym celu wyciągamy przed nawias wspólny czynnik i całość dzielimy
przez 6:
dla i = 1,2,...,n
Zwróćcie uwagę, iż wyrażenia w nawiasach są odpowiednio
wartościami funkcji fi-1, fi oraz fti. Natomiast różnica
xi - xi-1
jest odległością dx pomiędzy dwoma sąsiednimi punktami
podziałowymi. Zatem po uproszczeniu otrzymujemy ostateczny wzór:
dla i = 1,2,...,n
Wzór ten pozwala wyliczyć pole obszaru pod parabolą aproksymującą
funkcjÄ™ f(x) w przedziale .
Uogólniony wzór Simpsona Wzór Simpsona dla trzech punktów (dyskutowany
powyżej) daje słabe przybliżenie całki oznaczonej. Dlatego zwykle stosuje się podział
przedziału [a;b], w którym liczymy całkę na większą ilość podprzedziałów.
Załóżmy, że dysponjemy nieparzystą ilością punktów rozmieszczonych równomiernie
o kroku dyskretyzacji h : a = x ,x ,x ,...,x = b
0 1 2 2m
Stosując wzór Simpsona dla trzech punktów do każdego z rozłącznych przedziałów
[x - 1 i + 1
;x ] otrzymujemy uogólniony wzór Simpsona:
i
Błąd szacujemy z następującej nierówności:
x , dla i = 0, ..., n. (Dla punktów oddalonych od siebie o inne odległości ma
i
zastowanie inna klasa wzorów, kwadratura Gaussowska.)
Inaczej mówiąc
Wartość całej całki otrzymamy sumując te pola, czyli:
Jest to wzór wyliczania przybliżonej wartości całki oznaczonej za
pomocą metody Simpsona. Ponieważ w obliczanych sumach wartości
funkcji siÄ™ powtarzajÄ… dwukrotnie (z wyjÄ…tkiem pierwszej i ostatniej), do
obliczeń komputerowych stosujemy efektywniejszy wzór otrzymywania
powyższej sumy:
Całka przybliżana jest sumą pól ograniczonych parabolami:
Parabole przybliżają wykres funkcji z małym błędem. Stąd metoda
paraboliczna jest najdokładniejszą metodą wyznaczania wartości całek
oznaczonych z tutaj opisanych. W praktyce n może być małe (np. w
granicach 100...1000). Dokładność okupiona jest nieco
skomplikowanym wzorem obliczeniowym.
Aby zrozumieć zasadę metody Monte Carlo wyobrazcie sobie, iż
chcecie wyznaczyć pole koła wpisanego w kwadrat o boku równym 2
(pole to co do wartości jest równe liczbie pi, ale na razie udajmy, że o
tym nie wiemy). W tym celu wyznaczamy wewnątrz kwadratu dużo
losowych punktów. Następnie zliczamy te punkty, które wpadają do
wnętrza koła. Pole koła jest w przybliżeniu równe:
Pkoło - pole koła
nkoło
Pkoło = Pkwadrat Pkwadrat - pole kwadratu
n nkoło - liczba punktów w kole
n - liczba wszystkich punktów
Oczywiście wynik jest bliski liczbie Ą = 3,1415926535... dopiero dla
dużych wartości n. Zaczynają wtedy obowiązywać prawa dużych liczb
i pomimo przypadkowości wyboru punktów, pojawia się prawidłowość.
Ponieważ punkty rozkładają się równomiernie w obrębie pola kwadratu,
to stosunek liczby punktów wewnątrz koła do liczby wszystkich punktów
w kwadracie jest równy stosunkowi pola koła do pola kwadratu. Stąd
właśnie pochodzi nasz wzór:
nkoło
Pkoło = Pkwadrat
n
Wzór ten jest podstawą wyznaczania wartości całki oznaczonej za
pomocą metody Monte Carlo, czyli losowania punktów. Zasada jest
następująca:
Dla danej funkcji f(x), której całkę oznaczoną chcemy obliczyć w
przedziale całkowania , wyznaczamy prostokąt obejmujący pole
pod wykresem tej funkcji o wysokości h i długości podstawy (xk - xp). W
dalszej kolejności losujemy n punktów i zliczamy te punkty nw, które
wpadają w pole pod wykresem funkcji. Wartość całki wyraża się
wzorem przybliżonym:
Otrzymany wzór ma kilka wad. Na przykład w ogólnym przypadku
trudno wyznaczyć wysokość h. Również kłopoty pojawiają się, gdy
funkcja zmienia znak w przedziale całkowania. Dlatego częściej jako
metodę Monte Carlo przyjmuje się metodę, która wyznacza średnią z
wartości funkcji w przedziale całkowania na podstawie serii losowo
wybranych współrzędnych x. Następnie średnia ta jest mnożona przez
długość przedziału całkowania i otrzymujemy przybliżoną wartość całki
oznaczonej. Wzór ma następującą postać:
xlosowe jest wartością pseudolosową zmiennoprzecinkową z przedziału
Wartość tę otrzymujemy wg wzorów:
Język Instrukcja
xlosowe := xp + random * (xk - xp);
Pascal
xlosowe = xp + (double)rand()/(double)(RAND_MAX+1) *
C++
(xk - xp);
xlosowe = xp + rnd * (xk - xp)
Basic
xlosowe = xp + random.uniform(0, dx)
Python
xlosowe = xp + Math.random() * (xk - xp)
JavaScript
Całka przybliżana jest średnią wartością funkcji w przedziale
pomnożoną przez szerokość przedziału. Średnia wyznaczana jest w
sposób pseudolosowy jako suma n wartości funkcji w przypadkowo
wybranych punktach przedziału całkowania.
Jest to najmniej dokładna z opisanych metod. Jej jakość porównywalna
jest z metodą prostokątów. Zaletą natomiast będzie prosty wzór
obliczeniowy.
Kwadratury Gaussa
Definiuje się dwa typy wzorów Newtona-Cotesa:
- zamknięte, które nie wykorzystują wartości funkcji w
skrajnych punktach, oraz
- otwarte, wykorzystujące wszystkie wartości funkcji.
Zamknięty wzór Newtona-Cotesa rzędu n:
gdzie x = h i + x , z h (nazywanym rozmiarem kroku) równym (x -
i 0 n
x )/n oraz w sÄ… wagami.
0 i
Wagi można wyporwadzić z wielomianów bazowych Lagrange'a. To
oznacza, że zależą tylko od x a nie od funkcji f. L(x)
i
wielomianem interpolacji w postaci Lagrange'a dla punktów (x , f(x ) ),..,(x , f(x ) )
0 0 n n
Zamknięty wzór Newtona-Cotesa rzędu n:
wagi znajdujemy w sposób analogiczny do powyższego.
Możemy skonstruować wzór Newtona-Cotesa dowolnego rzędu. Niektóre wzory
niskich rzędów mają swoje tradycyjne nazwy. W poniższej tabeli znajdują się wzory
Newtona-Cotesa typu zamkniętego. Notacja f oznacza f(x ).
i i
Tradycyjna
Rząd Wzór Błąd
nazwa
1 wzór trapezów
2 wzór Simpsona
3 reguła 3/8
4 wzór Boole'a
Wykładnik o kroku h w wyrazie błędu pokazuje szybkość zmniejszania się błędu
przybliżenia. Pochodna f w wyrazie błędu pokazuje który wielomian może być
scałkowany dokładnie
(tzn. z błędem równym 0). Zauważ, że pochodna f w wyrazie błędu wzrasta o 2 dla
każdego innego wzoru. Liczba ¾ zwiera siÄ™ pomiÄ™dzy a i b.
W poniższej tabeli znajdują się wzory Newtona-Cotesa typu zamkniętego.
Rząd Tradycyjna nazwa Wzór Błąd
0 wzór prostokątów
1
2
3
Zwróć uwagę, że aby wzór dawał dobre przybliżenie, krok h musi być mały, co
oznacza,
że przedział całkowania [a,b] również musi być mały, co zazwyczaj nie jest
spełnione. Z tego powodu dzielimy przedział na mniejsze podprzedziały i stosujemy
metodÄ™
Newtona-Cotesa na każdym z tych podprzedziałów a następnie dodając wyniki. Jest
to metoda złożona.


Wyszukiwarka

Podobne podstrony:
1 Metody całkowania numerycznego 1 1
1 Metody całkowania numerycznego 1 2
calkowanie numeryczne
Sprawozdanie całkowanie numeryczne 2
Całkowanie numeryczne
Calkowanie numeryczne 2009
Calkowanie numeryczne
Cwiczenie 4 całkowanie numeryczne
MN w1 Całkowanie numeryczne
Metody numeryczne calkowanie
całkowanie num metoda trapezów
function pdf execute image
Metody numeryczne w11
Litania do Ducha Świętego x2 A4 PDF
function pdf set horiz scaling
info Gios PDF Splitter And Merger 1 11
twarda negocjacja pdf

więcej podobnych podstron