1
Akademia Morska w Gdyni
Katedra Automatyki Okrętowej
LABORATORIUM METOD NUMERYCZNYCH
INTERPOLACJA
© Maciej Grabarek
1.
Cel ćwiczenia.
Celem ćwiczenia jest zapoznanie studentów z problematyką przybliżania funkcji,
z wykorzystaniem metod interpolacyjnych. W ćwiczeniu przedstawiony zostanie szereg rozwiązań
narzędzi interpolacyjnych stosowanych powszechnie w praktyce inżynierskiej. Zadania stanowiące
przedmiot tego ćwiczenia, wykonane zostaną w programie MATLAB.
2.
Interpolacja za pomocą wielomianów – podstawy matematyczne.
Zagadnienie interpolacji sformułować można opierając się na następującej definicji :
w danym przedziale
< ; > dane jest + 1 różnych punktów
,
,
… .
, przybierających
wartości pewnej funkcji
= ( ), tak że:
(
) =
, (
) =
, (
) =
, … (
) =
. (1)
Punkty te nazywane są węzłami interpolacji i w praktyce inżynierskiej stanowią one najczęściej wynik
pomiarów. Zadanie interpolacji polega na odnalezieniu takiej funkcji
ℎ = ( ), która w węzłach
interpolacyjnych przyjmuje takie same wartości, co nieznana funkcja
= ( ), a dla pozostałych
argumentów przedziału
< ; > przyjmuje wartości zbliżone do tej funkcji. Można zatem stwierdzić,
ż
e interpolacja jest procesem odwrotnym do tablicowania funkcji ciągłej lub w przypadku układów
dyskretnych do dyskretyzacji lub próbkowania sygnału. Graficznie, zagadnienie interpretacji
przedstawione zostało na rys. 1.
Rys. 1. Funkcja interpolowana
= ( ) i interpolująca ją funkcja ℎ = ( )
Dane jest n punktów
(
,
), = 1, 2, … . Na ich
podstawie poszukujemy takiej funkcji
ℎ = ( ), która
w podanych punktach przyjmuje te same wartości.
2
Funkcję interpolującą,
[1]
poszukuje się najczęściej jako funkcja o określonej postaci. Może
ona przybierać postać wielomianu algebraicznego, wielomianu trygonometrycznego lub funkcji
sklejanej (tzw. splajna). Wybór określonej postaci funkcji interpolującej, wiąże się ściśle
w rozwiązaniem zagadnienia. Może ono bowiem przynieść nieskończenie wiele rozwiązań, lub jego
brak. Ważne jest zatem, aby stosować takie rozwiązania interpolacji, które przynoszą dokładnie jedno
rozwiązanie zagadnienia. Poniżej opisane zostaną wielomianowe metody interpolacyjne, stanowiące
przedmiot tego ćwiczenia, zapewniające uzyskanie dokładnie jednego unikatowego wielomianu
rozwiązującego zagadnienie interpolacji.
Wielomianowa teoria interpolacji zakłada, że istnieje dokładnie jeden wielomian co najwyżej
stopnia
( ≥ 0), który interpoluje funkcję = ( ). Oznacza to, iż wielomian ten w punktach
,
,
… .
przyjmuje wartości
,
,
… .
. Przyjmujemy, że węzły interpolujące
rozmieszczone są dowolnie w analizowanym przedziale
< ; >, zachowując warunek
≠
.
Dla danych węzłów, których wartości funkcji
= ( ) są znane, poszukujemy wielomianu o postaci:
( ) =
+
+
+ ⋯ +
.
(2)
Odnosząc się do warunku interpolującego
(1),
tworzymy układ równań:
+
+
+ ⋯ +
=
+
+
+ ⋯ +
=
…
…
…
…
…
…
+
+
+ ⋯ +
=
,
który w postaci macierzowej zapisać można jako
" ∙ =
(3)
W zależności macierzowej
(3),
A jest macierzą wymiaru
× zawierającą współczynniki węzłów
,
. Pozostałe operatory a i y są wektorami wymiaru
1 × , zawierającymi odpowiednio
współczynniki wyrazów wielomianu oraz wartości funkcji
= ( ) w węzłach interpolacyjnych.
W przedstawionej zależności
(2)
odnalezienie wielomianu interpolacyjnego, sprowadza się do
wyznaczenia współczynników wielomianu
. Wartości tych współczynników, można łatwo
wyznaczyć przekształcając zależność
(3),
do postaci:
= "
%
∙
(4)
Na wstępie opisu metody interpolacji wielomianowej podkreślono, że poszukiwaniom podlega
unikalny wielomian stanowiący dokładne jedno rozwiązanie naszego zagadnienia. Sprawdzenie, czy
wyznaczony wielomian spełnia to wymagania jest możliwe poprzez analizę wyznacznika macierzy A.
Wyznacznik ten nazywany wyznacznikiem Vandermonde’a, matematycznie opisać można jako:
|"| = ∏
(
−
) ≠ 0
)))
.
(5)
Przy spełnieniu założeń
≠
dla
≠ *, wartość tego wyznacznika jest zawsze różna od zera. Zatem
układ ma dokładnie jedno rozwiązanie, a współczynniki wielomianu bazując na twierdzeniu Cramer’a
wyznaczyć można wzorem
=
|+|
∙ ∑
∙ "
,
-
(6)
3
Z twierdzenia Cramer’a wynika, że istnieje wielomian spełniający założenia
(1)
i
(2),
którego stopień
nie jest większy niż n.
2.1.
Interpolacyjny wzór Lagrange’a.
Wśród wielu rozwiązań wielomianowej interpolacji, metoda Lagrange’a zyskała wielu
zwolenników ze względu na swoją prostotę. Do określenia wielomianu, używa się formuły
Lagrange’a, której matematyczny zapis przedstawiono poniżej
%
( ) = ∑
.
( )
-
,
(7)
gdzie
.
( ) =
/%/
0
/
1
%/
0
∙
/%/
2
/
1
%/
2
∙ … ∙
/%/
130
/
1
%/
130
∙
/%/
140
/
1
%/
140
∙ … ∙
/%/
5
/
1
%/
5
.
(8)
Upraszczając funkcję kardynalną
(8),
jej zapis sprowadzić możemy do postaci :
.
( ) = 6
−
−
-
7
(9)
Korzystając z
[2],
poniżej przedstawiono dwa przykłady realizacji interpolacji wykorzystujące
formułę Lagrange’a. W analizowanych przypadkach interpolacji dokonywano linią prostą (
= 2)
i funkcją paraboliczną (
= 3), opierając się na zależności
(7):
-
dla
= 2
( ) =
∙ .
( ) +
∙ .
( )
gdzie
.
( ) =
−
−
.
( ) =
−
−
-
dla
= 3
( ) =
∙ .
( ) +
∙ .
( ) +
:
∙ .
:
( )
.
( ) =
−
−
∙
−
:
−
:
.
( ) =
−
−
∙
−
:
−
:
.
:
( ) =
−
:
−
∙
−
:
−
Określone w ten sposób funkcje kardynalne są wielomianami stopnia
− 1, które posiadają
charakterystyczna cechę:
.
;
< = =0 *>ż>. = *
1 *>ż>. ≠ *@ = A
,
. (10)
4
Parametr
A
,
nazywany jest deltą Kroneckera, a za jego pomocą można łatwo udowodnić poprawność
wykonanej interpolacji. Zakładając, że
=
przekształcając formułę Lagrange’a uzyskujemy:
%
( ) = B
.
( )
-
= B
A
,
=
(11)
-
2.2.
Interpolacyjny wzór Newtona.
Pomimo faktu, iż realizacja matematyczna formuły Lagrange’a jest stosunkowo prosta,
metoda ta nie zapewnia efektywnego algorytmu obliczeniowego. Do numerycznych obliczeń
interpolacyjnych, znacznie częściej wykorzystuje się metodę Newtona. Metoda ta, podobnie jak
przedstawiana powyżej metoda Lagrange’a jest jednym ze sposobów rozwiązania wielomianowego
zagadnienia interpolacji. W metodzie Newtona wielomian interpolacyjny zapisuje się jako:
%
( ) =
+ ( −
)
+ ( −
)( −
)
:
+ ⋯ + ( −
)( −
) … ( −
)
(12)
Taka forma wielomianu, pozwala na znaczenie efektywniejsze wykonywanie obliczeń
numerycznych. Dla łatwiejszej analizy wielomianowego wzoru Newtona, poniżej zaprezentowano
przykład
[2]
, realizacji wielomianu dla
= 3, czyli dla czterech węzłów interpolacji.
%
( ) =
+ ( −
)
+ ( −
)( −
)
:
+ ( −
)( −
)( −
:
)
C
=
=
+ ( −
)D
+ ( −
)E
:
+ ( −
:
)
C
FG
Przedstawiony powyżej wielomian, można rekurencyjnie zapisać jak poniżej:
( ) =
C
;
( ) =
:
+ ( −
:
)
( );
( ) =
+ ( −
)
( );
:
( ) =
+ ( −
)
( )
Wprowadzenie zapisu rekurencyjnego, pozwoliło na wyznaczenie uogólnionej postaci wielomianu
Newtona, wykorzystywanego bezpośrednio w algorytmie numerycznym. Uogólnione to przybiera
następującą formę:
( ) =
;
( ) =
%
+ ( −
%H
)
H%
( ) I = 1,2 … , − 1
(13)
Wyznaczenie końcowej postaci wielomianu interpolacyjnego
(13)
z wykorzystaniem metody
Newtona, musi być poprzedzone obliczeniami współczynników wielomianu
. Zakładając, że
wartości funkcji dla analizowanych argumentów obliczyć można z zależności:
=
(
−
)
+ ⋯ + (
−
)(
−
) … (
−
%
)
(14)
wprowadzając teorie ilorazów różnicowych pierwszego n-tego rzędu
∇y
L
=
y
L
− y
x
L
− x
i = 2,3, … , n
5
∇
y
L
=
∇y
L
− ∇y
x
L
− x
i = 3,4, … , n
∇
Q
y
L
=
∇
R30
S
R
%∇
R30
S
R30
T
R
%T
R30
i = 3,4, … , n
(15)
współczynniki wielomianu interpolacyjnego
(12)
przybierają wartości jak poniżej
=
,
= ∇
,
:
= ∇
:
, … ,
= ∇
(16)
3.
Wbudowane narzędzia interpolacyjne MATLAB'a.
Matlab jako rozbudowane środowisko do obliczeń inżynierskich dysponuje szeregiem
narzędzi przeznaczonych do przybliżania funkcji. W zakresie problematyki wielomianowej
interpolacji do dyspozycji użytkownika są dwa narzędzia : zestaw funkcji wbudowanych interp oraz
graficzny interfejs Basic Fitting. Decydując się na interpolacje z użyciem funkcji sklejanych
użytkownik może wykorzystać wbudowaną funkcję spline. W przytoczonych przypadkach narzędzia
te wymagają, aby w przestrzeni roboczej (ang. workspace) znajdowały się dwa wektory danych
zawierające współrzędne węzłów interpolacyjnych (np. xi i yi). Poniżej przedstawiono krótki opis
wspomnianych narzędzi, pozwalający na zapoznanie się z nimi w stopniu wystarczającym do
codziennej praktyki inżynierskiej.
3.1.
Funkcje interp
Wśród zestawu funkcji interp
[3]
w środowisku MATLAB użytkownik wybierać może
pomiędzy:
- interpolacją jednowymiarową : interp1
- interpolacją dwuwymiarową : interp2
- interpolacją trójwymiarową : interp3
- interpolacją wielowymiarową : interpN
- interpolacją jednowymiarową z użyciem FFT : interpft.
W każdym z powyższych przypadków istnieje możliwość określenia metod interpolacji, takich jak:
- funkcją stałą (najbliższego sąsiada) : nearest;
- wielomianem pierwszego rzędu (kawałkami liniowa) : linear;
- wielomianem rzędu trzeciego z zachowaną ciągłością pierwszej pochodnej (kawałkami
sześcienna), czyli interpolacja Hermite'a : cubic;
- funkcjami sklejanymi : spline.
Wywołanie funkcji odbywa się poprzez wprowadzenie komendy:
>> nazwa_zmiennej = interp1(xi, yi, xp, 'metoda');
gdzie xi i yi są wektorami określającymi węzły interpolacyjne, xp jest przedziałem argumentów dla
których dokonywana jest interpolacja. Jako 'metode' należy podać jedną z przedstawionych powyżej
metod interpolacyjnych.
6
3.2.
Interfejs Basic Fitting.
Posiadając zestaw danych reprezentujących węzły interpolacji, możliwe jest także wykonanie
interpolacji z wykorzystaniem interfejsu graficznego Basic Fitting. Aby skorzystać z możliwości tego
narzędzia niezbędne jest wygenerowanie rysunku rozmieszczenia węzłów interpolacyjnych np.:
>> plot(xi, yi);
Następnie w oknie wygenerowanego rysunku (ang. figure), na pasku menu odnajdujemy zakładkę
Tools, a w niej interfejs Basic Fitting. Przykładowe wywołanego interfejsu przedstawiono na rys. 2.
Rys. 2. Interfejs interpolacji Basic Fitting i okno grafiki z naniesioną interpolacją.
Wśród dostępnych metod interpolacyjnych w interfejsie Basic Fitting, znaleźć możemy
interpolacje: funkcjami sklejanymi, odcinkami prostą, liniową, kwadratową, sześcienną lub
wielomianową o stopniu wielomianu od 4 do 10. Narzędzie to jest bardzo przydatne w sytuacjach gdy
nie musimy określić reprezentacji matematycznej funkcji, a jedynie jej przebieg będący funkcją np.
czasu.
4.
Przebieg ćwiczenia.
4.1.
Generacja węzłów interpolacyjnych
Pierwszym krokiem w realizacji ćwiczenia dotyczącego interpolacji, jest generacja węzłów
interpolacyjnych. W tym celu każdy ze studentów uruchamia wskazany przez prowadzącego
laboratorium, plik m-funkcji stanowiący generator węzłów interpolacyjnych. Pliki te oznaczone jako :
Generator_1, Generator_2 i Generator_3 zrealizowane są jako funkcję prywatne. Ich wywołanie
odbywa się poprzez wprowadzenie w oknie poleceń, komendy:
>>
[xi,yi,x,h] = Generator_n(c,d,k)
gdzie xi i yi są wektorami argumentów i wartości węzłów interpolacyjnych. Z kolei wektory x i h
odnoszą się do funkcji rzeczywistej. Parametry wejściowe c, d i k funkcji, zdefiniować należy
indywidualnie :
7
U =
VWXYZ V[\] ^ _\`
;
a =
VWXYZ V[\] ^ _\`
VWXYZ V[\] ^ ZX^bH`
; k – krok rozmieszczenia węzłów
(przyjąć k = 1)
UWAGA : w nazwie funkcji Generator_n, parametr n zastąpić numerem wskazanego generatora.
Każdy z dostępnych generatorów realizuje inną funkcję, w oparciu o którą wyznaczane są
węzły interpolacyjne. Poniżej przedstawiono zestawienie generatorów i odpowiadających im funkcji
bazowych:
c>>defd_1 ⇒ ℎ = >
%W/
∙ sin( ) + a;
c>>defd_2 ⇒ ℎ = log(2U ) ∙ cos(a ) ;
c>>defd_3 ⇒ ℎ = sin(U ) + sin(2a ) ;
Poprawne uruchomienie funkcji, spowoduje wprowadzeniem do przestrzeni roboczej czterech
zmiennych oraz wyświetleniem rysunku z rozmieszczeniem węzłów interpolacyjnych. Poniżej
przedstawiony został zapis funkcji użytkownika, przeznaczonych do generacji węzłów
interpolacyjnych.
% METODY NUMERYCZE LABORATORIUM I : INTERPOLACJA
% Generator funkcji nr 1
function
[xi,yi,x,h] = Generator_1(c,d,k);
close
all
clc
% Wyznaczenie funkcji bazowej
n = 10;
x = 0:0.001:n;
h = exp(-x*c).*sin(x)+d;
% Wyznaczenie wektorów w
ę
złów funkcji do interpolacji
xi = 0:k:10;
yi = exp(-xi*c).*sin(xi)+d;
% Wykre
ś
lenie w
ę
złów interplacyjnych
plot(xi,yi,
'o'
);
xlabel (
'xi'
);
ylabel (
'yi = f(xi)'
);
title (
'Rozmieszczenie w
ę
złów interpolacyjnych'
);
% METODY NUMERYCZE LABORATORIUM I : INTERPOLACJA
% Generator funkcji nr 2
function
[xi,yi,x,h] = Generator_2(c,d,k);
close
all
clc
% Wyznaczenie funkcji bazowej
8
n = 10;
x = 0:0.001:n;
h = log(x*2*c).*cos(d*x);
% Wyznaczenie wektorów w
ę
złów funkcji do interpolacji
xi = 0:k:10;
yi = log(xi*2*c).*cos(d*xi);
% Wykre
ś
lenie w
ę
złów interplacyjnych
plot(xi,yi,
'o'
);
xlabel (
'xi'
);
ylabel (
'yi = f(xi)'
);
title (
'Rozmieszczenie w
ę
złów interpolacyjnych'
);
% METODY NUMERYCZE LABORATORIUM I : INTERPOLACJA
% Generator funkcji nr 3
function
[xi,yi,x,h] = Generator_3(c,d,k);
close
all
clc
% Wyznaczenie funkcji bazowej
n = 10;
x = 0:0.001:n;
h = sin(c*x)+sin(2*d*x);
% Wyznaczenie wektorów w
ę
złów funkcji do interpolacji
xi = 0:k:10;
% Zmienia
ć
maksymaln
ą
liczb
ę
w
ę
złów k
yi = sin(c*xi)+sin(2*d*xi);
% Wykre
ś
lenie w
ę
złów interplacyjnych
plot(xi,yi,
'o'
);
xlabel (
'xi'
);
ylabel (
'yi = f(xi)'
);
title (
'Rozmieszczenie w
ę
złów interpolacyjnych'
);
SPRAWOZDANIE:
- podać wartości współczynników c i d;
- podać postać funkcji h = f(x);
- przedstawić wykres funkcji bazowej h = f(x);
- przedstawić rozmieszczenie węzłów interpolacyjnych yi =f(xi).
9
4.2.
Interpolacja przy użyciu wbudowanych funkcji MATLAB'a.
Wygenerowane w punkcie 4.1. węzły interpolacji w ramach poniższego punkt, poddawane
będą interpolacji jednowymiarowej przy użyciu narzędzi wbudowanych MATLAB'a. Do tego celu
należy stworzyć nowy m-plik funkcyjny, którego kod przedstawiony został poniżej. W ramach tego
ć
wiczenia, należy przeprowadzić analizę działania funkcji interp1przy stosowaniu różnych metod
interpolacyjnych. Prawidłowo napisany skrypt, generuje zestaw rysunków odnoszących się do :
rozmieszczenie węzłów interpolacyjnych, wykresu funkcji po interpolacji, wykresu błędu interpolacji,
porównania funkcji interpolującej, interpolowanej i węzłów interpolacji. Dodatkowo w skrypcie
wyznaczana jest także maksymalna wartość błędu bezwzględnego zarejestrowanego w analizowanym
przedziale.
% METODY NUMERYCZNE : LABORATORIUM I : INETRPOLACJA
% ZADANIE 1 : Interpolacja wbudowanymi narz
ę
dziami MATLAB'a
close
all
clc
% Wykre
ś
lenie w
ę
złów interpolacyjnych xi, yi
figure(1);
plot(xi,yi,
'o'
);
xlabel (
'xi'
);
ylabel (
'yi = f(xi)'
);
title (
'Rozmieszczenie w
ę
złów interpolacyjnych'
);
% Interpolacja wbudowanymi narz
ę
dziami MATLAB'a
% xi, yi - współrz
ę
dne w
ę
złów interpolacyjnych
% x_p - przedział punktów dla których przeprowadzana...
% b
ę
dzie interpolacja
% 'metoda' - wybór metody interpolacyjnej
% y - funkcja zinterpolowana
x_p = 0:0.2:10;
% zbada
ć
wpływ skoku przedziału (np: 0.2,0.5,1)
y = interp1(xi,yi,x_p,
'nearest'
);
% Wykre
ś
lenie funkcji y = f(x_p)
figure(2);
plot(x_p,y);
xlabel (
'x_p'
);
ylabel (
'y = f(x_p)'
);
title (
'Wykres funkcji po interpolacji metod
ą
TU WPISA
Ć
METOD
Ę
'
);
% Wyznaczenie warto
ś
ci bł
ę
du
h = sin(c*x_p)+sin(2*d*x_p);
% Wpisa
ć
analizowan
ą
funkcj
ę
bazow
ą
% UWAGA !! zamieni
ć
x na x_p
blad = y-h;
max_blad_bezwzgledny = max(abs(blad))
% Wykre
ś
lenie funkcji bł
ę
du
figure(3);
plot(x_p,blad);
10
xlabel (
'x'
);
ylabel (
'Warto
ść
bł
ę
du delta_y'
);
title (
'Wykres błedu interpolacji dla metody WPISA
Ć
METOD
Ę
'
);
% Zestawienie wykresów funkcji i w
ę
złów
figure(4);
plot(xi,yi,
'o'
,x_p,y,
'r-'
,x_p,h,
'g-'
);
xlabel (
'x'
);
ylabel (
'yi,y=f(x_p)'
);
title (
'Wynik interpolacji, funckja oryginalna i w
ę
zły '
);
SPRAWOZDANIE:
- przedstawić zestaw rysunków odnoszących się do różnych metod interpolacyjnych;
- sporządzić tabele zestawiającą maksymalną wartość błędu dla analizowanych przypadków
- zbadać wpływ skoku przedziału, poprzez zmianę parametrów 0.2, 0.5, 1;
- sformułować wnioski dotyczącej zrealizowanej części ćwiczenia.
4.3.
Zadanie obliczeniowe z metody Lagrange'a.
Ten punkt ćwiczenia, poświęcony został analizie algorytmu interpolacji wielomianowej
Lagrange'a. Celem tego ćwiczenia jest zapoznanie Studentów z realizacją algorytmu poprzez
przeprowadzenia w MATLAB' ie ćwiczenia obliczeniowego, mającego na celu wyznaczenie wartości
funkcji dla zadanych argumentów.
Zadanie : Korzystając z wiedzy zdobytej podczas wykładu oraz przytoczonej w punkcie 2.1.,
wyznaczyć wartości funkcji dla dwóch argumentów analizowanego przedziału :
= ( = 1) oraz
C
= ( = 4). Węzły interpolacyjne, na podstawie których zrealizować należy obliczenia
zestawione zostały w tabeli nr. 1.
Tab. 1. Węzły interpolacyjne do zadania 4.3.
n
1
2
3
4
x
0
2
3
5
y = f(x)
5
9
23
52
SPRAWOZDANIE:
- wyznaczyć wartości funkcji dla punktów x = 1 i x = 4;
- podać wartości współczynników funkcji kardynalnych l;
- sporządzić wykres funkcji y =f(x) i nanieść na niego wyznaczone punkty;
- korzystając z narzędzia Basic Fitting, nanieść na wykres funkcji dodatkowe wykresy
interpolacji (co najmniej 2 metody);
- sformułować wnioski.
4.4.
Interpolacja z wykorzystaniem metody Newton' a.
Jak wspomniano na wstępie instrukcji algorytm Lagrange'a pomimo swojej prostoty jest dość
mało efektywny w realizacji. Znacznie powszechniej do interpolacji w programach matematycznych
wykorzystuje się algorytm Newton' a. Poniższe ćwiczenie ma na celu zapoznanie Studenta z metodą
11
realizacji algorytmu Newton' a i wykorzystanie go do interpolacji w oparciu o otrzymane węzły
interpolacyjne.
UWAGA : do poprawnego wykonania ćwiczenia, w przestrzeni roboczej muszą znajdować się jedynie
wektory xi , yi oraz indywidualne parametry c, d i k.
Skrypt pozwalający na wykonanie ćwiczenia przedstawiony został poniżej. Odwołuje się on do dwóch
funkcji użytkownika: wspol_newton (przeznaczonej do obliczania współczynników a wielomianu)
oraz do funkcji wielomian_newton (przeznaczonej do obliczania wielomianu interpolującego). Do
prawidłowego wykonania ćwiczenia, przytoczone funkcje muszą zostać zdefiniowane przed
przystąpieniem do pisania skryptu wykonawczego.
% METODY NUMERYCZNE : LABORATORIUM I : INETRPOLACJA
% ZADANIE 3_1 : Zadanie obliczeniowe z metody Newtona
% Funkcja zwraca współczynniki a wielomianu Newtona
function
a = wspol_newton(xi,yi)
n = length(xi);
a = yi;
for
k = 2:n
a(k:n) = (a(k:n) - a(k-1))./(xi(k:n) - xi(k-1));
end
% METODY NUMERYCZNE : LABORATORIUM I : INETRPOLACJA
% ZADANIE 3_2 : Zadanie obliczeniowe z metody Newtona
% Funkcja zwraca warto
ś
ci wielomianu w punkatch x
function
w = wielomian_newton(a,xi,x)
n = length(xi);
w = a(n);
for
k = 1:n-1;
w = a(n-k) + (x - xi(n-k)).*w;
end
% METODY NUMERYCZNE : LABORATORIUM I : INETRPOLACJA
% ZADANIE 3 : Zadanie obliczeniowe z metody Newtona
% UWAGA : Do wykonania
ć
wiczenia wymagane jest, aby w przestrzeni
% roboczej znajdowały si
ę
wektory xi i yi okre
ś
laj
ą
ce
% w
ę
zły interpolacyjne, oraz indywidualne zmienne studenta c i d.
% Były one generowane w
ć
wiczeniu pierwszym
close
all
clc
a=wspol_newton(xi, yi);
% wyznaczenie współczynników a
% wielomianu Newton'a
' x yInterpolacja yWzorcowe'
% utworzenie opisu kolumn wyników
12
for
x=0:0.25:10
yInterpolacja=wielomian_newton(a,xi,x);
% wyznaczenie warto
ś
ci wielomianu
% Newton'a
yWzorcowe=sin(c*x)+sin(2*d*x);
% Wzorcowe wyniki oblicze
ń
% TU WPISA
Ć
FUNKCJ
Ę
Z GENERATORA
fprintf(
'%10.5f'
,x,yInterpolacja,yWzorcowe)
% formatowanie
fprintf(
'\n'
)
%wy
ś
wietlenia wyników
end
Prawidłowo wykonane pliki, po uruchomieniu powinny wygenerować tablicę trzykolumnową
zawierającą zmienne x, yInterpolacja oraz yWzorcowe. Na ich podstawie możliwe jest ocenienie
przydatności analizowanego narzędzia poprzez porównanie funkcji interpolującej i interpolowanej.
SPRAWOZDANIE:
- przeprowadzić analizę działania algorytmu dla trzech wartości kroku przedziału x;
- wyniki przedstawić w postaci tabelarycznej;
- dla analizowanych przypadków przedstawić porównanie graficzne funkcji interpolowanej
i funkcji interpolującej;
- sformułować wnioski.
5.
Zagadnienia kontrolne.
5.1.
Sformułować definicję zagadnienia interpolacji.
5.2.
W graficzny sposób przedstawić istotę interpolacji (uwzględnić błąd interpolacji).
5.3.
Jakie postaci może przybierać funkcja interpolująca ?
5.4.
W skrócie przedstawić istotę interpolacji wielomianowej.
5.5.
Krótko zdefiniować teorię interpolacji Lagrange'a.
5.6.
Krótko zdefiniować teorię interpolacji Newton'a.
5.7.
Od czego zależeć będzie dokładność interpolacji ?
5.8.
Jakie kryterium powinno spełniać prawidłowo dobrane narzędzie interpolujące ?
5.9.
Wymienić wbudowane narzędzia interpolacji MATLAB' a.
6.
Bibliografia.
[1]
Fortuna Z., Macukow B., Wąsowski J., Metody Numeryczne, wydanie 6, wyd. WNT,
Warszawa, 2004.
[2]
Kiusalaas J., Numerical Methods in Engineering with MATLAB 2
nd
Edition, wyd.
Cambridge University Press, Cambridge (UK) , 2009.
[3]
Mrożek B., Mrożek Z., MATLAB i Simulink Poradnik użytkownika. Wydanie II
zmienione i rozszerzone, wyd. HELION, Gliwice, 2004.