Contents

Matlab/kurssit/H/polyint.m

clear all; close all

Erääseen kuvitteelliseen kemialliseen reaktioon liittyvä data

Kirjasta: Forsythe-Malcolm-Moler s. 81
xdata=[-1 -0.960 -0.86 -0.79 0.22 0.5 0.93];
ydata= [ -1 -0.151 0.894 0.986 0.895 0.5 -0.306];
plot(xdata,ydata,'o') % Piirretään taulukkopisteet erillisinä rinkuloina

a=min(xdata)-0.1;b=max(xdata)+0.1;
c=min(ydata)-0.1;d=max(ydata)+0.1;

axis([a b c d])

m=length(xdata)-1    % Interpolaatiopolynomin asteluku


c=polyfit(xdata,ydata,m); % Interpolaatiopolynomin kertoimet
x=linspace(a,b); % Muodostetaan tiheä pisteistö, jossa polynomin arvot lasketaan..
                  % Muista, että linspace(a,b); on sama kuin
                  % linspace(a,b,100);
y=polyval(c,x);
hold on           % Pidetään aiempi grafiikka
plot(x,y,'r')
grid on

% Tuntuuko uskottavalta?
m =

     6

Annettuun dataan sovitettu interpolaatiopolynomi, eipä todellakaan ole uskottava.
Piirrä nyt ensin paloittain lineaarinen, senhän saat aikaan suoraan plot:lla.