06.04.2015 Views

Metody numeryczne I - Panoramix

Metody numeryczne I - Panoramix

Metody numeryczne I - Panoramix

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!