background image

WNUM  Lab 4: Interpolacja i aproksymacja. 

• 

Zakres materiału: 

1.  Interpolacja i aproksymacja funkcji jednej zmiennej 
2.  Algorytmy numeryczne MATLAB-a: polyfitpolyvalinterp1, spline  

• 

Przykładowe zadania (do przygotowania przed zajęciami): 

1. Należy interpolować następujące funkcje w przedziale [1   10]:  

 

f(x)=ln(x)  

 

g(x)=x/5 dla x<=5, a 1 dla x>5  

Zadania interpolacji należy rozwiązać na kilka sposobów. 
a) Wykorzystać funkcje: polyfit (do policzenia współczynników wielomianu 

interpolującego) i polyval (do policzenia wartości wielomianu interpolującego). Dokonać 
kolejno interpolacji wielomianami stopnia N=1,2,...,12, wykorzystując: 

i)  w=N+1 równo rozłożonych węzłów 
ii)  w=N+1  węzłów Czebyszewa 

   Dla każdego N wykreślić liniami ciągłymi funkcję oryginalną (policzoną dla 100 punktów 

w przedziale), wielomian interpolujący policzony w tych samych punktach oraz 
kółeczkami - węzły interpolacji.  

b) Wykorzystać metody interpolacji: 'linear', ' spline', 'pchip' funkcji interp1. Na 

wspólnym wykresie pokazać przebieg uzyskanych funkcji interpolujących.  

2.  Dla zadania interpolacji wielomianowej funkcji f(x), rozwiązywanego jak w p. 1a, należy 

oszacować analitycznie zależność dokładności interpolacji od stopnia wielomianu N
Porównać to oszacowanie z miarą błędu interpolacji, określoną jako maksimum 
niedokładności interpolacji w 201 punktach równo rozłożonych w przedziale interpolacji. 

3.  Dla obydwóch funkcji z zadania 1 należy określić eksperymentalnie zależność stopnia 

wielomianu, który najdokładniej je aproksymuje, od ilości węzłów w=N+1, dla N=1,2...,12. 
W tym celu dla każdego N należy dokonać aproksymacji funkcji wielomianami stopni od 1 
do N-1 i każdorazowo określić dokładność aproksymacji (miarą błędu jest maksymalna 
odległość między funkcją oryginalną i aproksymującą w zadanym przedziale, wyznaczona 
dla 401 punktów równo rozłożonych w przedziale [1:10]) . Określić, który wielomian 
zapewnia najmniejszy błąd i w wektorze wyników zapamiętać jego stopień. Wykreślić (na 
wspólnym rysunku) otrzymane stopnie najdokładniejszych wielomianów aproksymujących 
dla obydwóch funkcji. 

4. Liczba ludności w USA w XX wieku (lata 1900,1910,1920,...2000) zmieniała się 

następująco (dane w milionach): 

75.995, 91.972, 105.711, 123.203, 131.669, 150.697, 179.323, 203.212, 226.505, 249.633, 
281.422 
Należy wykonać ekstrapolację danych dwoma sposobami: 

 

przy użyciu interpolacji wielomianowej (polyfit); 

 

przy użyciu ekstrapolacji liniowej (interp1, 'linear', 'extrap').  

Dla obydwu metod należy wykreślić wyniki ekstrapolacji w przedziale [1900,2010], obliczyć 
ekstrapolowaną liczbę ludności w roku 2008 oraz rok, w którym populacja przekroczyła 300 
milionów (zaznaczyć obydwa wyniki na rysunku).  Porównać wyniki ekstrapolacji z danymi 
demograficznymi: faktyczna liczba ludności w r. 2008: 303,8, a 300 milionów ludności 
osiągnięto w październiku roku 2006. 

 

 

Leszek J. Opalski

, 14.IV.2010