WNUM Lab 4: Interpolacja i aproksymacja.
•
Zakres materiału:
1. Interpolacja i aproksymacja funkcji jednej zmiennej
2. Algorytmy numeryczne MATLAB-a: polyfit, polyval, interp1, 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.
, 14.IV.2010