% Rungen koe 18.8.04 HA
% Tämä tekstitiedosto, nimeltään runge.m, voidaan suorittaa Matlabissa kirjoittamalla
% komentokehotteseen tiedoston nimi näin:
% >> runge
% Tällöin tiedoston runge.m on oltava työskentelyhakemistossa tai Matlab-polun varrella.
% Kommentit kirjoitetaan %-merkin perään.
close all; clear
f=inline('1./(1+25*x.^2)','x')  % Suoritetaan funktiomääritys niin, että
                                % Matlab laskee vektorilausekkeilla, siksi ./ ja .^                                
x=linspace(-1,1,100);                                
plot(x,f(x),'k'); ylim([-0.5 1.5]) ; hold on
n=5;
X=linspace(-1,1,n+1)                                            
c=polyfit(X,f(X),n);    % c=interpolaatiopolynomin kertoimien vektori 
p=polyval(c,x);         % p=c-kertoimien määräämän polynomin arvojen vektori
                        % x-vektorin pisteissä.
subplot(221)
plot(X,f(X),'ok',x,f(x),'b',x,p,'r')
n=20;
X=linspace(-1,1,n+1)          
c=polyfit(X,f(X),n);
p=polyval(c,x);
subplot(222)
%plot(x,f(x),'b',x,p,'r-.')
plot(x,f(x),'b',x,p,'r')
ylim([-0.5 1])
subplot(223)
plot(x,p+0.01,'r',x,f(x),'b')
axis([-0.6 0.6 0 1])
subplot(224)
plot(x,f(x)-p,'k')
xlim([-0.6 0.6])


                                
                                
