Metody numeryczne I - Panoramix
Metody numeryczne I - Panoramix
Metody numeryczne I - Panoramix
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Metody</strong> <strong>numeryczne</strong> I<br />
Aproksymacja funkcji<br />
Janusz Szwabiński<br />
szwabin@ift.uni.wroc.pl<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.1/31
Aproksymacja funkcji<br />
1. Pojęcia podstawowe<br />
• zagadnienie aproksymacji<br />
• funkcje bazowe<br />
• typowe normy<br />
• rodzaje aproksymacji<br />
2. Aproksymacja średniokwadratowa<br />
• wielomianowa<br />
• trygonometryczna<br />
• za pomocą funkcji sklejanych<br />
• aproksymacja funkcji ciągłych<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.2/31
Zagadnienie aproksymacji<br />
X - pewna przestrzeń liniowa<br />
X m - m-wymiarowa podprzestrzeń przestrzeni X<br />
f(x) - funkcja, którą chcemy aproksymować<br />
Definicja Aproksymacja liniowa funkcji f(x) polega na<br />
wyznaczeniu takich współczynników a 0 , a 1 , . . . , a m funkcji<br />
F (x) = a 0 φ 0 (x) + a 1 φ 1 (x) + . . . + a m φ m (x)<br />
gdzie φ 0 (x), . . . , φ m (x) są funkcjami bazowymi podprzestrzeni<br />
X m+1 , aby funkcja F (x) spełniała pewne warunki, np.<br />
minimalizowała normę różnicy ‖f(x) − F (x)‖<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.3/31
Definicja Aproksymacja wymierna funkcji f(x) polega na<br />
znalezieniu takich współczynników a 0 , . . . , a n , b 0 , . . . , b m<br />
funkcji<br />
F (x) = a 0φ 0 (x) + a 1 φ 1 (x) + . . . + a n φ n (x)<br />
b 0 ψ 0 (x) + b 1 ψ 1 (x) + . . . + b m ψ m (x)<br />
gdzie φ i (x) i ψ j (x) (i = 0, . . . , n, j = 0, . . . , m) są elementami<br />
tej samej bazy k wymiarowej podprzestrzeni liniowej<br />
(k = max(m, n)), aby funkcja F (x) spełniała pewne warunki,<br />
np. minimalizowała normę różnicy ‖f(x) − F (x)‖<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.4/31
Przykłady funkcji bazowych<br />
• funkcje trygonometryczne<br />
1, sin x, cos x, sin 2x, cos 2x, . . . , sin kx, cos kx<br />
• jednomiany<br />
1, x, x 2 , . . . , x m<br />
• wielomiany<br />
1, (x − x 0 ), (x − x 0 )(x − x 1 ), . . . , (x − x 0 ) · · · (x − x m )<br />
• wielomiany Czebyszewa, Legendre’a<br />
Wybór bazy wpływa na<br />
• dokładność i koszt obliczeń<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.5/31
Typowe normy<br />
• Czebyszewa<br />
‖f‖ = sup<br />
〈a,b〉<br />
|f(x)|<br />
• L 2<br />
‖f‖ 2 =<br />
( ∫ b<br />
a<br />
|f(x)| 2 dx<br />
) 1/2<br />
• L 2 z wagą<br />
‖f‖ 2,w =<br />
( ∫ b<br />
a<br />
w(x)|f(x)| 2 dx<br />
) 1/2<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.6/31
• „dyskretna”<br />
‖f‖ =<br />
( n ∑<br />
i=0<br />
[f(x i )] 2 ) 1/2<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.7/31
Rodzaje aproksymacji<br />
• średniokwadratowa, kiedy szukamy funkcji F (x)<br />
minimalizujacej ˛ całkę<br />
lub sumę<br />
‖f(x) − F (x)‖ =<br />
∫ b<br />
a<br />
w(x) [F (x) − f(x)] 2 dx<br />
‖f(x) − F (x)‖ =<br />
n∑<br />
i=0<br />
w(x i )[F (x i ) − f(x i )] 2<br />
w(x i ) 0, i = 0, 1, . . . , n<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.8/31
• jednostajna, kiedy szukamy funkcji F (x) minimalizującej<br />
normę<br />
‖F (x) − f(x)‖ = sup |F (x) − f(x)|<br />
x∈〈a,b〉<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.9/31
Twierdzenie Jeżeli funkcja f(x) jest ciągła na skończonym<br />
przedziale 〈a, b〉, to dla każdego ɛ dodatniego można dobrać<br />
takie n, że jest możliwe utworzenie wielomianu P n (x) stopnia n<br />
(n = n(ɛ)), który spełnia nierówność<br />
|f(x) − P n (x)| < ɛ<br />
na całym przedziale 〈a, b〉<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.10/31
Twierdzenie Jeżeli funkcja f(x) jest ciągła na R i okresowa o<br />
okresie 2π, to dla każdego ɛ dodatniego istnieje wielomian<br />
trygonometryczny<br />
S n (x) = a 0 +<br />
n∑<br />
k=1<br />
(a k cos kx + b k sin kx), n = n(ɛ)<br />
spełniajacy ˛ dla wszystkich x nierówność<br />
|f(x) − S n (x)| < ɛ<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.11/31
Aproksymacja średniokwadratowa<br />
punkty empiryczne<br />
funkcja dokladna<br />
wielomian interpolacyjny<br />
wielomian aproksymacyjny<br />
y<br />
x<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.12/31
Szukamy wielomianu uogólnionego<br />
F (x) =<br />
m∑<br />
i=0<br />
a i φ i (x)<br />
takiego, że suma<br />
osiąga minimum<br />
‖F (x) − f(x)‖ =<br />
n∑<br />
i=0<br />
w(x i ) [F (x i ) − f(x i )] 2<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.13/31
H(a 0 , . . . , a m ) =<br />
n∑<br />
w(x j )<br />
[<br />
f(x j ) −<br />
m∑<br />
a i φ i (x j )] 2<br />
=<br />
n∑<br />
w(x j )R n j<br />
j=0<br />
i=0<br />
j=0<br />
Układ normalny (k = 0, 1, . . . , m)<br />
∂H<br />
∂a k<br />
= −2<br />
n∑<br />
j=0<br />
w(x j )<br />
[<br />
f(x j ) −<br />
m∑<br />
i=0<br />
a i φ i (x j )<br />
]<br />
φ k (x j ) = 0<br />
φ j (x) tworzą bazę<br />
⇒ wyznacznik różny od zera<br />
⇒ rozwiązanie układu minimalizuje sumę ‖F (x) − f(x)‖<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.14/31
Aproksymacja wielomianowa<br />
Niech φ i (x) = x i , i = 0, 1, . . . , m oraz w(x) ≡ 1<br />
⇒ układ normalny ma postać<br />
[<br />
n∑<br />
f(x j ) −<br />
m∑<br />
j=0<br />
i=0<br />
a i x i j<br />
]<br />
x k j = 0,<br />
k = 0, 1, . . . , m<br />
Stąd<br />
m∑<br />
a i g ik = ρ k ,<br />
k = 0, 1, . . . , m<br />
i=0<br />
g ik =<br />
n∑<br />
x i+k<br />
j , ρ k =<br />
n∑<br />
f(x j )x k j<br />
j=0<br />
j=0<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.15/31
Jeśli punkty x 0 , . . . , x n są różne oraz<br />
• m n<br />
⇒ wyznacznik układu jest różny od zera<br />
⇒ układ ma jednoznaczne rozwiązanie<br />
• m = n<br />
⇒ F (x) pokrywa się z wielomianem interpolacyjnym<br />
⇒ H = 0<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.16/31
Uwaga<br />
• dla m 6 układ normalny aproksymacji wielomianowej<br />
jest źle uwarunkowany<br />
⇒ aproksymację z jednomianami jako funkcjami<br />
bazowymi stosujemy tylko dla małych m<br />
⇒ dla dużych m lepiej stosować jako bazę wielomiany<br />
ortogonalne<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.17/31
Aproksymacja trygonometryczna<br />
f(x) jest określona na dyskretnym zbiorze punktów<br />
Mamy<br />
2L−1 ∑<br />
i=0<br />
x i = πi<br />
L<br />
sin mx i sin kx i =<br />
, i = 0, 1, . . . , 2L − 1<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
0, m ≠ k<br />
L, m = k ≠ 0<br />
0, m = k = 0<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.18/31
2L−1 ∑<br />
i=0<br />
cos mx i cos kx i =<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
0, m ≠ k<br />
L, m = k ≠ 0<br />
2L, m = k = 0<br />
2L−1 ∑<br />
i=0<br />
cos mx i sin kx i = 0<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.19/31
Szukamy funkcji aproksymującej postaci<br />
y n (x) = 1 2 + n ∑<br />
j=1<br />
(a j cos jx + b j sinjx) , n < L<br />
Żądanie minimalizacji sumy<br />
2L−1 ∑<br />
i=0<br />
[f(x i ) − y n (x i )] 2<br />
prowadzi do<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.20/31
a j = 1 L<br />
b j = 1 L<br />
2L−1 ∑<br />
i=0<br />
2L−1 ∑<br />
i=0<br />
f(x i ) cos jx i = 1 L<br />
f(x i ) sin jx i = 1 L<br />
(j = 1, 2, . . . , n)<br />
2L−1 ∑<br />
i=0<br />
2L−1 ∑<br />
i=0<br />
f(x i ) cos πij<br />
L<br />
f(x i ) sin πij<br />
L<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.21/31
Aproksymacja za pomoca˛<br />
funkcji sklejanych<br />
Funkcja jest określona na dyskretnym zbiorze punktów<br />
x i , i = 0, 1, . . . , n 1 , n 1 > n + 3<br />
Funkcji aproksymacyjnej szukamy w postaci<br />
S(x) =<br />
n+1 ∑<br />
i=−1<br />
c i φ 3 i (x),<br />
a x b<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.22/31
φ 3 i (x) = 1<br />
(x − x i−2 )<br />
⎧⎪ 3 dla x ∈ [x i−2 , x i−1 ]<br />
h 3 + 3h 2 (x − x i−1 )<br />
⎨ +3h(x − x i−1 ) 2 − 3(x − x i−1 ) 3 dla x ∈ [x i−1 , x i ]<br />
h 3 h 3 + 3h 2 (x i+1 − x)<br />
⎪ ⎩<br />
+3h(x i+1 − x) 2 − 3(x i+1 − x) 3 dla x ∈ [x i , x i+1 ]<br />
(x i+2 − x) 3 dla x ∈ [x i+1 , x i+2 ]<br />
0 dla pozostałych x ∈ R<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.23/31
Niech<br />
Warunek<br />
prowadzi do<br />
I =<br />
n 1 ∑<br />
k=0<br />
⎡<br />
⎣f(x k ) −<br />
n+1 ∑<br />
i=−1<br />
c i φ 3 i (x k )<br />
∂I<br />
∂c i<br />
= 0, i = −1, 0, 1, . . . , n + 1<br />
⎤<br />
⎦<br />
2<br />
n+1 ∑<br />
i=−1<br />
b ij c i =<br />
n 1 ∑<br />
k=0<br />
f(x k )φ 3 j(x k ), j = −1, 0, . . . , n + 1<br />
b ij =<br />
n 1 ∑<br />
k=0<br />
φ 3 i (x k )φ 3 j(x k )<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.24/31
Aproksymacja średniokwadratowa funkcji ciagłych<br />
˛<br />
Szukamy funkcji aproksymującej postaci<br />
P (x) = a 0 φ 0 (x) + . . . a n φ n (x)<br />
gdzie φ j (x) to elementy bazy pewnej podprzestrzeni funkcji<br />
całkowalnych z kwadratem<br />
Niech<br />
H n =<br />
∫ b<br />
a<br />
dx [P (x) − f(x)] 2 =<br />
∫ b<br />
a<br />
dx<br />
[ n ∑<br />
i=0<br />
a i φ i (x) − f(x)<br />
] 2<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.25/31
Minimum H n będzie minimalizowało normę<br />
W tym celu rozwiązujemy układ<br />
względem współczynników a i<br />
‖P (x) − f(x)‖<br />
∂H n<br />
∂a i<br />
= 0, i = 0, 1, . . . , n<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.26/31
Przykład Funkcję f(x) = sin x na przedziale 〈0, π/2〉<br />
aproksymujemy wielomianem<br />
P (x) = a 0 + a 1 x + a 2 x 2<br />
Układ równań ma postać<br />
a 0<br />
∫ π/2<br />
0<br />
a 0<br />
∫ π/2<br />
0<br />
a 0<br />
∫ π/2<br />
0<br />
∫ π/2 ∫ π/2<br />
dx + a 1 xdx + a 2<br />
0<br />
0<br />
∫ π/2<br />
∫ π/2<br />
xdx + a 1 x 2 dx + a 2<br />
0<br />
0<br />
∫ π/2<br />
∫ π/2<br />
x 2 dx + a 1 x 3 dx + a 2<br />
0<br />
0<br />
x 2 dx =<br />
x 3 dx =<br />
x 4 dx =<br />
∫ π/2<br />
0<br />
∫ π/2<br />
0<br />
∫ π/2<br />
0<br />
sin xdx<br />
x sin xdx<br />
x 2 sin xdx<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.27/31
czyli<br />
π<br />
2 a 0 + π2<br />
8 a 1 + π3<br />
24 a 2 = 1<br />
π 2<br />
8 a 0 + π3<br />
24 a 1 + π4<br />
64 a 2 = 1<br />
π 3<br />
24 a 0 + π4<br />
64 a 1 + π5<br />
160 a 2 = −2<br />
Stąd<br />
P (x) ≃ 0, 134 + 0, 59x + 0, 05x 2<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.28/31
Średni błąd aproksymacji<br />
M 2 = (b − a) −1 H n (a 0 , a 1 , a 2 ) ≃ 0, 00797<br />
Przykład Funkcję f(x) = sin x na przedziale 〈0, π/2〉<br />
aproksymujemy posługujac ˛ się wielomianami Legendre’a<br />
P n (x) = 1<br />
2 n n!<br />
Wprowadzamy zmienną<br />
d n<br />
dx n (<br />
x 2 − 1 ) n<br />
, n = 0, 1, 2, . . .<br />
t = 4 π x − 1<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.29/31
Aproksymować będziemy funkcję<br />
wielomianem<br />
ˆf(t) = sin<br />
π(t + 1)<br />
4<br />
W (t) = a 0 P 0 (t) + a 1 P 1 (t) + a 2 P 2 (t)<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.30/31
Współczynniki wynoszą<br />
∫ 1<br />
a 0 = 1 2<br />
a 1 = 3 2<br />
a 2 = 5 2<br />
Stąd<br />
dt sin π<br />
−1 4 (t + 1) = 2 π<br />
dtt sin π 24<br />
(t + 1) =<br />
−1 4 π − 6 2 π<br />
( 3<br />
dt<br />
−1 2 t2 −<br />
2)<br />
1 sin π (t + 1) = −480<br />
4 π + 120<br />
3 π + 10<br />
2 π<br />
∫ 1<br />
∫ 1<br />
W (t) ≃ 0, 6366197 + 0, 5218492x − 0, 1390961x 2<br />
M 2 ≃ 0, 0000704<br />
<strong>Metody</strong> <strong>numeryczne</strong> I (C) 2004 Janusz Szwabiński – p.31/31