Całkowanie numeryczne przy użyciu kwadratur
Plan wykładu:
1. Kwadratury Newtona-Cotesa a) wzory: trapezów, parabol etc.
b) kwadratury złożone 2. Ekstrapolacja
a) Ekstrapolacja Richardsona b) Metoda Romberga
c) Metody adaptacyjne
d) Formuła sumacyjna Eulera-Maclaurina (Romberg, Burilsch) 3. Kwadratury Gaussa
a) Gaussa-Legendre'a b) Gaussa-Hermitte'a c) Gaussa-Laguerre'a
4. Całkowanie funkcji wielu zmiennych
2 Całkowanie numeryczne oznacza zastosowanie metod numerycznych w celu
wyznaczenia przybliżonej wartości całki oznaczonej.
Skoro funkcję podcałkową możemy interpolować
to wielomian interpolacyjny można wykorzystać do całkowania.
Dla danego ciągu wartości funkcji podcałkowej f(x0), f(x1),...,f(xN) definiujemy wielomian interpolacyjny Lagrange'a:
'(x) = L
N(x) = X
N k=0©
k(x)F (x
k)
©
k(x) = (x ¡ x
0)(x ¡ x
1) : : : (x ¡ x
k¡1)(x ¡ x
k+1) : : : (x ¡ x
N)
(x
k¡ x
0)(x
k¡ x
1) : : : (x
k¡ x
k¡1)(x
k¡ x
k+1) : : : (x
k¡ x
N) = Y
j=0 j6=k
x ¡ x
jx
k¡ x
jC =
Z
ba
f (x)dx
3 Podstawiamy wielomian interpolacyjny w
miejsce funkcji podcałkowej:
Powyższe wzory definiują tzw. kwadraturę. Ak są współczynnikami kwadratur.
Jeśli spełniony jest warunek
To wtedy
Dokładność wyznaczonej wartości całki jest ograniczona dokładnością przybliżenia funkcji podcałkowej wielomianem (lub inną funkcją).
Z
ba
F (x)dx ¼ Z
ba
'(x)dx = X
N k=0A
kF (x
k)
A
k= Z
ba
©
k(x)dx
jf(x) ¡ '(x)j < "; x 2 [a; b]
¯ ¯
¯ ¯
¯ Z
ba
F (x)dx ¡ X
N k=0A
kF (x
k)
¯ ¯
¯ ¯
¯ =
= ¯¯ ¯
¯ ¯ Z
ba
(F (x) ¡ '(x))dx ¯¯ ¯
¯ ¯ 6 "(b ¡ a)
Jeśli funkcja podcałkowa posiada osobliwości (np. jest nieograniczona, lub przedział całkowania jest
nieskończony) wówczas powyższy schemat
całkowania ulega modyfikacji – funkcję podcałkową zastępujemy iloczynem funkcji wagowej i nowej gładkiej funkcji:
Funkcja wagowa p(x) zawiera wszystkie osobliwości funkcji F(x) lub jej dobór wynika z zastosowanych wielomianów ortogonalnych:
F (x) = p(x)f (x)
A
0k= Z
ba
p(x)©
k(x)dx Z
ba
F (x)dx =
Z
b ap(x)f (x)dx ¼
¼
Z
b ap(x)'(x)dx = X
N k=0A
0kf (x
k)
4 Chcemy wyznaczyć wartość całki:
Stosując wzór
Powyższy wzór nosi nazwę kwadratury, a punkty x1,x2...,xN węzłami kwadratury.
Błąd przybliżenia całki kwadraturą (błąd metody):
Kryterium dokładności kwadratury można przyjąć zgodność I(W) z S(W), gdy W jest wielomianem.
Wówczas mówimy że dana kwadaratura jest rzędu r (r ≥ 1 ) jeśli
dla wszystkich wielomianów stopnia mniejszego niż r.
Kwadratura jest zbieżna dla każdej funkcji f∈ C([a,b]) wtedy gdy:
1) Jest ona zbieżna dla każdego wielomianu 2) Istnieje liczba M niezależna od N taka że
I(f ) = Z
ba
p(x)f (x)dx
S(f ) = X
N k=0A
kf (x
k); x 2 [a; b]
E(f ) = I(f ) ¡ S(f)
I(W ) = S(W )
B
N= X
N k=0jA
Nkj 6 M; N = 1; 2; : : :
Kwadratury Newtona-Cotesa
Rozważamy przypadek z węzłami równoodległymi xi=a+ih, i=0,1,2,...,N. Jeśli końce przedziału są również węzłami wówczas kwardatury noszą nazwę kwadratur zamkniętych.
Przybliżamy funkcję podcałkową wielomianem Lagrange'a stopnia conajwyżej N
Błąd przybliżenia (interpolacji)
Wprowadzamy nową zmienną t
f (x
i) = L
N(x
i); i = 0; 1; 2; : : : ; N L
N(x) =
X
N k=0f (x
k)©
k(x)
©
k(x) = Y
j=0 j6=k
x ¡ x
jx
k¡ x
jR
N +1(x) = f (x) ¡ L
N(x)
= 1
(N + 1)! !
N +1(x)f
(N +1)(»)
» 2 (a; b)
x = a + ht ©
k(t) = Y
j=0 j6=k
t ¡ j
k ¡ j
5 Ostatecznie otrzymujemy:
gdzie:
S(f ) = X
N k=0A
kf
kA
k= h ( ¡1)
N¡kk!(N ¡ k)!
Z
N0
t(t ¡ 1) : : : (t ¡ N) (t ¡ k)
f
k= f (a + kh)
h = b ¡ a N
Własności:
1) Gdy N jest nieparzyste wówczas kwadratura jest rzędu (N+1) (dokładna dla wielomianów stopnia N), dla parzystego N rząd kwadratury wynosi (N+2)
2) Jeżeli funkcja podcałkowa jest r-krotnie różniczkowalna, wówczas błąd metody można przedstawić w postaci:
współczynnik Cr nie zależy od f.
3) Dla dużych N oszacowanie błędu jest trudne ze względu na pochodne wysokich rzędów lub ze względu na numeryczne kasowanie się
współczynników Ak
4) Współczynniki Ak zależą od N. W szczególności (wzór na Ak) zachodzi
dlatego metoda kwadratur Newtona-Cotesa nie jest zbieżna w klasie funkcji ciągłych.
W praktyce przedział całkowania dzieli się na m
podprzedziałów. W każdym podprzedziale określa się N (N=1,2,3) i przeprowadza całkowanie. Taka
procedura prowadzi do uzyskania kwadratur złożonych.
E(f ) = C
rf
(r)(»); » 2 [a; b]
N
lim
!1jA
kj = 1 Z
ba
f (x)dx =
Z
b a'(x)dx =
=
X
N k=0f
kZ
ba
©
k(x)dx
= h X
N k=0f
kZ
N0
'
k(t)dt
= h X
N k=0f
kA
k6 Kwadratury dla N=1,2,...,6 (całkowanie w
podprzedziale)
N=1 (wzór trapezów)
Ze wzoru na błąd interpolacji wynika, że kwadratura dokładnie przybliża wielomian N+1=1+1=2 stopnia.
Zatem błąd wyznaczenia przybliżonej wartości całki wynosi
A
0= ¡h Z
10
(t ¡ 1)dt = 1 2 h A
1= h
Z
1 0tdt = 1 2 h S(f ) = 1
2 h(f
0+ f
1) h = b ¡ a
E(f ) = 1 2!
Z
ba
(x ¡ a)(x ¡ b)f
(2)(»)dx
= ¡ 1
12 h
3f
(2)(»); » 2 [a; b]
A
1= 4
3 h A
2= 1 3 h A
0= 1
3 h
h = b ¡ a 2
S(f ) = 1
3 h(f
0+ 4f
1+ f
2)
N=2 (wzór parabol – Simpsona)
Ponieważ N jest parzyste więc kwadratura jest
dokładna dla wielomianów stopnia N+1 i jest rzędu N+2
» 2 [a; b]
E(f ) = f
(4)(»
1) 4!
Z
b a(x ¡ a) µ
x ¡ a + b 2
¶
2(x ¡ b)dx
= ¡ 1
90 h
5f
(4)(»)
7
N w A0/w A1/w A2/w A3/w A4/w A5/w A6/w błąd wzór
1 (1/2)h 1 1 h3 (1/12) f(2)(» ) trapezów
2 (1/3)h 1 4 1 h5 (1/90) f(4)(») parabol
3 (3/8)h 1 3 3 1 h5 (3/80) f(4)(») 3/8
4 (4/90)h 7 32 12 32 7 h7 (8/945) f(6)(») Milne'a 5 (5/288)h 19 75 50 50 75 19 h7 (275/12096) f(6)(») --- 6 (6/840)h 41 216 27 272 27 216 41 h9 (9/1400) f(8)(») Weddle'a
Kwadratury złożone Newtona-Cotesa
Kwadratury wyższych rzędów są rzadko stosowane. Natomiast błąd kwadratur niższych rzędów jest proporcjonalny do długości przedziału całkowania w odpowiedniej potędze. Zatem niski rząd kwadratury może nie zapewiniać wymaganej dokładności.
Problemu tego można uniknąć, dzieląc przedział całkowania na m podprzedziałów, w których przeprowadza się całkowanie kwadaraturami niższych rzędów a wyniki całkowania sumuje się.
8 Wzór złożony trapezów
Przedział całkowania dzieli się na m poprzedziałów:
Gdzie
Zakładamy że
Błąd złożonego wzoru trapezów
h = b ¡ a m S(f ) =
m
X
¡1 k=01
2 h(f
k+ f
k+1)
= h µ 1
2 f
0+ f
1+ : : : + f
m¡1+ 1 2 f
m¶
f
k= f (a + k ¢ h) f 2 C
2([a; b])
»
k2 (a + kh; a + (k + 1)h) E(f ) = ¡ h
312
m
X
¡1 k=0f
(2)(»
k)
= ¡ (b ¡ a)
312m
2¢ 1
m
m
X
¡1 k=0f
(2)(»
k)
Wyraz
jest średnią arytmetyczną wartości drugiej pochodnej w przedziale całkowania.
Można więc zapisać
Błąd zależy od 3 potęgi długości przedziału. Ale zwiększając m można istotnie ograniczyć jego wartość.
1 m
m
X
¡1 k=0f
(2)(»
k) = f
(2)(»); » 2 [a; b]
E(f ) = ¡ (b ¡ a)
312m
2f
(2)(»)
9 Wzór złożony parabol.
Przedział całkowania [a,b] dzielimy na m podprzedziałów (m jest parzyste).
W podprzedziałach [a,a+2h],..., [a+(m-1)h,b]
stosuje się wzór parabol a wyniki cząstkowe sumuje:
Zakładamy
Ze względu na ciągłość pochodnej istnieje taki punkt że:
Wówczas błąd złożonego wzoru parabol wyraża się wzorem
S(f ) = h 3
m=2
X
k=1
(f
2k¡2+ 4f
2k¡1+ f
2k)
= h
3 [f
0+ f
m+ 2(f
2+ f
4+ : : : + f
m¡2) + 4(f
1+ f
3+ : : : + f
m¡1)]
f 2 C
4([a; b])
»
k2 (a + 2(k ¡ 1)h; a + 2kh)
2 m
m=2
X
k=1
f
(4)(»
k) = f
(4)(»)
E(f ) = ¡ (b ¡ a)
5180m
4f
(4)(»)
E(f ) = ¡ h
590
m=2
X
k=1
f
(4)(»
k)
10 Ekstrapolacja Richardsona
(przypadek dla różniczkowania ale zastosowanie ogólne) Rozwijamy funkcję f(x) w szereg Taylora w otoczeniu punktów
i odejmujemy od siebie oba wyrażenia
a następnie przegrupowujemy wyrazy by obliczyć pierwszą pochodną
x § h f (x + h) =
X
1 k=01
k! h
kf
(k)(x) f (x ¡ h) =
X
1 k=01
k! ( ¡1)
kh
kf
(k)(x) f (x + h) = f (x) + hf
(1)(x) + h
22 f
(2)(x) + h
36 f
(3)(x) + : : : f (x ¡ h) = f(x) ¡ hf
(1)(x) + h
22 f
(2)(x) ¡ h
36 f
(3)(x) + : : :
f (x + h) ¡ f(x ¡ h) = 2hf
(1)(x) + 2
3! h
3f
(3)(x) + 2
5! h
5f
(5)(x) + : : :
f
(1)(x) = f (x + h) ¡ f(x ¡ h)
2h ¡
· 1
3! h
2f
(3)(x) + 1
5! h
4f
(5)(x) + 1
7! h
6f
(7)(x) + O(h
8)
¸
11 Powyższa formuła w postaci ogólnej
co można interpretować jako przybliżenie f(1)(x).
Za h podstawimy h/2
i obliczmy różnicę
Zatem L1 przybliża f(1)(x) z dokładnością O(h4) (wyrazów rzędu h4).
Dokonujemy podstawienia
w L1
Ã(h) = 4 3 Á
µ h 2
¶
¡ 1
3 Á(h)
'(h) = 15 16 Ã
µ h 2
¶
¡ 1
15 Ã(h)
Podstawiając do L2
Otrzymujemy
Powtarzając M-krotnie powyższy proces dostaniemy coraz lepsze przybliżenie pierwszej pochodnej tzn.
dokładność jej przybliżenia jest na poziomie O(h2M).
(o ile h<<1).
L
1;h=2= Ã µ h
2
¶
+ b
4h
416 + b
6h
664 L
1;h= Á(h) + a
2h
2+ a
4h
4+ a
6h
6+ : : :
L
1;h=2= Á µ h
2
¶
+ a
2h
24 + a
4h
416 + a
6h
664 + : : : L
2= (L
h¡ 4L
h=2)=3
= 4 3 Á
µ h 2
¶
¡ 1
3 Á(h) ¡ a
4h
44 ¡ 5a
6h
616 ¡ : : :
L
2;h= Ã(h) + b
4h
4+ b
6h
6+ : : :
L
3= (L
1;h¡ 4L
1;h=2)=3
= 15 16 Ã
µ h 2
¶
¡ 1
15 Ã(h) ¡ b
6h
620 Ã(h) ¡ : : :
L
3;h= '(h) + c
6h
6+ c
8h
8+ : : :
12 Algorytm dla powyższej procedury jest następujący
1. Wybieramy h i liczymy
2. Następnie obliczamy
Obliczając rekurencyjnie wyrazy wg 2 dostajemy przybliżenia
D
n;0= L + O(h
2) D
n;1= L + O(h
4) D
n;2= L + O(h
6) D
n;3= L + O(h
8)
: : : : : : : : : : : :
D
n;k¡1= L + O(h
2k); h ! 0 D
n;k= 4
k4
k¡ 1 D
n;k¡1¡ 1
4
k¡ 1 D
n¡1;k¡1k = 1; 2; : : : ; M
n = k; k + 1; : : : ; M D
n;0= Á
µ h 2
n¶
; n = 0; 1; 2; : : : ; M
Algorytm ten definiuje tzw. ekstrapolację Richardsona. Generalnie jest to proces
rekurencyjnego wyznaczania pewnej wielkości (pochodnej, całki), co można zdefiniować przy pomocy wzoru
co w połączeniu z pkt. 2 daje szukane przybliżenie Dm,m.
Kolejne kroki algorytmu można zapisać w postaci tablicy
D
n;k¡1= L + X
1 j=kA
jkµ h 2
n¶
2jD
0;0D
1;0D
1;1D
2;0D
2;1D
2;2.. . .. . .. . . ..
D
M;0D
M;1D
M;2: : : D
M;M13 Metoda Romberga
Korzytamy z wzoru trapezów
Jeśli
to dla kolejnych wartości n dostajemy poniższy ciąg przybliżeń wartości całki
h = b ¡ a n S
n= h
X
n i=0f (a + ih) ¡ f (a) + f (b) 2
= b ¡ a n
X
n i=0f µ
a + i b ¡ a n
¶
¡ f (a) + f (b) 2
x 2 [0; 1]
S
1= 1
2 f (0) + 1
2 f (1) S
2= 1
4 f (0) + 1 2
· f
µ 1 2
¶¸
+ 1
4 f (1) S
4= 1
8 f (0) + 1 4
· f
µ 1 4
¶ + f
µ 1 2
¶ + f
µ 3 4
¶¸
+ 1
8 f (1) S
8= 1
16 f (0) + 1 8
· f
µ 1 8
¶ + f
µ 1 4
¶ + f
µ 3 8
¶ + f
µ 1 2
¶
+f µ 5
8
¶ + f
µ 3 4
¶ + f
µ 7 8
¶¸
+ 1
16 f (1)
Łatwo zauważyć, że do obliczenia T2n można wykorzystać już obliczone Tn
co ogólnie dla przedziału całkowania [a,b] można zapisać jako
S
2= 1
2 S
1+ 1 2
· f
µ 1 2
¶¸
S
4= 1
2 S
2+ 1 4
· f
µ 1 4
¶ + f
µ 3 4
¶¸
S
8= 1
2 S
4+ 1 8
· f
µ 1 8
¶ + f
µ 3 8
¶ + f
µ 5 8
¶ + f
µ 7 8
¶¸
S
2n= 1
2 S
n+ h X
ni=1
f (a + (2i ¡ 1)h)
14 W metodzie Romberga zakładamy, że odległość
między (n+1) węzłami wynosi
Do obliczenia całki wykorzystujemy rekurencyjną formułę z wzorem trapezów
Wartości kolejnych przybliżeń można uporządkować w postaci tablicy podobnie jak w przypadku
ekstrapolacji Richardsona.
Obliczenia przerywa się gdy spełniony jest warunek
lub po osiągnięciu zadanej liczby iteracji k.
Metoda Romberga jest przykładem kwadratury adaptacyjnej.
h
n= b ¡ a 2
njR
k;k¡ R
k¡1;k¡1j · "; " 2 R
Metody adaptacyjne
Liczymy numerycznie całkę np. wzorem parabol
Dzielimy przedział [a,b] na n podprzedziałów i stosujemy wzór parabol w każdym z nich
gdzie: ei jest lokalnym błędem przybliżenia wartości całki w i-tym podprzedziale [xi-1,xi].
Załóżmy że jego wartość możemy oszacować zgodnie z poniższym wzorem
Z
ba
f (x)dx = S(a; b) ¡ (b ¡ a)
590 f
(4)(»)
S(a; b) = b ¡ a 6
·
f (a) + 4f
µ a + b 2
¶
+ f (b)
¸
» 2 [a; b]
Z
ba
f (x)dx = X
ni=1
(S
i+ e
i)
je
ij · " x
i¡ x
i¡1b ¡ a R
0;0= 1
2 (b ¡ a) [f(a) + f (b)]
R
n;0= 1
2 R
n¡1;0+ b ¡ a 2
n2
X
n¡1 i=1f µ
a + (2i ¡ 1) b ¡ a 2
n¶
R
n;m= R
n;m¡1+ R
n;m¡1¡ R
n¡1;m¡14
m¡ 1
15 wówczas oszacowanie błędu całkowitego od góry
jest następujące
co pozwala oszacować wartość bezwzględną błędu całki wyznaczonej numerycznie
Wniosek: przy założonej wartości , odpowiednio niski poziom błędu wartości całki osiągniemy zwiększając liczbę węzłów całkowania.
¯ ¯
¯ ¯
¯ X
ni=1
e
i¯ ¯
¯ ¯
¯ · X
ni=1
je
ij · "
b ¡ a X
ni=1
(x
i¡ x
i¡1) = "
¯ ¯
¯ ¯
¯ Z
ba
f (x)dx ¡ X
ni=1
S
i¯ ¯
¯ ¯
¯ · "
16 Formuła sumacyjna Eulera-Maclaurina
Jest metodą ekstrapolacyjną (można z niej uzyskać np. metodę Romberga)
Dla funkcji
gdzie: współczynniki B2l oraz B2m+2 są liczbami Bernoulliego.
Dowód – Stoer, Burilsch „Introduction to ...”
Liczby te wyznacza się korzystając z wielomianów Bernouliego – to wartości wielomianu dla x=0
B
k+10(x) = (k + 1)B
k(x) B
0(x) = 1; B
1(x) = x ¡ 1
2 ; B
2(x) = x
2¡ x + 1 6 B
3(x) = x
3¡ 3
2 x
2+ 1
2 x; B
4(x) = x
4¡ 2x
3+ x
2¡ 1 30 B
k= B
k(0) ) B
2= 1
6 ; B
4= ¡ 1
30 ; B
6= 1
42 ; B
8= ¡ 1
30 ; : : : f (x) 2 C
2m+2; x 2 [0; 1]
Z
10
f (x)dx = f (0)
2 + f (1) 2 +
X
m l=1B
2l(2l)! (f
(2l¡1)(0) ¡ f
(2l¡1)(1))
¡ B
2m+2(2m + 2)! g
(2m+2)(»); 0 < » < 1
17 Zastępując funkcję g(x) jej wartościami określonymi na siatce
równoodległych węzłów
W powyższym wzorze rozpoznajemy wzór złożony trapezów. Po przegrupowaniu wyrazów dostajemy związek formuły Eulera- Maclaurina z kwadraturą:
h = b ¡ a N x
i= a + ih
i = 0; 1; : : : ; N Z
xN0
f (x)dx =
X
N i=1Z
xixi¡1
f (x)dx = f (x
0)
2 + f (x
1) + : : : + f (x
N¡1) + f (x
N) 2 +
X
m l=1h
2lB
2l(2l)! (f
(2l¡1)(x
0) ¡ f
(2l¡1)(x
N))
¡ h
2m+2B
2m+2(2m + 2)! (b ¡ a)f
(2m+2)(»); x
0< » < x
NS
N= f (x
0)
2 + f (x
0+ h) + : : : + f (x
0+ h(N ¡ 1)) + f (x
0+ hN ) 2
=
Z
xNx0
f (x)dx + X
ml=1
h
2lB
2l(2l)! (f
(2l¡1)(x
0) ¡ f
(2l¡1)(x
N))
¡ h
2m+2B
2m+2(b ¡ a)f
(2m+2)(»); x
0< » < x
N18 Związek formuły E-L z metodą Romberga
Jeśli pochodna f(2m+2) jest ciągła w [a,b] oraz istnieje taka liczba L, że
(czyli pochodna nie posiada osobliwości) to wówczas istnieje także taka liczba Mm+1, że zachodzi:
Sposoby podziału przedziału całkowania:
a) Romberga
b) Burilscha - liczba wykonywanych operacji nie rośnie tak szybko jak w metodzie Romberga
S(h) = ¿
0+ ¿
1h
2+ ¿
2h
4+ : : : + ¿
mh
2m+ ®
m+1(h)h
2m+2¿
k= B
2k(2k)! (f
(2k¡1)(b) ¡ f
(2k¡1)(a)); k = 1; 2; : : : ; m
®
m+1(h) = B
2m+2(2m + 2)! (b ¡ a)f
(2m+2)(»(h)); a < » < b
j®
m+1(h) j · M
m+1¿
0= Z
ba
f (x)dx
h
0= b ¡ a
2
i; i = 0; 1; 2; : : :
h
0= b ¡ a; h
1= h
02 ; h
2= h
03 ; : : : ; h
ih
i¡22 ; i = 3; 4; : : :
S
ik= S
i;k¡1+ S
i;k¡1¡ S
i¡1;k¡1h
hi¡k hii
2jf
(2m+2)(x) j · L; x 2 [a; b] ¡ 1
S
m;m¼ ¿
019 Wzór na S(h) jest rozwinięciem asymptotycznym w h jeśli współczynniki
τk k ≤ m nie zależą od h. Jeśli m → ∞ wówczas prawa strona w formule E-M staje się szeregiem nieskończonym
Uwaga: dla h>0 nieskończony szereg jest rozbieżny, ale dla m skończonego (małe) wzór pracuje dobrze, tj. zwiększajac m minimalizujemy wszystkie wyrazy
poza τ0 (czyli poszukiwaną wartością całki).
Przykład. Obliczyć wartość całki
¿
0+ ¿
1h
2+ ¿
2h
4+ : : :
I = Z
10
t
5dt h
0= 1; h
1= 1
2 ; 1 4
S
00= 0:500000 S
10= 0:265625 S
20= 0:192383
S
11= 0:187500 S
21= 0:167969
S
22= 0:166667(= 1=6)
20 Formuła Eulera-Maclaurina (met. Romberga) bazuje na
wielomianowej interpolacji funkcji podcałkowej. Okazuje się że znacznie lepszym przybliżeniem są ilorazy wielomianowe (funkcje wymierne).
Definicja funkcji Sik następująca
z warunkami
Także wzór rekurencyjny ulega modyfikacji
S
ik(h) = p
0+ p
1h
2+ : : : + p
¹h
2¹q
0+ q
1h
2+ : : : + q
ºh
2º¹ + º = k; ¹ = º _ ¹ = º ¡ 1
S
ik= S
i;k¡1+ S
i;k¡1¡ S
i¡1;k¡1³
hi¡khi
´
2³
1 ¡
SSi;k¡1i;k¡1¡S¡Si¡1;k¡1i¡1;k¡2´
¡ 1 1 · k · i · m
T
i;¡1= 0; i = 0; 1; : : : ; m ¡ 1
21 Kwadratury Gaussa
Nadal rozpatrujemy kwadratury typu:
ale nieco zmienimy metodologię postępowania.
Ustalamy funkcję wagową p(x) oraz liczbę węzłów N. Szukamy:
a) położenia węzłów b) współczynników Ak
tak aby rząd kwadratury był jak najwyższy.
Kwadratura tego typu nosi nazwę kwadratury Gaussa. Do wyznaczenia kwadratur Gaussa używa się wielomianów ortogonalnych.
Ciąg wielomianów
Nazywamy ortogonalnymi w przedziale [a,b] jeśli zachodzi pomiędzy nimi związek:
S(f ) = X
N k=0A
kf (x
k)
A
k= Z
ba
p(x)©
k(x)dx
(P
n(x)) = P
0(x); P
1(x); : : : ; P
N(x)
(P
r; P
s) = Z
ba
p(x)P
r(x)P
s(x)dx = 0 r 6= s
Tw.1. Wielomiany ortogonalne mają tylko pierwiastki rzeczywiste, leżące w przedziale [a,b].
Tw.2. Nie istnieje kwadratura Gaussa rzędu wyższego niż 2(N+1). Kwadratura Gaussa jest rzędu 2(N+1) wtedy i tytlko wtedy, gdy węzły xk są pierwiastkami wielomianu PN+1(x).
Tw. 3. Wszystkie współczynniki Ak w kwadraturach Gaussa są dodatnie.
Metoda kwadratur Gaussa jest zbieżna do każdej funkcji ciągłej w [a,b]. Kwadratury te są dokładne dla wielomianów stopnia 2N+1.
Kwadratura dla przedziału skończonego (Gaussa-Legendre'a).
Dla tego typu kwadratury przyjmujemy:
W tym przedziale ciąg wielomianów ortogonalnych tworzą wielomiany Legendre'a
p(x) = 1
[a; b] = [ ¡1; 1]
P
n(x) = 1 2
n¢ n!
d
ndx
n(x
2¡ 1)
n22 Współczynniki Ak:
Błąd kwadratury:
Węzły xk stanowią pierwiastki wielomianu PN+1(x).
(jak je znaleźć? => metody poszukiwania zer wielomianów)
Dla kwadratur niskiego rzędu węzły i współczynniki Ak są stablicowane. Aby zastosować wzory z przedziału [-1,1] w przedziale [a,b] należy dokonać transformacji liniowej zmiennej niezależnej:
P
0(x) = 1 P
1(x) = x
P
2(x) = 3x
2¡ 1 2
P
3(x) = 5x
3¡ 3x
22
A
k= ¡ 2
(N + 2)P
N +2(x
k)P
N +10(x
k)
E(f ) = 2
2N +3((N + 1)!)
4(2N + 3)((2N + 2)!)
3f
(2N +3)(»)
¡1 < » < 1
t = a + b
2 + b ¡ a 2 x
g(x) = f
µ a + b
2 + b ¡ a 2 x
¶ x 2 [¡1; 1]; t 2 [a; b]
Z
ba
f (t)dt = b ¡ a 2
Z
1¡1
g(x)dx
23 W praktyce nie używa się kwadratur wysokiego
rzędu. O wiele lepszym rozwiązaniem jest
zastosowanie kwadratur złożonych tj. kwadratur niskiego rzędu w każdym podprzedziale a
wyniki sumuje się.
N k xk Ak
1 0, 1 (-/+)0.577350 1
2 0, 2 1
(-/+)0.774597 0
5/9 8/9 3 0, 3
1, 2
(-/+)0.861136 (-/+)0.339981
0.347855 0.652145
4
0,4 1, 3 2
(-/+)0.906180 (-/+)0.538469
0
0.236927 0.478629 0.568889
Z
ba
f (t)dt ¼ S(f) = b ¡ a 2
X
N k=0A
kf (t
k)
t
k= a + b
2 + b ¡ a 2 x
kKwadratury dla przedziału jedno- i obustronnie nieskończonego
Kwadratura Gaussa-Laguerre'a
Ciąg wielomianów ortogonalnych stanowią wielomiany Laguerre'a:
[a; b] = [0; 1) p(x) = e
¡xL
n(x) = ( ¡1)
ne
xd
ndx
n(x
ne
¡x) L
0(x) = 1
L
1(x) = 1 ¡ x
L
2(x) = x
2¡ 4x + 2 2
L
3(x) = ¡x
3+ 9x
2¡ 18x + 6
6
24 Węzły xk są pierwiastkami wielomianu LN+1(x).
Wzór całkowania:
Kwadratura Gaussa-Hermite'a
A
k= ((N + 1)!)
2L
0N +1(x
k)L
N +2(x
k)
E(f ) = ((N + 1)!)
2(2N + 2)! f
(2N +2)(´)
´ 2 (0; 1)
Z
10
e
¡xf (x)dx ¼ S(f) = X
N k=0A
kf (x
k)
p(x) = e
¡x2(a; b) = ( ¡1; 1)
Ciąg wielomianów ortogonalnych stanowią wielomiany Hermite'a
H
n(x) = ( ¡1)
ne
x2d
ndx
ne
¡x2H
0(x) = 1 H
1(x) = 2x
H
2(x) = 4x
2¡ 2
H
3(x) = 8x
3¡ 12x
25 xk są zerami wielomianu HN+1
Wzór przybliżonego całkowania:
A
k= 2
N +2(N + 1)!
H
N +10(x
k)H
N +2(x
k)
E(f ) = (N + 1)! p
¼
2
N +1(2N + 2)! f
(2N +2)(´)
´ 2 (¡1; 1)
Z
+1¡1
e
¡x2f (x)dx ¼ S(f) = X
N k=0A
kf (x
k)
Uwagi końcowe:
1) Kwadratury Gaussa są dokładniejsze od kwadratur Newtona-Cotesa przy uwzględnieniu tej samej liczby węzłów
2) Kwadratury Gaussa mają rząd r=2N+2 dla (N+1) węzłów, podczas gdy kwadratury NC osiągają ten rząd dla (2N+1) węzłów
3) Po ustaleniu rzędu kwadratury stosuje się wzory złożone dla coraz mniejszego kroku całkowania do momentu braku zmian w kolejnym przybliżeniu 4) Całkowanie stablicowanej funkcji podcałkowej
lepiej wykonać przy użyciu kwadratur Newtona- Cotes'a (użycie kwadratur Gaussa może wymagać dodatkowej interpolacji)
26 Całkowanie funkcji wielu zmiennych
Przy całkowaniu funkcji wielu zmiennych pojawiają się problemy:
1) Konstrukcja wielomianów interpolacyjnych jest możliwa tylko dla odpowiednio położonych węzłów i regularnych obszarów całkowania
2) Czas obliczeń rośnie bardzo szybko wraz z liczbą zmiennych.
W praktyce liczba zmiennych nie przekracza 4.
Zakładamy, że obszar całkowania można opisać układem nierówności:
Szukamy wartości całki wielokrotnej:
½ R
MI(f ) = Z
: : : Z
| {z }
f (x
1; x
2; : : : ; x
M)dx
1: : : dx
Ma
1· x
1· b
1a
2(x
1) · x
2· b
2(x
1) : : : : : : : : : : : : : : : : : : : : : : : :
a
M(x
1; x
1; : : : ; x
M¡1) · x
M· b
M(x
1; x
2; : : : ; x
M¡1)
27 Wartość całki wielokrotnej oblicza się poprzez M-krotne zastosowanie
kwadratur jednowymiarowych.
Przykład dla dwóch wymiarów.
Po złożeniu obu kwadratur otrzymujemy:
I(f ) =
Z
b1a1
dx
1Z
b2(x1)a2(x1)
dx
2: : :
Z
bM(x1;x2;:::;xM¡1)aM(x1;x2;:::;xM¡1)
f (x
1; x
2; : : : ; x
M)dx
MI(f ) =
Z
b1a1
g(x
1)dx
1g(x
1) =
Z
b2a2
f (x
1; x
2)dx
2I
N1(g) =
N1
X
n=0
A
ng(x
1;n) g(x
1;n) ¼ I
N2;n(f
n) =
N
X
2;nº=0
B
º;nf (x
1;n; x
2;º)
I(f ) = Z Z
f (x
1; x
2)dx
1dx
2=
N1
X
n=0
N
X
2;nº=0
B
º;nf (x
1;n; x
2;º) + R
N1(g) +
+
N
X
2;nA R (f )
28 gdzie: -reszta kwadratury
-reszta kwadratury
Uwagi:
1) Przedział całkowania po zmiennej x2 może się zmieniać wraz z wartością x1 2) Liczba węzłów kwadratur może być różna dla każdego węzła x1,n 3) Liczba użytych węzłów
Jeśli liczba w każdej kwadraturze byłaby jednakowa i równa (N+1) wówczas obliczenie wartości całki w M wymiarowej przestrzeni wiązałoby się z wykonaniem (N+1)M obliczeń.
Przykład.
Jeśli N=1 i M=10 wówczas (N+1)M=(1+1)10=1048576
Przy dużej liczbie wymiarów (M>4) lepiej jest posługiwać się znacznie wydajniejszą metodą Monte Carlo.
N1
X
n=0