Professional Documents
Culture Documents
Calkowanie Numeryczne
Calkowanie Numeryczne
1. Wstęp
Omówione zostaną najważniejsze metody obliczania całek oznaczonych. Tylko takie
całki daje się obliczać numerycznie – całki nieoznaczone można obliczać tylko symbolicznie.
Obliczamy całkę
b
I( f ) f ( x)dx
a
(1)
Przybliżenie takiej całki będzie oznaczane jako Î(f). Całka oznaczona (1) jest polem figury,
zawartej między osią x a wykresem funkcji f(x) w granicach x (a, b) (rys. 1). Podstawowym
przybliżeniem takiego pola jest suma pól prostokątów, z których każdy ma wysokość,
odpowiadającą wartości funkcji dla swojego punktu końcowego. Pole takiego pojedynczego
prostokąta wynosi Iˆ ( f ) h f ( x ) . Jak widać z rysunku, takie przybliżenie jest bardzo słabe
i i i
– aby było skuteczne, trzeba podzielić przedział całkowania na bardzo dużo prostokątów
(podprzedziałów) i punkt końcowy zastępować środkowym. Poprawą sytuacji jest
przybliżenie pola pod krzywą f(x) trapezami – pole takiego pojedynczego trapezu wynosi
f ( xi ) f ( xi 1 )
Iˆi ( f ) hi , co można zapisać też jako
2
1 1
Iˆi ( f ) hi f ( xi ) f ( xi 1 ) (2)
2 2
W takim przypadku przedział całkowania można podzielić na mniej podprzedziałów.
Jeszcze lepszym przybliżeniem jest takie, gdzie trapezy są paraboliczne, tzn. wykres funkcji
f(x) jest przybliżany odcinkami parabol. Wtedy
1 2 x xi 1 1
Iˆi ( f ) hi f ( xi ) f i f ( xi 1 ) (3)
6 3 2 6
x xi 1
(potrzebny jest punkt pośredni i , bo parabola jest jednoznacznie określona przez trzy
2
punkty).
îi(f) f(x) îi(f) f(x) îi(f) f(x)
b=xN
xN-1
xi
x1
xN-2
x2
a=x0
a) b) c)
Rys. 1. Obliczanie pola pod krzywą za pomocą przybliżeń prostokątami (a), trapezami (b) i trapezami
parabolicznymi (c)
Ideą obliczania całek w sposób numeryczny jest taki dobór przybliżenia funkcji f(x), by
nie dzielić przedziału całkowania na podprzedziały, a mimo to by obliczenie było jak
najdokładniejsze. Wtedy całkowanie numeryczne polega na obliczeniu sumy
N
Iˆ( f ) A f (x )
i 0
i i (4)
jak widać, wzór ten jest uogólnieniem wzorów (2) i (3). Suma taka nazywa się
kwadraturą, zaś xi to węzły kwadratury. Jeśli kwadratura powstaje w ten sposób, że funkcję
całkowaną f(x) przybliżamy jakimś wielomianem interpolacyjnym (tak, jak było w przypadku
przybliżenia parabolami – rys. 1c), to nazywa się ona kwadraturą interpolacyjną. Stopień
tego wielomianu to rząd kwadratury.
Jeśli ponadto przedział całkowania nie jest dzielony na podprzedziały, to kwadratura jest
prosta; jeśli jest dzielony – złożona.
A f ( x ) (b a) 6 f ( x ) 3 f ( x ) 6 f ( x )
1 2 1
Iˆ2 ( f ) i i 0 1 2
i 0
gdzie x0, x1, x2 – węzły kwadratury, rozmieszczone równomiernie od x0 = a do x2 = b.
(2x
5
a) 3
5 x 2 4 x 1)dx : wartość dokładna 20
6
2
Kwadratura parabol: N = 2, więc rozkładamy N + 1 = 3 węzły równomiernie w przedziale
od 2 do 3: x0 = 2, x1 = 0,5, x2 = 3, f ( x) 2 x 3 5x 2 4 x 1 :
1 2 1 1 2 1 1
Iˆ2 ( f ) (b a) f ( x0 ) f ( x1 ) f ( x2 ) (3 (2)) f (2) f f (3)
6 3 6 6 3 2 6
1 2 1 5
5 45 0 (20) 20
6 3 6 6
Jak widać, kwadratura obliczyła taką całkę dokładnie – dlatego, że w przypadku
wielomianów kwadratury N-tego rzędu obliczają dokładnie całki dla wielomianów do
stopnia N + 1-go włącznie (a więc np. kwadratura 4. rzędu obliczy dokładnie całkę z
wielomianu stopnia 2, 3, 4 i 5, ale 6-go – już niekoniecznie).
5
b) ln(2 x 3)dx : wartość dokładna 8,6485
1
Kwadratura parabol: N = 2, więc rozkładamy 3 węzły równomiernie w przedziale od 1 do
5: x0 = 1, x1 = 3, x2 = 5, f ( x) ln(2 x 3) :
Kwadratura trzech ósmych: N = 3, więc rozkładamy 4 węzły równomiernie w przedziale
1 2
od 1 do 5: x0 = 1, x1 2 , x 2 3 , x3 = 5:
3 3
1 3 7 3 11 1
Iˆ( f ) 4 f (1) f f f (5) 8,6456
8 8 3 8 3 8
h 2 f ( x
1 1
Iˆ( f ) m 1 ) f ( xm )
m1
2
1 1 1 1 1 1 1 1
h f ( x0 ) f ( x1 ) f ( x1 ) f ( x 2 ) ... f ( x N 2 ) f ( x N 1 ) f ( x N 1 ) f ( x N )
2 2 2 2 2 2 2 2
Pierwsze dwa składniki dotyczą pierwszego trapezu na rys. 3, następne dwa – drugiego, itd.;
podobnie czwarty i trzeci od końca dotyczą trapezu przedostatniego, dwa ostatnie –
ostatniego. Jak widać, każdy wyraz powtarza się dwukrotnie – oprócz skrajnych. Dlatego
uproszczenie daje następujący wynik:
N 1
ˆI ( f ) h 1 f ( x ) 1 f ( x )
2
0
2
N
m1
f ( x m )
(11)
Interpretację geometryczną przedstawia rys. 4. Pierwszy wyraz wz. (11) oznacza, że liczymy
pole prostokąta o wysokości równej f(x0) i podstawie równej połowie szerokości h
podprzedziału. Podobnie interpretujemy drugi wyraz, ale odnosi się on do ostatniego
prostokąta. Każdy wyraz będący składnikiem sumy odnosi się natomiast do prostokąta o
wysokości będącej wartością funkcji f(x) w jakimś węźle pośrednim i o podstawie równej
całej szerokości podprzedziału (połowa po lewej stronie węzła, połowa po prawej).
1
hf(xm) hf ( xN )
1 2
hf ( x0 )
2
Można zauważyć, że pierwszy i trzeci składnik to 1/3 sumy pól trapezów ze wz. (10) – dlatego
sumowanie wzorów (12) daje:
N 1
x m
N
x
ˆI ( f ) h 1 f ( x ) 1 f ( x ) 1
2
0 N f ( xm ) f m1 (13)
6 6 3 m1 3 m1 2
gdzie trzy pierwsze składniki są analogiczne do wz. (11), zaś czwarty dotyczy wartości
funkcji f(x) w punktach pośrednich. Interpretację geometryczną przedstawia rys. 6. Pierwszy i
drugi wyraz wz. (13) oznacza, że liczymy pola prostokątów o wysokości równej f(x0) i f(xN)
oraz podstawie równej 1/6 szerokości h podprzedziału. Każdy wyraz będący składnikiem
pierwszej sumy odnosi się do prostokąta o wysokości będącej wartością funkcji f(x) w
pewnym węźle pośrednim i o podstawie równej 1/3 szerokości podprzedziału (1/6 po lewej
stronie węzła, 1/6 po prawej). Z kolei każdy wyraz będący składnikiem drugiej sumy odnosi
się do prostokąta o wysokości będącej wartością funkcji f(x) w punkcie pośrodku między
węzłami i o podstawie równej 2/3 szerokości podprzedziału (1/3 po lewej stronie, 1/3 po
prawej).
2 xm 1 xm
hf 1
3 2 hf ( xN )
1 6
hf ( xm )
1 3
hf ( x0 )
6
Rys. 6. Interpretacja geometryczna
złożonej kwadratury parabol
exp(0,3x )dx .
2
Obliczymy całkę Jest to całka eliptyczna – nie ma możliwości
0
obliczenia jej w sposób symboliczny. Wartość dokładna tej całki wynosi 1,6149. Przedział
całkowania podzielimy na 5 podprzedziałów, a więc węzłami będą punkty: x0 = 0, x1 = 0,8,
x2 = 1,6, x3 = 2,4, x4 = 3,2, x5 = 4. Funkcja podcałkowa wraz z wartościami dla
poszczególnych węzłów jest pokazana na rys. 7.
a) Kwadratura trapezów:
1 1
Iˆ( f ) h f ( x0 ) f ( x1 ) f ( x2 ) f ( x3 ) f ( x4 ) f ( x5 ) 1,6204
2 2
b) Kwadratura parabol: potrzebne są punkty pośrednie między węzłami, a więc: x0,5 = 0,4,
x1,5 = 1,2, x2,5 = 2, x3,5 = 2,8, x4,5 = 3,6. Wartości funkcji podcałkowej w tych punktach
wynoszą: f(x0,5) = 0,953, f(x1,5) = 0,649, f(x2,5) = 0,301, f(x3,5) = 0,0952, f(x4,5) = 0,0205.
1 1 1 1 1 1
Iˆ( f ) h f ( x0 ) f ( x1 ) f ( x2 ) f ( x3 ) f ( x4 ) f ( x5 )
6 3 3 3 3 6
2 2 2 2 2
f ( x0,5 ) f ( x1,5 ) f ( x2,5 ) f ( x3,5 ) f ( x4,5 ) 1,6171
3 3 3 3 3
4. Kwadratury interpolacyjne Gaussa
Ponieważ węzły kwadratur Newtona-Cotesa arbitralnie przyjmuje się rozłożone
równomiernie, błąd wynikający ze stosowania takich kwadratur jest dość duży. Ilustruje to
rys. 8 na przykładzie kwadratury trapezów. Jeśli węzły są przyjęte na początku i na końcu
przedziału całkowania, to pole trapezu znacznie się różni od pola pod krzywą f(x), które
teoretycznie ma przybliżać. Jeżeli jednak podniesiemy ukośny bok trapezu tak, by przecinał
wykres funkcji f(x) w pewnych punktach (zwanych punktami Gaussa), to może się okazać, że
naddatki pola trapezu nad krzywą f(x) mogą kompensować niedobór pola trapezu pod tą
krzywą. Zadanie polega na odpowiednim doborze punktów Gaussa i na obliczeniu
współczynników kwadratury (4).
Jeśli kwadratura jest N-tego rzędu (ma N+1 węzłów ), to punkty Gaussa są pierwiastkami
N+1-go wielomianu ortogonalnego N+1 – np. N+1-go wielomianu Legendre’a (patrz wykład
o aproksymacji). Z kolei współczynniki kwadratury liczymy następująco:
2
a N
Ai N 1 (14)
a N N 1 ( xi ) N ( xi )
gdzie:
aN, aN+1 – współczynnik stojący przy najwyższej potędze wielomianu ortogonalnego o
numerze N lub N + 1,
||N||2 kwadrat normy N-tego wielomianu,
N 1 ( xi ) wartość pochodnej wielomianu o numerze N + 1 dla odciętej i-tego węzła Gaussa.
Jak wiadomo z wykładu o aproksymacji, wielomiany ortogonalne mają swój przedział
ortogonalności. Należy zatem dopasować przedział całkowania do przedziału ortogonalności
wielomianu. Jeśli więc całkujemy pewną funkcję f() w przedziale (a, b), a wielomian (x)
jest ortogonalny w przedziale (U, V) (rys. 9), to dopasowania przedziałów dokonuje się za
pomocą przejścia:
ba Ub aV
x (15)
V U V U
Przejście jest zatem analogiczne do tego, którego dokonuje się w przypadku
aproksymacji – ale odwrotne. Obliczenie całki odbywa się więc przez podstawienie, czyli:
b V
ba ba Ub aV b a
d
V U
dx , I ( f ()) f ()d f V U x
a U
V U V U
dx (16)
3
3
3 3
Wzór na kwadraturę:
ba ba ab ba a b
Iˆ( f ) A0 f x0 A1 f x1
2 2 2 2 2
(18)
ba ba ab b a a b
f f
2 2 3 2 2 3 2
Dla kwadratury 2. rzędu (N = 2) będą potrzebne wielomiany Legendre’a P0, P1, P2, P3:
3 2 1 5 3 3
P0 = 1, P1 = x, P2 x , P3 x x
2 2 2 2
Węzłami Gaussa są pierwiastki wielomianu P3:
5 3 3 3 3
P3 x x0 x0 , x1 = 0, x2
2 2 5 5
Dane do współczynnika Ai:
5 3 2 2 2 2
a N 1 a3 , a N a2 , N P2 ,
2 2 2N 1 5
15 3 3 1
N 1 P3 x 2 , N P2 x 2
2 2 2 2
5 2
5 2
Ai 2
3 15 2 3 3 2 1 15 2 3 3 2 1
x x 3 xi xi
2 2 i 2 2 i 2 2 2 2 2
5 8 5
A0 , A1 , A2
9 9 9
Wzór na kwadraturę:
ba ba ab ba ab ba a b
Iˆ( f ) A0 f x0 A1 f x1 A2 f x2
2 2 2 2 2 2 2
b a 5 b a 3 a b 8 a b 5 b a 3 a b
f f f (19)
2 9 2 5 2 9 2 9 2 5 2
Interpretacja geometryczna kwadratur Gaussa 1. i 2. rzędu przedstawiona jest na rys. 10.
Obliczenie każdej z kwadratur jest analogiczne do liczenia pola trapezów (jednego lub
dwóch) o wymiarach pokazanych na rysunku.
Zatem przy obliczaniu całek kwadraturami Gaussa nawet kwadratura trapezów daje bardzo
dokładny wynik. Dla całki z punktu a) kwadraturą trapezów Newtona-Cotesa otrzymuje się
8,3488 (dość dokładnie, ale tylko dzięki temu, że logarytm jest funkcją „płaską”), a dla całki z
punktu b) 2,0165 (25% błędu – wynik nie do przyjęcia).
0
xm = [0; 0.8; 1.6; 2.4; 3.2; 4], a w tabelce przedstawiamy kolejno argumenty funkcji f ze
wzoru (20) oraz wartości funkcji dla tych argumentów:
h 1 xm1 xm h 1 xm1 xm
m xm0 xm1 f(xm0) f(xm1)
2 3 2 2 3 2
1 0,09016 0,7099 0,9976 0,8597
2 0,8902 1,5098 0,7884 0,5046
3 1,6902 2,3098 0,4244 0,2018
4 2,4902 3,1098 0,1556 0,05495
5 3,2902 3,9098 0,03887 0,01019
2,4049 1,6313
Î = 0,4 (2,4049 + 1,6313) = 1,6145