clc
clear
disp('  Az f(x) = exp(x)*sin(x^2) függvény interpolációs közelítései');
disp('  az interp1 gyári függvénnyel - ');
f = @(x) exp(x).*sin(x.^2);     % a közelítendő f(x) függvény definíciója

x = 2:0.25:4;                   % alappontok

y = f(x);                       % a függvény értéke az alappontokban

xi = 2:0.01:4;                  % az ábrázoláshoz használt mintapontok
yi =  f(xi);                    % f(x) (pontos) értéke a mintapontokban

yl = interp1(x,y, xi, 'linear');  % lineáris interpoláció - alapértelmezett
ys = interp1(x,y, xi, 'spline');  % köbös spline interpoláció 
yk = interp1(x,y, xi, 'cubic');   % köbös Hermite interpoláció

ido = 5;                          % ido sec késleltetés az egyes ábrák között

plot(x,y,'markersize',28,'r.',xi,yi,'linewidth',2,'r');
legend(' Az [x_i,f(x_i)] alappontok',' f(x) = e^x * sin(x^2) görbéje',
       'location','northwest');
title('Az f(x) = e^x * sin(x^2) függvény interpolációs közelítései','fontsize',14);
hold on;

disp('  1) szakaszonként lineáris interpolációs közelítés');
pause(ido);
plot(xi,yl,'linewidth',2,'b');
legend(' Az [x_i f(x_i)] alappontok',' f(x) = e^x * sin(x^2) görbéje',
       ' szakaszonként lineáris interpolációs közelítés',
       'location','northwest');
refresh

disp('  2) köbös spline interpolációs közelítés');
pause(ido);
plot(xi,ys,'linewidth',2, 'g');
legend('Az [x_i f(x_i)] alappontok','f(x) = e^x * sin(x^2) görbéje',
       'szakaszonként lineáris interpolációs közelítés',
       'spline interpolációs közelítés',
       'location','northwest');
refresh

disp('  3) köbös Hermite interpolációs közelítés');
pause(ido);
plot(xi,yk,'linewidth',2, 'm');
legend('Az [x_i,f(x_i)] alappontok','f(x) = e^x * sin(x^2) görbéje',
       'szakaszonként lineáris interpolációs közelítés',
       'spline interpolációs közelítés',
       'köbös Hermite interpolációs közelítés',
       'location','northwest');
refresh
       
input('Befejezés ENTER-rel');
close