całkowanie numeryczne
Transkrypt
całkowanie numeryczne
Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa CAŁKOWANIE NUMERYCZNE INFORMATYKA Transport, studia niestacjonarne I stopnia, semestr I rok akademicki 2012/2013 Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko INFORMATYKA CAŁKOWANIE NUMERYCZNE Wzory sumacyjne Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Kiedy stosujemy całkowanie numeryczne? W przypadkach elementarnych obliczanie wartości całki oznaczonej odbywa się na podstawie wzoru Newtona-Leibnitza Zb f (x) dx = F (b) − F (a) I (f ) = a Powyższy wzór możemy stosować wtedy, gdy znana jest tzw. funkcja pierwotna F (x) spełniająca związek: dF (x) = f (x) dx Jeśli wyznaczenie funkcji pierwotnej jest bardzo trudne lub niemożliwe i/lub funkcja podcałkowa f (x) zadana jest w postaci tablicy, to możliwe jest stosowanie całkowania numerycznego. INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Na czym polega numeryczne całkowanie? Gdy przedział całkowania jest skończony, wówczas numeryczne całkowanie polega na zastąpieniu funkcji podcałkowej f (x) odpowiednim wielomianem interpolacyjnym lub aproksymacyjnym ϕ(x) zbudowanym na zbiorze n + 1 węzłów o współrzędnych xi , i = 0, 1, 2, . . . , n . Wymaga to wówczas całkowania jedynie prostych funkcji bazowych z wykorzystaniem wzoru na I (f ). W dalszym ciągu omówione zostaną najprostsze metody całkowania numerycznego wykorzystujące interpolację (aproksymację) funkcji za pomocą wielomianów algebraicznych. Podstawiając w miejsce funkcji podcałkowej f (x) wielomian algebraiczny ϕ(x) = f0 N0 (x) + f1 N1 (x) + · · · + fn Nn (x) otrzymamy tzw. wzór kwadraturowy. INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Kwadratura całkowania Wzorem kwadraturowym albo krócej kwadraturą nazywamy: Zb Zb f (x) dx ≈ I (f ) = a ϕ(x) dx = n X i=0 a Zb f (xi ) Ni (x) dx = a n X wi f (xi ) = S(f ) i=0 w którym Zb wi = Ni (x) dx, i = 0, 1, 2, . . . , n a są tzw. współczynnikami wagowymi (wagami). Wartość wi określa wielkość udziału rzędnej fi ≡ f (xi ) w wartości całej sumy S(f ) . Dokładność kwadratury S(f ) jest tym większa, im mniejsza jest różnica I (f ) − S(f ) nazywana błędem kwadratury. INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Rząd kwadratury Najczęściej stosowaną miarą dokładności jest tzw. rząd kwadratury. Kwadratura S(f ) jest rzędu r , jeśli dla wszystkich wielomianów W (x) stopnia mniejszego od r jest I (W ) = S(W ) oraz jeśli istnieje taki wielomian W (x) stopnia r dla którego I (W ) 6= S(W ) . Można wykazć, że kwadratury interpolacyjne zbudowane na n + 1 węzłach są rzędu co najmniej n + 1 . INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Kwadratury dla węzłów równoodległych Najprostszymi kwadraturami interpolacyjnymi są kwadratury zbudowane na węzłach równoodległych, o danych współrzędnych xi = x0 + i · h, i = 0, 1, 2, . . . , n . Niewiadome współczynniki wi są obliczane z układu n + 1 liniowych równań algebraicznych, które otrzymamy na podstawie kwadratury zastosowanej dla wielomianów Wk (x) = x k , k = 0, 1, 2, . . . , n, dla których I (Wk ) = S(Wk ) . Zb I (Wk ) = x k dx = n X wi xik = S(Wk ), k = 0, 1, 2, . . . , n i=0 a skąd n X i=0 wi xik = 1 b k+1 − ak+1 k +1 INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Kwadratury interpolacyjne – układ równań 1 w0 x0 w 0 x02 w0 x0n w0 1 w1 · · · + 1 wn x1 w1 · · · + xn wn x12 w1 · · · + xn2 wn .................... + x1n w1 · · · + xnn wn + + + = = = p0 p1 p2 = pn Powyższy układ równań można zapisać w postaci: b−a 1 1 1 ... 1 w0 1 (b 2 − a2 ) x0 x1 x2 . . . xn w1 2 2 1 3 3 x0 x12 x22 . . . xn2 w2 = 3 (b − a ) . .......... . . . . . . . . . . 1 (n+1) x0n x1n xn2 . . . xnn wn − a(n+1) (n+1) b Rozwiązaniem tego układu algebraicznych równań liniowych są wartości wag wi . INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Wzór prostokątów Wzór prostokątów Najprostszym sposobem obliczania przybliżonej wartości S(f ) całki oznaczonej I (f ) jest zastosowanie aproksymacji funkcji f (x) za pomocą wielomianu ϕ(x) = f (x0 ) = const. Po podstawieniu do wzoru Zb Zb f (x) dx ≈ a ϕ(x) dx a otrzymujemy Zb Zb f (x) dx ≈ I (f ) = a f (x0 ) dx = (b − a) · f (x0 ) = S(f ). a przy czym w0 = b − a . INFORMATYKA CAŁKOWANIE NUMERYCZNE (1) Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzór prostokątów Wybór położenia węzła dla wzoru prostokątów W zależności od wyboru położenia węzła x0 otrzymujemy wzory: (a) lewych prostokątów, gdy x0 = a (b) środkowych prostokątów, gdy x0 = (a + b)/2 (c) prawych prostokątów, gdy x0 = b INFORMATYKA CAŁKOWANIE NUMERYCZNE Wzory sumacyjne Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Wzór trapezów Wzór trapezów Jeśli do interpolacji funkcji f (x) zastosujemy interpolację za pomocą wielomianu liniowego zbudowanego na bazie Lagrange’a, to otrzymamy wzór kwadraturowy, nazywany wzorem trapezów. Zb f (x) dx ≈ I (f ) = a Zb h Zb h i f0 L10 (x) + f1 L11 (x) dx = a (2) i x −b x −a i b−a h + f (b) = f (a) + f (b) = S(f ). f (a) a−b b−a 2 a INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Wzór trapezów Wagi dla wzoru trapezów Wagi wi , i = 0, 1 występujące we wzorze trapezów można wyznaczyć rozwiązując układ równań: b−a 1 1 w0 = 1 2 2 a b w1 2 (b − a ) skąd w0 = w1 = 21 (b − a) . INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Wzór Simpsona Wzór Simpsona Zastosowanie kwadratowej interpolacji Lagrange’a prowadzi do wzoru kwadraturowego: Zb f (x) dx ≈ a Zb h i f0 L0 + f1 L1 + f2 L2 dx = a Zb h (x − c)(x − b) (x − a)(x − b) (x − a)(x − c) i f0 + f1 + f2 dx (a − c)(a − b) (c − a)(c − b) (b − a)(b − c) a Ostatecznie kwadratura (wzór) Simpsona przyjmuje postać: Zb f (x) dx = 1 h f0 + 4 f1 + f2 = s(f ), 3 h= a INFORMATYKA CAŁKOWANIE NUMERYCZNE b−a 2 (3) Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Wzór Simpsona Wagi dla wzoru Simpsona Dla 3 węzłów równoodległych, tzn. gdy c = 0.5 · (a + b) współczynniki wagowe wi , i = 0, 1, 2 we wzorze Simpsona oblicza się z układu równań: b−a 1 1 1 w0 a c b w1 = 12 (b 2 − a2 ) 1 2 2 3 3 a c b2 w2 3 (b − a ) Po rozwiązaniu tego układu otrzymamy w0 = w2 = b−a , 6 INFORMATYKA w1 = 2 · (b − a) . 3 CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Wzór Simpsona Wzór Simpsona Zb f (x) dx = 1 h f0 + 4 f1 + f2 = s(f ), 3 h= b−a 2 a Uwaga: Wzór Simpsona jest jest rzędu czwartego, co oznacza, że jest dokładny nie tylko dla wielomianów stopnia drugiego, lecz także dla wielomianów stopnia trzeciego tzn. I (W3 ) = S(W3 ) oraz I (W4 ) 6= S(W4 ) . INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Wzory Newtona-Cotesa Wzory Newtona-Cotesa Zastosowanie wielomianów ϕ(x) coraz to wyższych stopni we wzorze kwadraturowym prowadzi do tzw. wzorów Newtona-Cotesa. xZn =b f (x) dx ≈ S(Wk ) = x0 =a n X wi f (xi ) = S(f ) i=0 Dla wielomianów ϕ(x) kolejnych stopni n wartości współczynników wagowych wi otrzymuje się z rozwiązania układu równań. INFORMATYKA CAŁKOWANIE NUMERYCZNE (4) Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Wzory Newtona-Cotesa Zestawienie współczynników wagowych Wzory Newtona-Cotesa W poniższej tablicy są zestawione wartości współczynników wagowych wi : n 1 w00 1 w10 w20 w30 w40 2 1 4 1 3 1 3 3 1 4 7 32 12 32 7 5 19 75 50 50 75 w50 m 2 6 8 90 19 228 Wartości wag występujące we wzorze (4) obliczane są według wzoru wi = wi0 m Uwaga: Kwadratury Newtona-Cotesa uzyskane przy zastosowaniu wielomianów interpolujących ϕ(x) stopni n > 8 ujawniają cechy narastajacej niestabilności kwadratury interpolacyjnej (3). INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Wzór Gaussa Do podwyższenia dokładność wzorów kwadraturowych można zastosować propozycję Gaussa, polegajaca na optymalizacji położenia n węzłów interpolacyjnych oraz doborze odpowiednich wartości współczynników wagowych. Można przyjąć, że we wzorze: Zb f (x) dx ≈ n X wi f (xi ) (5) i=0 a niewiadomymi są nie tylko współczynniki wagowe wi ale także współrzędne węzłów xi . Zatem równanie (5) zawiera 2(n + 1) niewiadomych. Kwadratura będzie dokładna gdy f (x) będzie wielomianem co najwyżej stopnia (2n + 1). Wszystkie niewiadome można wyznaczyć z układu 2n + 2 równań dla n + 1 wag wi oraz n + 1 węzłów xi , i = 0, 1, · · · , n. INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Postać układu równań dla kwadratury Gaussa Dla funkcji podcałkowej f (x), która przyjmuje postać wielomianu zgodnie ze wzorem: Zb x k dx = a n X wi xik , k = 0, 1, 2, · · · , 2n + 1 i=0 otrzymujemy układ równań: n X i=0 wi xik = 1 k+1 b − ak+1 , k = 0, 1, 2, · · · , 2n + 1 k +1 (6) który jest liniowy ze względu na wagi i nieliniowy ze względu na węzły. INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Wzór kwadraturowy Gaussa w przedziale wzorcowym Odwzorowanie przedziału [a, b] na osi x na unormowany przedział [−1, 1] na pomocniczej osi ξ i odwzorowanie do niego odwrotne można opisać za pomocą wzorów: a+b b−a 2x − a − b ⇔ x= + ξ (7) ξ= b−a 2 2 co daje wygodny sposób zapisu całki: Zb Z1 b−a a+b b−a f (x) dx = f( + ξ) dξ 2 2 2 a −1 oraz wzoru kwadraturowego Gaussa: Zb n a + b b − a b−a X f (x) dx ≈ w̄i f + ξi . 2 2 2 a i=0 INFORMATYKA CAŁKOWANIE NUMERYCZNE (8) Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Obliczanie współczynników dla wzoru Gaussa Dla tej postaci wzoru wartości w̄i , ξi można obliczyć z układu równań Z1 Przykład: I = R1 −1 ξ k dξ = n X w̄i ξik , k = 0, 1, 2, . . . , 2n + 1. (9) i=0 α1 + α2 ξ + α3 ξ 2 + α4 ξ 3 dξ −1 Wynik ścisły: I = 2α1 + 32 α3 = 2α1 + 0α2 + 23 α3 + 0α4 I = w0 f (ξ0 ) + w0 f (ξ0 ) = = w0 α1 + α2 ξ0 + α3 ξ02 + α4 ξ03 + w1 α1 + α2 ξ1 + α3 ξ12 + α4 ξ13 = = (w0 + w1 )α1 + (w0 ξ0 + w1 ξ1 )α2 + (w0 ξ02 + w1 ξ12 )α3 + (w0 ξ03 + w1 ξ13 )α4 w0 + w1 = 2 w 0 ξ0 + w 1 ξ1 = 0 ⇒ w0 = w1 = 1 w0 ξ02 + w1 ξ12 = 23 w0 ξ03 + w1 ξ13 = 0 INFORMATYKA √ ξ0,1 = ±1/ 3 CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Tablica węzłów i wag Gaussa n 0 1 2 3 ξi , i = 0, · · · , n ξ0 = 0 √ ξ0 = +1/√3 ξ1 = −1/ √ 3 ξ0 = + 0.6 ξ1 = 0 √ ξ2 = − 0.6 ξ0 = +0.86113631 ξ1 = +0.33998104 ξ2 = −0.33998104 ξ3 = −0.86113631 w̄i , i = 0, · · · , n w̄0 = 2 w̄0 = 1 w̄1 = 1 w̄0 = 5/9 w̄1 = 8/9 w̄2 = 5/9 w̄0 = 0.34785485 w̄1 = 0.65214515 w̄2 = 0.65214515 w̄3 = 0.34785485 Uwaga: Niezależnie od postaci funkcji f (x) 10 wartości wag wi i węzłów Gaussa ξi są zawsze takie same, 20 zależą tylko od liczby węzłów interpolacji n. INFORMATYKA CAŁKOWANIE NUMERYCZNE Wzory sumacyjne Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Przykład Zastosowanie wzorów kwadraturowych dla 1 przedziału Obliczyć S(f ) = Rb f (x)dx gdy f (x) = 4 · x 3 + 5 · x 2 + 1 dla a a = −1.0, b = 1.0, co oznacza, że h = b − a = 2, . Rozwiązanie: Przykładowy tok postępowania – dwupunktowa metoda Gaussa (n = 1): Zb b−a f (x)dx = 2 Z1 1 f (ξ) dξ ≈ −1 a b−a X wi f (ξi ) = 2 i=0 b − ah a + b b − a f + 0.5773502692 + 2 2 2 f i a+b b−a − 0.5773502692 = 5.33333 2 2 INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Przykład Wyniki dla prezentowanych wzorów Wartość dokładna I (f ) = Wzór prostokątów: lewych środkowych prawych Postać kwadratury trapezów Simpsona Gaussa dla n = 1 5.3333 Wartość S(f ) = h · f (a) S(f ) = h · f ( a+b 2 ) S(f ) = h · f (b) = 4 = 2 = 20 S(f ) = h 2 = 12 S(f ) = 1h 32 S(f ) = · [f (a) + f (b)] · [f (a) + 4 · f ( a+b 2 ) + f (b)] b−a 2 1 P wi f (ξi ) i=0 INFORMATYKA CAŁKOWANIE NUMERYCZNE = 5.3333 = 5.3333 Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Kwadratury złożone Podział przedziału całkowania na podprzedziały Bardzo skutecznym sposobem podwyższania dokładności całkowania numerycznego jest dokonanie podziału przedziału [a, b] na podprzedziały [aj , bj ], j = 1, 2, . . . , N przy zachowaniu związków: a1 = a, bN = b, bi = ai+1 , i = 1, 2, . . . , N − 1. Można zapisać: bj Zb I (f ) = f (x) dx = a N Z X f (x) dx = I1 (f ) + I2 (f ) + · · · + IN (f ) j=1 a j Każda z całek oznaczonych Ij (f ) , wystepujacych we wzorze różni się od od całek I (f ) tylko wartościami granic całkowania. Do obliczania każdego składnika sumy można posłużyć się dowolnym wzorem kwadraturowym. INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Wzór sumacyjny prostokątów Metoda prostokątów Gdy długości wszystkich podprzedziałów [aj , bj ] są sobie równe czyli bj − aj = H, j = 1, 2 . . . , N, H = b−a N , to możemy określić wzory sumacyjne. Przedział całkowania < a, b > dzielimy na N równych podprzedziałów < x0 , x1 >, < x1 , x2 >, · · · < xn−1 , xn > gdzie H = (b − a)/N. W każdym z nich stosujemy wzór złożony: (a) lewych prostokątów Zb N X f (x)dx ≈ H · f (xj−1 ) = H · f0 + f1 + f2 + · · · + fN−1 a j=1 (b) środkowych (średnich) prostokątów Zb N X xj − xj−1 ) = H · f01 + f12 + f23 + · · · + fN−1 N f (x)dx ≈ H · f( 2 j=1 a xj−1 +xj gdzie fj−1 j = f , j = 1, 2, . . . , N, 2 (c) prawych prostokątów Zb N X f (x)dx ≈ H · f xj ) = H · (f1 + f2 + · · · + fN a j=1 INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzór sumacyjny prostokątów Ilustracja metody prostokątów lewych INFORMATYKA CAŁKOWANIE NUMERYCZNE Wzory sumacyjne Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzór sumacyjny prostokątów Algorytm metody prostokątów 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: funkcja [prl , prp , prs ] = MetodaProstokatow (a, b, N) H = b−a N prl = prp = prs = 0 dla j = 0, 1, . . . N − 1 wykonaj xl = a + j · H, prl = prl + f (xl ) xp = xl + H, prp = prp + f (xp ) x +x prs = prs + f (xs ) xs = l 2 p , koniec dla prl = prl · H, prp = prp · H, prs = prs · H koniec funkcji Wywołanie funkcji: [Le, Pr , Sr ] = MetodaProstokatow (a, b, N) INFORMATYKA CAŁKOWANIE NUMERYCZNE Wzory sumacyjne Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Wzór sumacyjny trapezów Metoda trapezów Zb f (x)dx ≈ N h i f X fN 1 0 H· f (xj−1 + f (xj ) = H · + f1 + f2 + · · · + 2 2 2 j=1 a lub Zb f (x)dx ≈ H · N−1 X 1 1 f0 + fj + fN 2 2 j=1 a INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzór sumacyjny Simpsona Metoda Simpsona Zb f (x)dx ≈ a 1 H · ( f0 + fN ) + 4 ( f1 + f3 + · · · + fN−1 )+ 3 2 (f2 + f4 + · · · + fN−2 ) , przy czym H = (xN − x0 )/N i N musi być liczbą parzystą. INFORMATYKA CAŁKOWANIE NUMERYCZNE Wzory sumacyjne Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Wzory sumacyjne Zastosowanie kwadratury Gaussa Zastosowanie kwadratury Gaussa Zb f (x)dx ≈ lpc N 1 b−a X X wi f (Xi ). · · 2 N j=1 i=0 a gdzie Xi = xj +xj+1 2 Tablica węzłów Gaussa Tablica wag Wywołanie funkcji: + xj+1 −xj 2 · ξi ξ = [ 0.555555555, 0.88888888, 0.555555555 ] w = [ −0.77459667, 0.0, 0.77459667 ] [Ga] = MetodaGaussa(a, b, N, tabWag , tabWez) INFORMATYKA CAŁKOWANIE NUMERYCZNE Wprowadzenie Kwadratury – węzły równoodległe Kwadratury Gaussa Zastosowanie kwadratury Gaussa Przykład – podsumowanie Oblicz Zb S= f (x)dx, gdzie f (x) = 4 · x 4 + 5 · x 3 + 1. a Przyjmij a = −5, b = 5, N = 3. funkcja [y ] = f (x) y = 4 · x4 + 5 · x3 + 1 3: koniec funkcji 1: 2: Metoda prostokątów lewych prostokątów prawych prostokątów średnich trapezów Simpsona Gaussa 3pkt dokładne INFORMATYKA Wynik 6465.761317 10632.427984 3302.181070 8549.094650 5051.152263 5009.999985 5010.000000 CAŁKOWANIE NUMERYCZNE Wzory sumacyjne