sprawko 3 interpolacja.doc

(73 KB) Pobierz
POLITECHNIKA WROCŁAWSKA

POLITECHNIKA WROCŁAWSKA

ZAKŁAD AUTOMATYKI
i STEROWANIA w ENERGETYCE

Skład grupy:

 

1. Anna Knap 170739

 

Wydział: Elektryczny

Rok studiów: 3

Rok Akademicki : 2010/2011

Grupa:

Termin: Wtorek, 07:30

METODY NUMERYCZNE

Data wykonania ćwiczenia:

15.03.2011

Nr ćwiczenia: 1

Temat:

Interpolacja funkcji dyskretnej.

Data oddania sprawozdania:

22.03.2011

Prowadzący:

Mgr inż. Łukasz Staszewski

 

 

 

Cel ćwiczenia: Zapoznanie się ze sposobami interpolacji funkcji  przedstawionej w postaci próbek.

 

Przebieg ćwiczenia:

 

1. Dokonanie interpolacji z gotowych funkcji Matlaba, oraz z otrzymanego m-pliku:

 

M-plik:

 

%% definiowanie tabelki

clc;clear all;close all;

T=0.012;

t=0:T:7;

k=0:7;

y= [-2 -1 0.5 1.6 1.0 0.2 -0.6 -0.8];

 

%% interpolacje:

y1=INTERP1(k,y,t,'linear');

y2=INTERP1(k,y,t,'cubic');

y3=INTERP1(k,y,t,'spline');

 

%%

%interpolacja 3-krokowa:

l=1;

m=0;

P=1:(max(k)/T)+1;                       % prelokacja zmiennej P

for i= 1:length(y)-2

    d= m:T:2;

    for h=1:length(d)

   

P(l)= 0.5*(2*y(i)-d(h)*(3*y(i)-4*y(i+1)+y(i+2))+(d(h)^2)*...

    (y(i)-2*y(i+1)+y(i+2)));

        l=l+1;   

    end

    m=1+T;

end

 

%%

%kreslenie wykresow

plot(k,y,'*black')

axis([0 7 -2 2]);

hold on;grid on;

plot(t,P,'magenta');

 

plot(t,y1,'r')

plot(t,y2,'g')

plot(t,y3,'b')

hold on;grid on;

 

%%

%opis wykresów

title('Interpolacja 3 metodami');

xlabel('próbki');

ylabel('Amplituda');

legend('probki','3-krokowa','linear','cubic','spline')

 

[n1,m1]=size(P);%wszystkich interpolacji

P1=P(:,1:m1-2); );%zmniejszenie wektora o punkty, które nie były in terpolowane

%zmniejszenie pozostalych wektorow

t1=t(:,1:m1-2); );

y1a=y1(:,1:m1-2); );

y2a=y2(:,1:m1-2); );

y3a=y3(:,1:m1-2); );

 

%%

%kreslenie wykresow

plot(k,y,'*black')

axis([0 7 -2 2]);

hold on;grid on;

plot(t1,P1,'magenta');

plot(t1,y1a,'r')

plot(t1,y2a,'g')

plot(t1,y3a,'b')

hold on;grid on;

 

%%

%opis wykresów

title('Interpolacja 3 metodami');

xlabel('próbki');

ylabel('Amplituda');

legend('probki','3-krokowa','linear','cubic','spline')

 

 

 

 

Aby wykresy zostały wykreślone poprawnie, musiałam pominąć 2 ostatnie punkty interpolacji 3-krokowej przy rysowaniu wykresu, inaczej 2 ostatnie próbki przyjmowały wartości rzędu 583.

 

Wykreślona charakterystyka:

 

 

 

 

 

 

 

 

2. Porównanie, która z funkcji Matlaba najbardziej odpowiada interpolacji 3-krokowej:

 

a) Graficznie (typ ‘line’ można od razu odrzucić, więc zamieściłam tylko pozostałe):

 

Można zaobserwować, że funkcja ‘spline’ jest najbliższa naszej interpolacji.

 

 

 

 

b) Wyliczanie błędu przez porównanie maksymalnej różnicy między funkcjami:

 

Dopisane do poprzedniego m-pliku:

%%liczenie maksymalnego błędu

A=max(abs(P1-y2a));

B=max(abs(P1-y3a));

if A>B

    disp('Interpolacja 3-krokowa jest najbardziej przyblizona przez interpolacje, z użyciem opcji "spline" ')

else

    disp('Interpolacja 3-krokowa jest najbardziej przyblizona przez interpolacje, z użyciem opcji "cubic" ')

end

Odpowiedź Matlaba:

 

Interpolacja 3-krokowa jest najbardziej przyblizona przez interpolacje, z użyciem opcji "spline"

 

 

 

 

 

c) Wykreślenie charakterystyk różnic, aby sprawdzić, czy funkcja ‘cubic’ jednorazowo wykazała, większy błąd, czy utrzymywał się on  cały czas.

 

 

Wnioski:

·         Interpolacja 3-krokowa nie działa na 2 ostatnich elementach i należy je pominąć

·         Interpolację 3-krokową, dla moich parametrów najlepiej przybliża interpolacja typu spline, maksymalna wartość różnicy jest mniejsza niż dla ‘cubic’ a na wykresie widać, że utrzymywała się na niższym poziomie

·         Gotowe funkcje matlaba działają o wiele szybciej niż nasz program

·         Interpolacja typu ‘line’ najgorzej przybliża funkcję dyskretną

Zgłoś jeśli naruszono regulamin