Interpolacja wielomianowa
Naszym zadaniem będzie interpolacja funkcji:
f (x) = cos(2x)e−x w przedziale x ∈ [0..2π].
Interpolację wielomianową powyższej funkcji można wykonać przy użyciu procedury polcoe z biblioteki Nume- rical Recipes . Procedura ta wymaga dodatkowo prcedury polint. Przykład wywołania procedury w Fortranie:
call polcoe(x,y,n,cof) gdzie:
x - tablica real*4 (1:n) zawierająca położenia węzłów interpolacyjnych y - tablica real*4 (1:n) zawierająca wartości interpolowanej funkcji w węzłach n - liczba węzłów (n = 15 - wartość maksymalna)
cof - tablica real*4 (1:n) - zawierająca współczynniki wielomianu iterpolacyjnego
Po wywołaniu procedury polcoe naszą funkcję f(x) możemy przybliżyć w następujcy sposób:
w(x) = Xn i=1
cof (i)xi−1
Zadania do wykonania:
1. Stablicować funkcję f (x) = cos(2x)e−x w przedziale x ∈ [0..2π] w 10 węzłach 2. Przeprowadzić interpolację przy użyciu procedury polcoe
3. Narysować na jednym wykresie w przedziale x ∈ [0..2π]:
• wartości funkcji f(x) (w 10 punktach)
• wartości otrzymanego wielomianu interpolującego w 50 punktach
• funkcję f(x) w 50 punktach
4. W sprawozdaniu proszę porównać współczynniki wielomianu interpolującego z ich wartościami dokładnymi uzyskanymi z rozwinięcia funkcji f(x) w szereg Taylora:
w(x) = 1−x−3 2x2+11
6 x3− 7
24x4− 41
120x5+13
80x6− 29
5040x7− 527
40320x8+ 1199
362880x9+ 79
1209600x10+O x11 Proszę sprawdzić odchylenie względne od wartości dokładnej tj.:
∆i=cdoki − cof (i) cdoki Wyniki porównania zamieścić w tabeli.
Tomasz Chwiej