Całkowanie numeryczne
Marcin Orchel
1 Wstęp
Całkowanie numeryczne – przybliżone wyliczanie wartości całek oznaczonych.
I (f ) = Z b
a
f (x) dx (1)
Do wszystkich metod. Podział przedziału całkowania na podprzedziały. Przedział cał- kowania: [a, b]. x 1 , x 2 , . . . , x n – punkty należące do przedziału całkowania, takie, że x i < x i+1 , dla i = 1, 2, . . . , n − 1, x 1 = a, x n = b. Podprzedziały całkowania: (x 1 , x 2 ) , (x 2 , x 3 ) , . . . , (x n−1 , x n ). Zdefiniujmy h i := x i+1 − x i dla i = 1, 2, . . . , n − 1. Oznaczenie:
y i = f (x i ).
1.1 Podejście geometryczne 1.1.1 Metoda prostokątów
W każdym podprzedziale wybierany jest punkt środkowy M i o odciętej m i = x i+1 + x i
2
dla i = 1, 2, . . . , n−1. Dla każdego podprzedziału pole pod wykresem funkcji przybliżane jest prostokątem o bokach długości x i+1 − x i oraz f (m i ). Prostokąt i-ty to prostokąt z podprzedziału (x i , x i+1 ). Pole prostokąta i-tego wynosi
P i = h i f (m i ) Szukana wartość całki oznaczonej wynosi:
I (f ) =
n−1
X
i=1
P i =
n−1
X
i=1
h i f (m i )
Dla jakiego przebiegu funkcji metoda ta daje dobre przybliżenie, a dla jakiego nie?
Oszacowanie górnej granicy błędu dla i-tego przedziału:
R < m i f (m i )
Jeśli znana jest maksymalna pochodna w i-tym przedziale:
p i = max f 0 (x) to oszacowanie można poprawić:
R ≤ 1 2 1 2 h i
1 2 h i p i
R ≤ 1 8 h 2 i p i
Z innej perspektywy można powiedzieć, że metoda prostokątów polega na interpolacji funkcji f funkcją stałą:
y i (x) = f (m i ) . 1.1.2 Metoda trapezów
W każdym przedziale konstruowany jest trapez przechodzący przez punkty:
(x i , 0) , (x i+1 , 0) , (x i , y i ) , (x i+1 , y i+1 ) . (2) Pole tego trapezu wynosi:
P i = (y i + y i+1 ) h i 2 Szukana wartość całki wynosi zatem:
I (f ) =
n−1
X
i=1
P i =
n−1
X
i=1
(y i + y i+1 ) h i 2
Dla jakiego przebiegu funkcji metoda ta daje gorsze/lepsze przybliżenie od metody prostokątów?
Można również powiedzieć, że metoda trapezów polega na interpolacji funkcji f funk- cją liniową przechodzącą przez punkty (x i , y i ) , (x i+1 , y i+1 ).
1.1.3 Metoda parabol (Simpsona)
Metoda parabol polega na interpolacji funkcji f funkcją kwadratową w każdym prze- dziale. Dla każdego przedziału (x i , x i+1 ) konstruujemy funkcję kwadratową przechodzącą przez 3 punkty (x i , f (x i )), (s i , f (s i )), (x i+1 , f (x i+1 )), gdzie s i jest wartością z przedziału (x i , x i+1 ). Funkcja kwadratowa będzie miała postać:
W (x) = a i x 2 + b i x + c i
dla i = 1, . . . , n − 1. Współczynniki a i , b i oraz c i można znaleźć rozwiązując następujący układ równań:
y i = a i x 2 i + b i x i + c i
f (s i ) = a i s 2 i + b i s i + c i y i+1 = a i x 2 i+1 + b i x i+1 + c i .
Po wyznaczeniu współczynników a i , b i oraz c i należy obliczyć całkę:
I (f ) =
x
i+1Z
x
ia i x 2 + b i x + c i dx
=
"
a i
x 3
3 + b i x 2 2 + c i x
# x
i+1x
i= a i 3
x 3 i+1 − x 3 i + b i 2
x 2 i+1 − x 2 i + c i (x i+1 − x i )
= (x i+1 − x i ) 6
2a i x 2 i+1 + x i x i+1 + x 2 i + 3b i (x i+1 + x i ) + c i
= (x i+1 − x i ) 6
a i x 2 i+1 + b i x i+1 + c i + a i x 2 i + b i x i + c i + a i x 2 i+1 + 2a i (x i x i+1 ) + a i x 2 i + 2b i (x i+1 + x i ) + 4c i
= (x i+1 − x i )
6 a i x 2 i+1 + b i x i+1 + c i + a i x 2 i + b i x i + c i + 4 a i
x i + x i+1 2
2
+ b i x i + x i+1 2 + c i
!!
Możemy uprościć powyższą postać podstawiając wartość odciętej m i punktu środkowego (x i+1 − x i )
6 (y i+1 + y i + 4f (m i ))
Znamy jednak wartość dla odciętej s i , więc zakładamy, że punkt wewnętrzny jest punk- tem środkowym s i = m i .
1.2 Podejście analityczne
Interesuje nas zastąpienie funkcji f (x) funkcją g (x) tak aby poniższe równanie było w miarę możliwości spełnione
Z b
a
f (x) dx ≈ Z b
a
g (x) dx . (3)
Interesuje nas szczególny przypadek gdy
b
Z
a
f (x) dx ≈
n
X
i=0
a i f (x i ) (4)
gdzie współczynniki a i nie zależą od f . Wzór ten nazywany jest kwadraturą, punkty x i
nazywane są węzłami kwadratury, a liczby a i współczynnikami kwadratury.
1.2.1 Metoda oparta na interpolacji Lagrange’a
Pomysł polega na zastąpieniu funkcji f (x) wzorem interpolacyjnym Lagrange’a, czyli g (x) =
n
X
i=0
y i L i (x) (5)
gdzie L i są wielomianami Lagrange’a. Po podstawieniu otrzymujemy przybliżenie
n
X
i=0
y i
b
Z
a
L i (x) dx . (6)
Widzimy, że ta postać jest szczególnym przypadkiem prawej strony (4) gdzie a i =
Z b a
L i (x) dx . (7)
Kwadratury Newtona-Cotesa Zobaczmy, jak wygląda powyższa metoda dla węzłów równoodległych. Możemy podstawić do wielomianu interpolacyjnego Lagrange’a
x = a + hs , (8)
gdzie a i h to stałe, a s to nowa zmienna i otrzymujemy L i (x) =
n
Y
k=0 k6=i
x − x k x i − x k =
n
Y
k=0 k6=i
a + hs − a − kh a + ih − a − kh =
n
Y
k=0 k6=i
s − k
i − k (9)
Ponieważ jak widzimy powyżej L i są niezależne od a i od h, więc możemy zapisać w szczególności
L i (x) = ϕ i (s) =
n
Y
k=0 k6=i
s − k
i − k (10)
Stosujemy całkowanie przez podstawienie (8) do (7) zmieniając granice całkowania, po zauważeniu, że dla s = 0 otrzymujemy a, a dla s = n otrzymujemy b
a i = h Z n
0
ϕ i (s) ds . (11)
możemy wprowadzić dodatkowo symbol α i =
Z n 0
ϕ i (s) ds . (12)
Współczynniki α i nie zależą ani od granic całkowania, ani od funkcji f , tylko od n.
Możemy wyprowadzić wzory na współczynniki dla n = 1 α 0 =
Z 1 0
ϕ 0 (s) ds = Z 1
0
s − 1
0 − 1 dx = − 1
2 s 2 + s| 1 0 = 1
2 (13)
α 1 = Z 1
0
ϕ 1 (s) ds = s 2 2 | 1 0 = 1
2 (14)
A więc przybliżenie całki jest równe S (f ) = 1
2 h (y 0 + y 1 ) . (15)
A więc otrzymujemy wzór trapezów. Dla n = 2 a 0 =
Z 2 0
ϕ 0 (s) ds = . . . = 1
3 (16)
a 1 = Z 2
0
ϕ 1 (s) ds = . . . = 4
3 (17)
a 2 = Z 2
0
ϕ 2 (s) ds = . . . = 1
3 (18)
Zauważmy, że suma wszystkich współczynników jest równa n. Przybliżenie całki jest równe
S (f ) = 1
3 h (y 0 + 4y 1 + y 2 ) . (19)
Jest to wzór parabol (Simpsona).
Dla n = 3 otrzymujemy wzór 3/8 Newtona (wzór trzech ósmych).
S (f ) = 3
8 h (y 0 + 3y 1 + 3y 2 + y 3 ) . (20) Przykład: Obliczyć wartość całki dokładną i przybliżoną metodami trapezów, Simp- sona i 3/8 Newtona
Z 1 0
dx
1 + x (21)
Metoda trapezów
Z 1 0
dx 1 + x = 1
2 1
1 + 1
2
= 0.75 . (22)
Metoda Simpsona
Z 1 0
dx
1 + x = 0.6944 . (23)
Metoda 3/8 (trzech ósmych) Newtona Z 1
0
dx
1 + x = 0.6937 . (24)
Wartość dokładna
Z 1 0
dx
1 + x = ln 2 ≈ 0, 6931 . (25)
Dla funkcji f , która jest na [a, b] dowolnie wiele razy różniczkowalna, błąd kwadratury wynosi
Z b a
g n (x) dx − Z b
a
f (x) dx = h p+1 Kf (p) (ξ) (26) gdzie ξ ∈ (a, b), p i K zależą od n.
Dla n = 1, dla wzoru trapezów otrzymujemy h 3 1
12 f (2) (ξ) (27)
Dla n = 2 dla wzoru Simpsona otrzymujemy h 5 1
90 f (4) (ξ) (28)
Dla n = 3 dla wzoru trzech ósmych otrzymujemy h 5 3
80 f (4) (ξ) (29)
Możemy stosować wzory Newtona-Cotesa dla podprzedziałów, a następnie zsumować wartości całek z podprzedziałów. Dla n = 1 dla całego przedziału
I (h) :=
n−1
X
i=0
h
2 (f (x i ) + f (x i+1 )) (30)
= h
f (a)
2 + f (a + h) + f (a + 2h) + . . . + f (b − h) + f (b) 2
(31) Jest to złożony wzór trapezów. Błąd kwadratury dla każdego podprzedziału wynosi
I i − Z x
i+1x
if (x) dx = h 3
12 f (2) (ξ i ) (32)
gdzie ξ i ∈ (x i , x i+1 ). Dla ograniczenia drugiej pochodnej ograniczona
f (2) (x)
≤ m (33)
dla x ∈ [a, b], błąd wynosi
I (h) − Z b
a
f (x) dx
=
n−1
X
i=0
h 3
12 f (2) (ξ i )
≤ h 3
12 nm = b − a
12 h 2 m (34)
1.2.2 Metoda Gaussa
Po angielsku Gaussian quadrature, http://en.wikipedia.org/wiki/Gaussian_quadrature.
Dla węzłów nierównoodległych, możemy otrzymać lepsze przybliżenie. W poprzedniej metodzie, dla n = 2 otrzymywaliśmy dokładne przybliżenie całki dla wielomianów dru- giego stopnia, w ogólności można otrzymać dokładne przybliżenie całki dla wielomianów n-tego stopnia. W metodzie Gaussa, możemy otrzymać dokładne przybliżenie całki dla wielomianów stopnia 2n. A więc dla n = 2 otrzymamy dokładne przybliżenie całki dla wielomianów 4 stopnia.
Mamy dany przedział skończony [a, b], a < b oraz dla x ∈ [a, b] dodatnia ciągła funkcja wagowa ω(x), n ≥ 1 to liczba naturalna. Zadanie polega na aproksymacji całki
I (f ) = Z b
a
w (x) f (x) (35)
wartością
I (f ) = ˜
n
X
i=1
w i f (x i ) (36)
a więc musimy wybrać odpowiednio 2n liczb: w i , x i , i = 1, . . . , n. Likwidujemy założenie aby węzły musiały być równoodległe. Zadanie polega na takim dobraniu w i oraz x i aby błąd aproksymacji
I (f ) − I (f ) ˜ (37)
znikał dla wielomianów możliwie dużego stopnia. Czyli gdy podstawimy za f wielomian.
Okazuje się, że dla każdego n = 1, 2, . . . istnieją jednoznacznie określone liczby w i , x i gdzie i = 1, . . . , n takie, że ˜ I(f ) = I(f ) dla wszystkich wielomianów p stopnia ≤ 2n − 1, oraz w i > 0 i x i ∈ (a, b) dla i = 1, . . . , n.
Oznaczmy
Π ¯ j := n p|p (x) = x j + a 1 x j−1 + . . . + a j o (38) zbiór wszystkich wielomianów unormowanych, oraz
Π j := {p|p wielomian stopnia ≤ j} (39) Twierdzenie 1. Istnieją jednoznacznie określone wielomiany p j ∈ ˜ Π j , j = 0, 1, . . . takie, że
(p i , p k ) = 0 (40)
dla i 6= k. Wielomiany te spełniają związek rekurencyjny
p 0 (x) = 1 (41)
p i+1 (x) = (x − δ i+1 ) p i (x) − γ i+1 2 p i−1 (x) (42) dla i ≥ 0, p −1 (x) ≡ 0 oraz
δ i+1 := (xp i , p i ) / (p i , p i ) (43) dla i ≥ 0, oraz
γ 2 i+1 :=
( 0 dla i ≥ 0
(p i , p i ) / (p i−1 , p i−1 ) dla i ≥ 1 (44)
Wielomiany p i ze względu na pierwszy warunek są wielomianami ortogonalnymi z funkcją wagową ω(x). Dla przypomnienia
(p i , p k ) = Z b
a
w (x) p i (x) p k (x) dx (45)
Przykład. Wyliczenie wielomianu p 1 (x) dla w(x) ≡ 1, wtedy i = 0 p 1 (x) =
x − (xp 0 (x) , p 0 (x)) (p 0 (x) , p 0 (x))
p 0 (x) − 0 =
x − (x, 1) (1, 1)
1 = x −
1 2 − 1 2
2 = x (46) Dla wszystkich wielomianów p ∈ Π n−1 zachodzi równość (p, p n ) = 0.
Twierdzenie 2. Zera x i dla i = 1, . . . , n wielomianu p n są rzeczywiste, pojedyncze i leżą w przedziale (a, b).
Twierdzenie 3. Dla dowolnych liczb t i dla i = 1, . . . , n takich, że t 1 < t 2 < . . . < t n macierz kwadratowa n × n
A :=
p 0 (t 1 ) . . . p 0 (t n ) . . . . . . . . . p n (t 1 ) p n−1 (t n )
(47)
jest nieosobliwa.
Twierdzenie 4. Niech liczby w 1 , . . . , w n i zera x 1 , . . . , x n wielomianu p n (x) będą roz- wiązaniem układu równań liniowych
n
X
i=1
p k (x i ) w i =
( (p 0 , p 0 ) jesli k = 0
0 jesli k = 1, 2, . . . , n − 1 (48) Wtedy w i > 0 dla i = 1, 2, . . . , n jak również
Z b a
ω (x) p (x) dx =
n
X
i=1
w i p (x i ) (49)
dla wszystkich wielomianów p ∈ Π 2n−1 .
Jeśli na odwrót, dla pewnych liczb w i , x i dla i = 1, . . . , n prawdziwa jest równość (49) dla wszystkich wielomianów p ∈ Π 2n−1 , to wówczas x i są zerami wielomianu p n , a w i spełniają układ równań (48).
Nie istnieją liczby x i , w i dla i = 1, . . . , n takie, żeby zachodziło (49) dla wszystkich wielomianów p ∈ Π 2n .
Dla funkcji wagowej w(x) :≡ 1 i przedziału [−1, 1] wielomianami ortogonalnymi są wtedy wielomiany Legendre’a (kwadratura Gaussa-Legendre’a)
p k (x) := k!
(2k)!
d k dx k
x 2 − 1 k (50)
dla k = 0, 1, . . ..
Przykład. Obliczyć współczynniki w i x i dla całki Z 1
−1 x 3 + 2x 2 + x + 1 (51)
Wartość dokładna całki to 10/3. Możemy wyliczyć 2n − 1 = 3, czyli n = 2 Układ równań to
p 0 (x 1 ) w 1 + p 0 (x 2 ) w 2 = (p 0 , p 0 ) (52) p 1 (x 1 ) w 1 + p 1 (x 2 ) w 2 = 0 (53) Wielomiany Legendre’a to
p 0 (x) = 1 (54)
p 1 (x) = x (55)
p 2 (x) = 1 2
3x 2 − 1 (56)
Wartości x 1 i x 2 to zera wielomianu p 2 (x), a zatem x 1 = −1/ √
3, x 2 = 1/ √ 3. A zatem układ równań to
1w 1 + 1w 2 = 2 (57)
− 1
√ 3 w 1 + 1
√ 3 w 2 = 0 (58)
Rozwiązanie: w 1 = 1, w 2 = 1. A więc ostatecznie Z 1
−1
x 3 + 2x 2 + x + 1 = f (x 1 ) + f (x 2 ) =
− 1
√ 3
3
+ 2
− 1
√ 3
2
− 1
√ 3 + 1 (59)
+
1
√ 3
3
+ 2
1
√ 3
2
+ 1
√ 3 + 1 = 10/3 (60)
Alternatywnie możemy wyliczyć wartości współczynników ze wzoru
a k = − 2
(n + 2) p n+2 (x k ) p 0 n+1 (x k ) (61) gdzie x k są zerami wielomianu p n+1 (x).
Innymi możliwymi wielomianami ortogonalnymi są
1. wielomiany Czebyszewa T n (x), przedział [−1, 1] z funkcją wagową w (x) = 1 − x 2 −
1
2