Metody Numeryczne Wykład 9 Kwadratury Na poczatku
Transkrypt
Metody Numeryczne Wykład 9 Kwadratury Na poczatku
Metody Numeryczne Wykład 9 Kwadratury Na pocza̧tku zdefiniujemy pojȩcie kwadratury K . Kwadratura̧ K oparta̧ na wȩzłach xj nazywamy K= n X Z aj f (xj ) ≈ b f (x)dx a j=0 Współczynniki aj nazywamy wagami kwadratury. Podstawowe kwadratury tzw. kwadratury Newtona-Cotesa oparte sa̧ na wȩzłach wielomianu interpolacyjnego Lagrange pn (x) = n X f (xj )Lj (x) j=0 gdzie funkcje ( porównaj wykłady 4-5 ) Lj (x) = (x − x0 )(x − x1 ) . . . (x − xj−1 )(x − xj+1 ) . . . (x − xn ) . (xj − x0 )(xj − x1 ) . . . (xj − xj−1 )(xj − xj+1 ) . . . (xj − xn ) tworza̧ tzw. bazȩ Lagrange Lj (xi ) = 0 i 6= j, 1 i = j. Sta̧d Z b b Z f (x)dx ≈ a pn (x)dx = a = Z bX n a n X Z f (xj ) f (xj )Lj (x)dx j=0 b Lj (x)dx. a j=0 Przykład 1 Kłada̧c n = 1 i interpoluja̧c funkcjȩ f w wȩzłach x0 = a, x1 = b, otrzymujemy L0 (x) = x−b x−a , L1 (x) = . a−b b−a 1 Z b b−a x−b dx = , a−b 2 b b−a x−a dx = . b−a 2 a0 = a Z a1 = a prosta̧ kwadraturȩ trapezów: Z b f (x)dx ≈ a b−a [f (a) + f (b)] . 2 Przykład 2 Kłada̧c n = 2, x0 = a, x1 = (parabol) Z b a b+a , 2 x2 = b, otrzymujemy prosta̧ kwadraturȩ Simpsona b−a b+a f (a) + 4f ( ) + f (b) . f (x)dx ≈ 6 2 Kwadratury złożone Napiszemy w OCTAVE skrypt funkcyjny o nazwie trapez.m obliczaja̧cy całki danych funkcji na przykład f (x) = ex , g(x) = sin2πx, h(x) = x1/3 , na przedziale [a, b] = [0, 1] złożona̧ kwadratura̧ trapezów Z xi (f (xi−1 ) + f (xi ) f (x)dx ≈ h , 2 xi−1 gdzie h = (b − a)/N jest długościa̧ kroku , N - ilościa̧ równych podziałów przedziału całkowania a b. Sumuja̧c pola trapezów w każdym w przedziale [xi−1 , xi ] i wykorzystuja̧c własność addytywności całki oznaczonej - wzór na złożona̧ kwadraturȩ trapezów można zapisać w postaci ! Z b N −1 f (a) + f (b) X f (x)dx ≈ h + f (a + jh) 2 a j=1 Program OCTAVE trapez.m - zała̧cznik 1 do wykładu. 2 Sumuja̧c zaś proste kwadratury Simpsona w każdym z przedziałów [xi , xi+1 ], otrzymujemy złożona̧ kwadraturȩ Simpsona Z b f (x)dx ≈ a h (f0 + 4f1 + 2f2 + 4f3 + 2f4 + ... + 2fn−2 + 4fN −1 + fN ) 3 gdzie fi = f (xi ) = f (a + ih), h = b−a . N Napiszemy prosty skypt funkcyjny w OCTAVE o nazwie it simpson.m obliczaja̧cy całkȩ oznaczona̧ złożona̧ kwadratura̧ Simpsona. (Program simpson.m zał¸acznik 2 ) Kwadratury Gaussa Kwadraturami Gaussa nazywamy kwadratury postaci Z 1 f (t)dt = −1 n X wi f (ti ) i=1 gdzie wagi kwadratury wi i wȩzły ti sa̧ tak dobrane,że kwadratura jest dokładna dla wszystkich wielomianów f (t) stopnia 2n-1 i istnieje wielomian stopnia 2n+2 dla którego kwadratura nie jest dokładna. Przykład 2 3 Jeśli R 1 f(t) stanowi bazȩ potȩgowa̧ {1, t, t , t } ( patrz wykłady 4-5 ), to 1dt = 1 − (−1) = 2 = w1 + w2 ; R−1 1 tdt = 1/2 − 1/2 = 0 = w1 t1 + w2 t2 ; R−1 1 2 t dt = 1/3 − (−1/3) = 2/3 = w1 t21 + w2 t22 ; R−1 1 3 t dt = 1/4 − 1/4 = 0 = w1 t31 + w2 t32 ; −1 Rozwia̧zaniem układu sa̧ w1 = w2 = 1 i t1 = − √13 , t2 = √13 . Sta̧d otrzymujemy dwupunktowa̧ kwadraturȩ Gaussa Z 1 f (t)dt = f −1 1 −√ 3 +f 1 √ 3 . Do obliczenia całki w dowolnym przedziale [a, b] - dokonujemy liniowego ptrzekształcenia x = mt + c przedziału [a, b] na przedział [-1, 1] 3 x= b−a 2 t+ b+a 2 . Wówczas Z a b b−a f (x)dx = 2 Z 1 f −1 b−a b+a t+ 2 2 dt Napiszemy w OCTAVE skrypt o nazwie gaussint.m obliczaja̧cy dowolna̧ całkȩ oznaczona̧ kwadratura̧ Gaussa. Zała̧cznik 3 do wykładu. Program OCTAVE posiada instrukcjȩ wewnȩtrzna̧ o nazwie quad.m - numerycznego całkowania funkcji jednej zmiennej. Sposób wywołania tej instrukcji jest nastȩpuja̧cy: [v, ier, nf un, err] = quad(f, a, b, tol, sing) gdzie f - jest nazwa̧ funkcji najcześciej zapisywana w odzielnym m-file; a, b - granica̧ dolna̧ i górna̧ całkowania; tol - opcjonalny argument dokładności obliczania całki - jest to wektor dwuelementowy, którego pierwszy element oznacza bład bezwzglȩdny , drugi - bła̧d wzgłȩdny obliczeń sing - opcjonalny argument - wektor przedziału, w którym obliczana cal ka jest zbieżna (singular) ( gł’ownie ma zastosowanie dla dla całek niewłaściwych; Otrzymujemy po wywołaniu instrukcji ENTER v - wartość całki; ier - wskaźnik błȩdu obliczeń, na przykład liczba 0 - obliczenie całki dokładne ; nfun - wskaźnik ilości obliczeń numerycznych funkcji, do otrzymania wyniku; err - bła̧d obliczenia całki Na przykład [v, ier, nf un, err] = quad(0 exp0 , −1, 1, [1.e − 3 1.e − 3], [1 0]) + EN T ER v = 2.3504 ier = 0 nfun = 63 err = 2.6095e-14 » Na tym kończymy przegla̧d najważniejszych kwadratur numerycznych, choć autor wykładu zdaje sobie sprawȩ, że nie przedstawił takich zagadnień jak dokładność i zbieżność 4 kwadratur numerycznych a także kwadratur Romberga. Wyszedł bowiem z założenia, że w praktyce inżynierskiej przedstawione powyżej kwadratury sa̧ wystarczaja̧ce. 5