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