równanie trzeciego stopnia
Transkrypt
równanie trzeciego stopnia
Metody Numeryczne i Programowanie Wykład 3. Strona 1 z 27 Wielomianowa aproksymacja i interpolacja (1) Problem 3.1. Dane jest ciśnienie pary nad ciekłym acetonitrylem (CH3CN) w trzech temperaturach: {(T[K], p[kPa]):(268.15, 2.67), (289.05, 8.00), (300.15, 13.33)}. Oszacować ciśnienie pary w temperaturze 280.85 K. Rozwiązanie 14 12 Liniowa interpolacja pomiędzy punktami 1 i 2 p, kPa 10 8 6 4 Prawdziwe ciśnienie pary 2 0 260 270 280 290 300 310 T, K Rysunek 3.0. Zmiany ciśnienia par acetonitrylu od temperatury. y = y1 + ( x − x1 ) y2 − y1 8.00 − 2.67 = 2.67 + (280.85 − 268.15) = 5.91 x2 − x1 289.05 − 268.15 ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 1 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 2 z 27 Wielomianowa aproksymacja i interpolacja (2) Dwa sposoby przetwarzania danych: 1. Aproksymacja. Przybliżone wyrażanie jednej funkcji przez inną, prostszą. 2. Interpolacja. Znajdowanie przybliżonej wartości funkcji w przedziale, jeśli znane są jej wartości na krańcach tego przedziału. ciągła funkcja h interpolująca funkcję f ciągła funkcja f dana w formie dyskretnej ciągła funkcja g aproksymujaca funkcję f a b Rysunek 3.1. Funkcja f dana w formie dyskretnej (nieciągłej) oraz aproksymująca ją funkcja g i interpolująca ją funkcja h. ♦ - węzły interpolacji. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 2 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 3 z 27 Wielomianowa aproksymacja i interpolacja (3) Zadanie aproksymacyjne Zadanie aproksymacyjne polega na znalezieniu w ustalonej klasie funkcji (wielomianowych, wykładniczych, wymiernych, itd.) „przybliżenia” g funkcji f (być może nieznanej), dla której spełnione zostanie odpowiednie kryterium zgodności. O takiej funkcji g mówimy, że aproksymuje lub przybliża funkcję f. Wielomiany algebraiczne: n Pn ( x ) = a 0 + a1 x + a 2 x 2 + K + a n x n = ∑ a i x i , (3.1) i =0 gdzie: n jest liczbą całkowitą dodatnią zwaną stopniem wielomianu oraz a 0 , a1 , a 2 , K a n są współczynnikami wielomianu o wartościach rzeczywistych. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 3 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 4 z 27 Wielomianowa aproksymacja i interpolacja (4) Twierdzenie 3.1. Twierdzenie Weierstrassa o aproksymacji Jeżeli mamy dowolną zdefiniowaną funkcję f, ciągłą na przedziale domkniętym [a, b] oraz daną pewną liczbę ε > 0, to istnieje wielomian P zdefiniowany na przedziale [a, b] taki, że jest on zgodny z tą funkcją z określoną dokładnością ε, co zapisujemy: f (x ) − P(x ) < ε , dla wszystkich x ∈ [a , b] (3.2) ■ f+eps P f f-eps a b Rysunek 3.2. Interpretacja geometryczna Twierdzenia Weierstrassa o aproksymacji. f – dana funkcja; P – wielomian aproksymujący, eps – błąd aproksymacji. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 4 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 5 z 27 Aproksymacja wielomianami Taylora (1) Problem Szukamy wielomianu P zgodnego z zadaną funkcją f w punkcie x0. Co to znaczy „zgodny”? 1. P(x0) = f(x0). 2. Wielomian P będzie w zadanym punkcie zachowywać się dokładnie tak samo jak funkcja czyli: P’(x0) = f’(x0). 3. ... 4. Wielomian P powinien posiadać w punkcie x0 wszystkie pochodne zgodne z odpowiednimi pochodnymi funkcji f. Rozwiązanie Wielomian Taylora n – tego stopnia aproksymujący zadaną funkcję f w punkcie x0: Pn ( x ) = f ( x0 ) + f ′( x0 )( x − x0 ) + f ′′(x0 ) (x − x0 )2 + 2! n ( ( x − x0 ) x − x0 ) (n ) + f ′′′( x0 ) + K + f ( x0 ) = n! 3! k n ( x − x0 ) (k ) . = ∑ f ( x0 ) k! k =0 3 (3.3) Reszta wielomianu Taylora: f ( x ) − Pn ( x ) = Rn ( x ) = f n +1 ( x − x 0 )n +1 (ξ ( x )) . (n + 1)! (3.4) gdzie ξ(x) jest liczbą leżącą pomiędzy x a x0. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 5 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 6 z 27 Aproksymacja wielomianami Taylora (2) Przykład 3.1. Wyznaczyć wielomian Taylora trzeciego – stopnia w punkcie x0 = 0 aproksymujący f ( x ) = (1 + x ) 2 . 1 funkcję 0.1 ∫ (1 + x ) 0 1 2 Korzystając z tej aproksymacji obliczyć: 1.1 oraz dx .Przeprowadzić dyskusję otrzymanych wyników. Rozwiązanie Otrzymamy następujący wielomian Taylora trzeciego stopnia: x2 x3 + f ′′′(0 ) = 2! 3! 1 1 1 3 1 1 1 1 = 1 + x − ⋅ x 2 + ⋅ x3 = 1 + x − x 2 + x3. 2 4 2! 8 3! 2 8 16 P3 ( x ) = f (0 ) + f ′(0 )x + f ′′(0) 1.1 = f (0.1) ≈ P3 (0.1) = 1 + 1 1 1 2 3 ⋅ 0.1 − ⋅ (0.1) + ⋅ (0.1) = 1.0488125 . 2 8 16 15 −7 ⋅ (1 + ξ ) 8 7 16 (0.1)4 ≤ 15 (0.1)4 ⋅ ξmax (1 + ξ )− 8 = R3 (0.1) = ∈ 0 , 0 . 1 [ ] 4! 16 ⋅ 24 0.0005 = ⋅ (1) ≤ 3.91 × 10− 6. 128 − Rzeczywisty błąd bezwzględny otrzymanego oszacowania wynosi 1.0488125 − 1.048088 = 3.7 × 10 −6 . Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 6 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 7 z 27 Aproksymacja wielomianami Taylora (3) Przykład 3.1. cd. 0.1 ∫ (1 + x ) 1 0.1 2 dx = 0 0.1 1 2 1 3⎞ ⎛ 1 ∫0 P3 (x )dx = ∫0 ⎜⎝1 + 2 x − 8 x + 16 x ⎟⎠dx = 0.1 1 1 3 1 4⎤ ⎡ x + x = 0.1024598958. = ⎢ x + x2 − 4 24 64 ⎥⎦ 0 ⎣ 0.1 ∫ R3 (x )dx = 0 0.1 7 15 (1 + ξ )− 2 x 4 dx ≤ 5 ∫ 16 ⋅ 4! 0 128 0.1 (1 + ξ ) ∫ ξmax [ ] 0 −72 ∈ 0 , 0.1 x 4 dx = 0.1 = 5 ⎡ x5 ⎤ −8 ⎢ ⎥ = 7.82 × 10 . 128 ⎣ 5 ⎦ 0 Rzeczywisty błąd bezwzględny wynosi 7.4×10-8. ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 7 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 8 z 27 Aproksymacja wielomianami Taylora (4) Podstawowa wada metody: Całość informacji wykorzystywanej przez wielomian Taylora podawana jest dla jednego punktu x0! - Można je wykorzystać jedynie w bliskim otoczeniu punktu x0. - Konieczna znajomość wszystkich pochodnych. - Niewielkie znaczenie praktyczne. - Wykorzystywane do wyprowadzenia innych metod numerycznych. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 8 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 9 z 27 Interpolacja wielomianami Lagrange’a (1) Wielomian interpolacyjny stopnia pierwszego 14 12 Liniowa interpolacja pomiędzy punktami 1 i 2 p, kPa 10 8 6 4 Prawdziwe ciśnienie pary 2 0 260 270 280 290 300 310 T, K Rysunek 3.0. Zmiany ciśnienia par acetonitrylu od temperatury. Równanie interpolanty liniowej przechodzące dokładnie przez dwa punkty (x0, f(x0)) oraz (x1, f(x1)): P1 ( x ) = (x − x1 ) y + (x − x0 ) y . (x0 − x1 ) 0 (x1 − x0 ) 1 Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP (3.5) Strona 9 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 10 z 27 Interpolacja wielomianami Lagrange’a (2) Wielomian interpolacyjny stopnia pierwszego Dwa człony będące każdy wielomianem stopnia pierwszego: L1,0 ( x ) = ( x − x1 ) , ( x 0 − x1 ) (3.6) L1,1 ( x ) = (x − x0 ) . ( x1 − x 0 ) (3.7) oraz Można sprawdzić przez podstawienie, że kiedy x = x0, to L1,0(x0) = 1 natomiast L1,1(x0) =0 oraz kiedy x = x1, to L1,0(x1) = 0 natomiast L1,1(x1) =1. Konwencja: Ln,i – indeksy: n – stopień wielomianu (w tym przypadku n = 1), i – numer węzła w którym wielomian przyjmuje wartość 1. Liniowy wielomian interpolujący funkcję f: 1 P1 ( x ) = f ( x 0 )L1,0 ( x ) + f ( x1 )L1,1 ( x ) = ∑ f ( x i )L1,i ( x ) . (3.8) i =0 Łatwo sprawdzić przez podstawienie, że wielomian ten w węzłach interpolacji przyjmuje wartości: w punkcie x0 wartość f(x0) oraz w punkcie x1 wartość f(x1). Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 10 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 11 z 27 Interpolacja wielomianami Lagrange’a (3) Wielomian interpolacyjny stopnia drugiego Przechodzący dokładnie przez trzy punkty: (x0, f(x0)), (x1, f(x1)) oraz (x2, f(x2)). Wyznaczyć należy trzy wielomiany stopnia drugiego L2,0 ( x ) = ( x − x1 ) ⋅ ( x − x 2 ) , L (x ) = 1, (x 0 − x1 ) ⋅ (x 0 − x 2 ) 2,0 0 (3.9) L2,1 ( x ) = (x − x 0 ) ⋅ (x − x 2 ) , L (x ) = 1, (x1 − x 0 ) ⋅ (x1 − x 2 ) 2,1 1 (3.10) L2 , 2 ( x ) = ( x − x 0 ) ⋅ ( x − x1 ) , L (x ) = 1. ( x 2 − x 0 ) ⋅ (x 2 − x1 ) 2,2 2 (3.11) oraz Wielomian interpolacyjny stopnia drugiego interpolujący funkcję f: 2 P2 ( x ) = f ( x 0 )L2,0 ( x ) + f ( x1 )L2,1 ( x ) + f ( x1 )L2, 2 ( x ) = ∑ f ( x i )L2,i ( x ) . (3.12) i =0 Łatwo sprawdzić, że wielomian ten w węzłach interpolacji przyjmuje wartości: w punkcie x0 wartość f(x0), w punkcie x1 wartość f(x1) oraz w punkcie x2wartość f(x2). Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 11 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 12 z 27 Interpolacja wielomianami Lagrange’a (4) Wielomian interpolacyjny stopnia n Dla każdego z węzłów interpolacji k = 0, 1, 2, ..., n należy podać wielomian n – tego stopnia Ln,k(x) posiadający takie właściwości, że: Ln , k ( xi ) = 0, Ln , k ( xk ) = 1, dla kazdego i ≠ k , (3.13) dla i = k . Warunek ten spełnia wielomian postaci: (x − x0 )(x − x1 )L(x − xk −1 )(x − xk +1 )L(x − xn ) = (xk − x0 )(xk − x1 )L(xk − xk −1 )(xk − xk +1 )L(xk − xn ) n (x − xi ) . =∏ i = 0 ( xk − xi ) Ln , k ( x ) = (3.15) i≠k n Pn ( x ) = f ( x 0 )Ln ,0 ( x ) + f ( x1 )Ln ,1 ( x ) + K + f ( xn )Ln ,n ( x ) = ∑ f ( x i )Ln ,i ( x i ) . (3.16) i =0 Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 12 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 13 z 27 Interpolacja wielomianami Lagrange’a (5) Wielomian interpolacyjny stopnia n 6 Ln,k(x) 4 2 0 0 2 4 6 8 10 -2 x Rysunek 3.5. Interpretacja geometryczna wielomianu interpolacyjnego Ln,k(x) w postaci danej wzorem (3.15). Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 13 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 14 z 27 Interpolacja wielomianami Lagrange’a (6) Przykład 3.5. Wyznaczyć wielomian interpolacyjny Lagrange’a drugiego stopnia interpolujący funkcję f ( x ) = 1 w węzłach x0 = 2, x1 = 2.5 oraz x2 = 4. Oszacować wartość zadanej funkcji x w punkcie x = 3. Porównać otrzymany wynik z wartością dokładną. Rozwiązanie Najpierw należy wyznaczyć wielomiany L2,0, L2,1 oraz L2,2: L2 , 0 ( x ) = ( x − 2.5)( x − 4 ) = x 2 − 6.5 x + 10 , (2 − 2.5)(2 − 4) L2,1 ( x ) = ( x − 2 )( x − 4 ) = 1 (− 4 x 2 + 24 x − 32) , (2.5 − 2 )(2.5 − 4 ) 3 L2 , 2 ( x ) = ( x − 2 )( x − 2.5) = 1 (x 2 − 4.5 x + 5) . (4 − 2 )(4 − 2.5) 3 Stąd: 2 P2 ( x ) = ∑ f ( xi )L2,i ( x ) = f ( x0 )L2,0 ( x ) + f ( x1 )L2,1 ( x ) + f ( x1 )L2, 2 ( x ) = i =0 = 0.05 x 2 − 0.425 x + 1.15 = (0.05 x − 0.425)x + 1.15. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 14 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 15 z 27 Interpolacja wielomianami Lagrange’a (7) 4 f Zadana funkcja f(x), P(x) 3 Interpolanta 2 P 1 0 0 1 2 3 4 5 6 x Rysunek 3.6. Przebieg funkcji f ( x ) = 1 x oraz wielomianu Lagrange’a drugiego stopnia interpolującego zadana funkcję w punktach x0 = 2, x1 = 2.5 oraz x2 = 4. Przybliżona wartość f (3) ≈ P2 (3) = 0.325 . Błąd bezwzględny f (3) − P2 (3) = 8.333 × 10 −3 . Błąd względny f (3) − P2 (3) f (3) = 2.5 × 10− 2 , co wskazuje, że uzyskane oszacowanie ma dwie cyfry znaczące. ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 15 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 16 z 27 Interpolacja wielomianami Lagrange’a (8) Twierdzenie 3.2. Niech x0, x1, ..., xn będą różnymi liczbami z przedziału domkniętego [a, b] oraz niech dana będzie funkcja ciągłą f ( x ) ∈ C n +1 [a, b] . Wtedy dla każdego x należącego do przedziału domkniętego [a, b], ( x ∈ [a, b] ), istnieje taka liczba ξ ∈ (a, b ) , że f (x ) = P(x ) + (ξ ) ( x − x )( x − x )L ( x − x ) . 0 1 n (n + 1)! f (n +1) (3.17) gdzie P jest wielomianem interpolacyjnym Lagrange’a danym równaniem (3.16) ■ Reszta w interpolacji wielomianami Lagrange’a bardzo podobna do reszty w aproksymacji wielomianami Taylora: f ( x ) − Pn ( x ) = R n ( x ) = (ξ ) ( x − x )n +1 . 0 (n + 1)! f Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP n +1 Strona 16 (3.4) 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 17 z 27 Interpolacja wielomianami Lagrange’a (9) Przykład 3.6 Oszacować długość kroku w interpolacji liniowej z stałym krokiem h, z którym należy stabelaryzować funkcję f ( x ) = e x na przedziale x ∈ [0,1] z dokładnością t = 6 cyfr po przecinku. Rozwiązanie Załóżmy, że mamy takie j, że x j ≤ x ≤ x j +1 . Z równania (3.18) na błąd interpolacji mamy: f (x ) − P(x ) = f (ξ ) (x − x )(x − x ) = j j +1 (2 )! (2 ) f (2 ) 2 (ξ ) x − x j x − x j +1 . Ponieważ krok jest stały, to xj = jh oraz xj+1 = (j+1)h. Stąd: f (x ) − P(x ) ≤ f (2 ) 2 (ξ ) (x − jh )(x − ( j + 1)h ) ≤ 1 max f (2 ) (ξ ) max ( x − jh )( x − ( j + 1)h ) = x j ≤ x ≤ x j +1 ξ 2 ∈[0,1] 1 = max e ξ max ( x − jh )( x − ( j + 1)h ) ≤ 2 ξ ∈[0,1] x j ≤ x ≤ x j +1 1 1 h2 ≤ e max ( x − jh )( x − ( j + 1)h ) ≤ e . 2 x j ≤ x ≤ x j +1 2 4 ≤ Ponieważ chcemy uzyskać 6 cyfr po przecinku dokładnych, to liczymy kolejno: eh 2 8 ≤ 10 − 6 , h 2 ≤ × 10− 6 , h 2 ≤ 2.944 × 10− 6 stąd h ≤ 1.72 × 10−3 . 8 e Jak stąd wynika krok h = 0.001 całkowicie wyczerpuje przyjęte założenia. ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 17 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 18 z 27 Interpolacja funkcjami spline stopnia trzeciego (1) Definicja 3.1. Wielomianowej funkcji sklejanej stopnia trzeciego Dana jest funkcja f określona w przedziale domkniętym [a, b] oraz zbiór punktów (węzłów) xi, i = 0, 1, 2, ..., n takich, że dzielą one przedział [a, b] na n podprzedziałów: a = x0 < x1 < x2 < K < xi −1 < xi < xi −1 < K < xn −1 < xn = b . (3.21) Funkcję S spełniającą warunki: (i) S jest wielomianem interpolacyjnym stopnia trzeciego wyznaczonymi na każdym podprzedziale [xi, xi+1], i = 0, 1, 2, ..., n, co zapisujemy Si. (ii) S w całym przedziale [a, b] ma ciągłą drugą pochodną. nazywamy wielomianową interpolacyjną funkcją sklejaną stopnia trzeciego. ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 18 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 19 z 27 Interpolacja funkcjami spline stopnia trzeciego (2) Konstrukcja wielomianowej funkcji spline stopnia trzeciego Z warunku (i) definicji funkcji spline wynika, że w węzłach zachodzi: S ( xi ) = f ( xi ) dla każdego i = 0,1,K, n . (3.22) Z warunku (ii) definicji wynika ciągłości drugiej pochodnej w punktach sklejania: Si′′( xi +1 ) = Si′′+1 (xi +1 ) dla każdego i = 0,1,K, n − 1 (3.23) oraz ciągłość pierwszej pochodnej w punktach sklejania : S ′j (x j +1 ) = S ′j +1 (x j +1 ) dla każdego i = 0,1,K, n − 1 (3.24) jak i samej funkcji spline: S j (x j +1 ) = S j +1 (x j +1 ) dla każdego i = 0,1,K, n − 1 . (3.25) Drugie pochodne wielomianowej funkcji spline stopnia trzeciego bardzo często w literaturze oznacza się dużą literą M i nazywa momentami funkcji spline. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 19 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 20 z 27 Interpolacja funkcjami spline stopnia trzeciego (3) Konstrukcja wielomianowej funkcji spline stopnia trzeciego (cd.) Ponieważ funkcja spline jest kawałkami wielomianem stopnia trzeciego, to jej druga pochodna jest funkcją liniową: S ′′( x ) = xi − x x − xi −1 M i −1 + M i dla każdego i = 1,K, n , xi − xi −1 xi − xi −1 (3.26) gdzie M i = S ′′( xi ) dla każdego i = 0,1,K, n . (3.27) Całkując wyrażenie (3.26) stronami, otrzymujemy dla x ∈ [x i −1 , x i ] 2 2 ( ( x − x i −1 ) xi − x ) M i + Ai , M i −1 + S ′( x ) = 2( x i − x i −1 ) 2( x i − x i −1 ) (3.28) oraz S (x ) = (xi − x )3 M + (x − xi −1 )3 M + A (x − x ) + B , i i −1 i i −1 i 6( xi − xi −1 ) 6(xi − xi −1 ) (3.29) gdzie Ai oraz Bi są stałymi. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 20 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 21 z 27 Interpolacja funkcjami spline stopnia trzeciego (4) Konstrukcja wielomianowej funkcji spline stopnia trzeciego (cd.) Nakładając na (3.29) warunki interpolacji (warunek (i) definicji 3.1) otrzymamy: 3 3 ( ( xi − xi −1 ) xi −1 − xi −1 ) S ( xi −1 ) = M i −1 + M i + A i ( xi −1 − xi −1 ) + Bi = 6( xi − xi −1 ) 6( xi − xi −1 ) , (3.30) 3 3 ( ( xi − xi ) xi − xi −1 ) S (xi ) = M i −1 + M i + A i ( xi − xi −1 ) + Bi = 6( xi − xi −1 ) 6( xi − xi −1 ) , (3.31) h2 = i M i −1 + Bi = f i −1 6 h2 = i M 1 + Ai hi + Bi = f i 6 i obliczamy stałe całkowania dla każdego podprzedziału [xi-1, xi], i = 1, 2, ..., n: Ai = f i − f i −1 hi − (M i − M i −1 ) , 6 hi Bi = f i −1 (3.32) hi2 − Mi , 6 (3.33) gdzie hi = xi − xi −1 , f i = f ( xi ) , i = 1,2, K n . Podstawiając wyznaczone stałe do równania (3.29): 3 ( xi − x ) S (x ) = M 6hi i −1 3 ( x − xi −1 ) M + 6hi i + (x − x ) ⎛⎜ f + i 6hi ⎞ ( x − xi −1 ) ⎛ ⎞ hi2 hi2 ⎜ ⎟ ⎟⎟. − M + f − M 1 1 i i i i − − ⎜ ⎜ ⎟ 6 6 h 6 ⎝ ⎝ ⎠ ⎠ i Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 21 (3.34) 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 22 z 27 Interpolacja funkcjami spline stopnia trzeciego (5) Obliczanie momentów funkcji spline Momenty Mi funkcji spline wyznaczamy z warunku ciągłości pierwszej pochodnej w punktach sklejania: S i′−1 ( x i ) = hi h f − f i −1 M i −1 + i M i + i , 6 3 hi (3.35) S i′ ( x i ) = − hi +1 h f − fi M i − i +1 M i +1 + i +1 , 6 3 hi +1 (3.36) Porównując odpowiednie pochodne w punktach sklejania otrzymamy następujący układ n – 1 niezależnych liniowo równań z n + 1 niewiadomymi: hi h + hi +1 h f − fi f − f i −1 M i −1 + i M i + i +1 M i +1 = i +1 − i , 6 3 6 hi +1 hi i = 1,2, K n − 1 . (3.37) Równanie to wygodniej jest zapisać w postaci: µ i M i −1 + 2 M i + λi M i +1 = d i , i = 1,2 K , n − 1 , (3.38) gdzie: λi = hi +1 , hi + hi +1 (3.39) µ i = 1 − λi , di = 6 hi + hi +1 (3.40) ⎛ f i +1 − f i f − f i −1 ⎞ ⎟⎟ . ⎜⎜ − i hi ⎠ ⎝ hi +1 (3.41) Jest to układ n-1 równań z n+1 niewiadomymi. Potrzebne są dodatkowe dwa równania – tak zwane warunki brzegowe. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 22 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 23 z 27 Interpolacja funkcjami spline stopnia trzeciego (6) Warunki brzegowe Warunek swobodny S ′′(a ) = M 0 = f ′′( x 0 ), S ′′(b ) = M n = f ′′( x n ) , (3.42a) Funkcja spełniająca ten warunek nazywana jest swobodną funkcją spline. W przypadku gdy M0 = Mn = 0 to otrzymujemy naturalną funkcją spline. S ′(a ) = f ′(a ), S ′(b ) = f ′(b ) . (3.42b) Warunek swobodny prowadzi do układu równań: 2M 1 + λ1M 2 = d1 − µ1M 0 , µi M i −1 + 2M i + λi M i +1 = di , i = 1,2K, n − 2, µ n −1M n − 2 + 2M n −1 = d n −1 − λn −1M n , M 0 = f ′′(x0 ), (3.43) M n = f ′′( xn ). Drugi warunek brzegowy prowadzi do układu równań: ⎞ 6 ⎛ f1 − f 0 ⎜⎜ − f 0′ ⎟⎟, h1 ⎝ h1 ⎠ µi M i −1 + 2M i + λi M i +1 = di , i = 1,2K, n − 1, 2 M 1 + λ1M 2 = µ n M n −1 + 2 M n = (3.44) f − f n −1 ⎞ 6⎛ ⎜⎜ f n′ − n ⎟⎟. hn ⎝ hn ⎠ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 23 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 24 z 27 Interpolacja funkcjami spline stopnia trzeciego (6) Przykład 3.8. Przykład Rungego Wyznaczyć wielomianową interpolacyjną aproksymujacą funkcję f ( x ) = (1 + 25 x 2 ) −1 funkcję sklejaną stopnia trzeciego na przedziale domkniętym [-1, 1] podzielonym za pomocą n+1 punktów na równe podprzedziały [xi-1, xi], gdzie xi = ih - 1, i = 0, 1, ..., n oraz h = 2/n. 1.2 1 0.8 0.6 0.4 0.2 0 -1.5 -1 -0.5 0 0.5 1 1.5 Rysunek 3.6. Funkcja f ( x ) = (1 + 25 x 2 ) oraz wielomianowa funkcja spline stopnia trzeciego −1 na n = 6 węzłów . Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 24 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 25 z 27 Interpolacja funkcjami spline stopnia trzeciego (6) Przykład 3.8. Przykład Rungego cd. 4 3 2 1 0 -1.5 -1 -0.5 -1 0 0.5 1 1.5 -2 -3 -4 Rysunek 3.7. Pochodna funkcji f ( x ) = (1 + 25 x 2 ) −1 oraz jej aproksymacja otrzymana z wielomianowej funkcja spline stopnia trzeciego na n = 10 węzłów . Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 25 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 26 z 27 Interpolacja funkcjami spline stopnia trzeciego (6) Przykład 3.8. Przykład Rungego cd. Tabela 3.5. Wyniki obliczeń z zastosowaniem wielomianowej funkcji sklejanej do aproksymowania funkcji f ( x ) = (1 + 25 x 2 ) . Porównanie błędów bezwzględnych −1 i względnych w aproksymacji funkcji oraz jej pochodnej w punkcie x = 0.75. n=6 n = 10 n = 14 n = 20 S(0.75) 8.25897E-2 6.59051E-2 6.63781E-2 6.63941E-2 S (x ) − f (x ) 1.61997E-2 4.84951E-4 1.19662E-5 4.01189E-6 S (x ) − f (x ) f (x ) 2.44007E-1 7.30457E-3 1.80241E-4 6.04291E-5 S’(x) -6.28791E-2 -1.56349E-1 -1.66153E-1 -1.65244E-1 S ′( x ) − f ′( x ) 1.02407E-1 8.93758E-3 8.66631E-4 4.27987E-5 S ′( x ) − f ′( x ) f ′( x ) 6.19575E-1 5.40733E-2 5.24321E-3 2.58937E-4 ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 26 2009-02-26 Metody Numeryczne i Programowanie Wykład 3. Strona 27 z 27 Interpolacja funkcjami spline stopnia trzeciego (6) Twierdzenie 3.2. Niech funkcja f będzie funkcją ciągłą mającą ciągłe pochodne aż do czwartego rzędu f ∈ C 4 [a, b] , oraz niech max f a ≤ x ≤b (4 ) (x ) ≤ M . Jeżeli S jest wielomianową funkcja sklejaną stopnia trzeciego interpolującą funkcję f w węzłach sklejania a = x 0 < x1 < x 2 < K < x i −1 < x i < x i −1 < K < x n −1 < x n = b , oraz spełnia warunek brzegowy S ′(a ) = f ′(a ), max f ( x ) − S ( x ) ≤ a ≤ x ≤b S ′(b ) = f ′(b ) , to 5M 4 max (x j +1 − x j ) . 0 1 ≤ j ≤ n − 384 (3.51) ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 27 2009-02-26