Tutorial MATLAB 04 2


Materiały do Laboratorium Informatyki Rok akademicki: 2007/08
Semestr: letni
MATLAB  cz. 4.2  Interpolacja
Interpolacja to estymacja wartości leżących pomiędzy znanymi punktami. Przykład:
y
4
3
3
2
1
0 1 2 3 4 x
?
y(1,5) =
Znając wartości funkcji y=f(x) tylko w określonych punktach chcemy estymować wartości tej
funkcji pomiędzy tymi punktami, np. jaka jest wartość tej funkcji dla x=1,5? Cechą
interpolacji jest to, że funkcja interpolująca zawsze posiada takie same wartości jak funkcja
interpolowana w węzłach interpolacji (czyli w miejscach w których znamy wartości funkcji
interpolowanej  w naszym przypadku, węzłami interpolacji są x=0,1,2,3,4).
Środowisko MATLAB a udostępnia szereg funkcji realizujących interpolację.
Interpolacja jednowymiarowa
Przestawiony powyżej przykład dotyczy interpolacji jednowymiarowej (funkcja którą chcemy
interpolować jest funkcją jednej zmiennej). Funkcją realizującą interpolację jednowymiarową
jest interp1. Funkcja ta ma następującą postać:
yi = interp1(x,y,xi,method)
gdzie:
y  wektor znanych wartości funkcji interpolowanej,
x  wektor o tej samej długości co wektor y, zawierający punkty dla których wektor y
podaje wartości funkcji,
xi  wektor z punktami, dla których chcemy wyznaczyć wartości funkcji interpolującej
method  metoda interpolacji:
 nearest  ta metoda ustala wartość interpolowaną jako wartość najbliższego
punktu funkcji interpolowanej.
 linear  ta metoda ustala wartość interpolowaną za pomocą funkcji liniowej
pomiędzy węzłami interpolacji (ta metoda jest metoda domyślną)
Opracował: dr inż. Witold Nocoń
Materiały do Laboratorium Informatyki Rok akademicki: 2007/08
Semestr: letni
 spline - ta metoda ustala wartość interpolowaną za pomocą funkcji kwadratowej
pomiędzy węzłami interpolacji,
 pchip lub  cubic  metoda podobna do powyższej, jednak zachowuje
monotoniczność i kształt danych.
Przykład:
Funkcja którą należy interpolować dana jest następującymi wektorami.
x=[0 1.1 2.1 3.2 3.9 5.0 6.1 6.9 8.1 9 10];
y=[1.1 2.2 2.9 0.5 -0.4 -2 0 1 1.3 1.8 1.4];
Co po wykonaniu następujących poleceń:
plot(x,y,'*');
grid;
title( Funkcja interpolowana );
title('Funkcja interpolowana');
xlabel('x');
ylabel('y');
hold on
powoduje wyświetlenie następującego wykresu:
Funkcja interpolowana
3
2.5
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
0 1 2 3 4 5 6 7 8 9 10
x
Chcemy teraz wyznaczyć wartości tej funkcji dla zmiennej:
x " 0,10 z krokiem dx=0.05
Aby znalezć funkcję interpolującą metodą  nearest należy wykonać następujące polecenia:
xi=[0:.05:10];
yi=interp1(x,y,xi,'nearest');
plot(xi,yi,'r');
Wynik przedstawiony jest na poniższym wykresie:
Opracował: dr inż. Witold Nocoń
y
Materiały do Laboratorium Informatyki Rok akademicki: 2007/08
Semestr: letni
Funkcja interpolowana
3
2.5
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
0 1 2 3 4 5 6 7 8 9 10
x
Widzimy, że wartości funkcji pomiędzy węzłami interpolacji przyjmują wyłącznie wartości
tych węzłów. Przyjmowana jest zawsze wartość funkcji interpolowanej w węzle leżącym
najbliżej punktu w którym szukamy wartości interpolowanej. Nie trudno zauważyć, że ta
metoda interpolacji nie będzie zbyt często wykorzystywana w praktyce.
Analogicznie można dokonać interpolacji metodą  linear :
yi_lin=interp1(x,y,xi,'nearest');
plot(xi,yi_lin,'g');
Wynik przedstawiony jest na poniższym wykresie:
Funkcja interpolowana
3
2.5
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
0 1 2 3 4 5 6 7 8 9 10
x
W tym przypadku, sens interpolacji jest oczywiście większy. Interpolacja na za pomocą
dwóch pozostałych metod daje następujące wyniki:
Metoda  spline : Metoda:  cubic :
Funkcja interpolowana Funkcja interpolowana
4 4
3 3
2 2
1 1
0 0
-1 -1
-2 -2
-3 -3
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10
x x
Opracował: dr inż. Witold Nocoń
y
y
y
y
Materiały do Laboratorium Informatyki Rok akademicki: 2007/08
Semestr: letni
Widać, że niewielkie różnice da się zaobserwować w pobliżu węzłów interpolacji. W
metodzie  spline może się zdarzyć, że wartości funkcji interpolującej przyjmują wartości z
poza przedziału określonego przez dwa sąsiednie węzły interpolacji (np. pomiędzy węzłami
x=9 a x=10).
Opracował: dr inż. Witold Nocoń


Wyszukiwarka

Podobne podstrony:
Tutorial MATLAB 3
Tutorial MATLAB
Tutorial MATLAB
Tutorial MATLAB 1
Tutorial MATLAB
Tutorial MATLAB
Tutorial MATLAB
Tutorial MATLAB
Tutorial MATLAB
Tutorial MATLAB
Artificial Neural Networks The Tutorial With MATLAB
matlab tutorium1
Matlab Polski tutorial
matlab tutorium2
Matlab tutorial GUI
MATLAB cw Skrypty
SIMULINK MATLAB to VHDL Route

więcej podobnych podstron