You are on page 1of 2

ERIKA SANCHEZ MUÑIZ

MIE
12 de mayo de 2010

TAREA MATLAB:
INTERPOLACION DE NEWTON.

PROGRAMA:
clear all;
clc;

t=[0*exp(-6):0.1*exp(-6):10*exp(-6)];
sen1=sin(2*pi*100*t);
sen2=sin(2*pi*130*t);
y=sen1+sen2;
n=5;
x=t(5:5+n+1);
Y=y(5:5+n+1);

subplot(5,1,1),plot(t,sen1),title('Sen1: 100 Hz')


subplot(5,1,2),plot(t,sen2),title('Sen2: 130 Hz')
subplot(5,1,3),plot(t,y),title('Y=Sen1+Sen2')
subplot(5,1,4),plot(t,y,x,Y,'.r'),title('Muestreo')

xa=x;
ya=Y;
coef=zeros(length(Y));
coef(:,1)=Y';

for k=2:length(x)
for j=1:length(x)+1-k
coef(j,k)=(coef(j+1,k-1)-coef(j,k-1))/(x(j+k-1)-x(j));
end
end

for a=1:length(x)
ds=num2str(abs(coef(1,a)));

if coef(1,a)<0
signo2='-';
else
signo2='+';
end
if a>1
if x(a-1)<0
signo1='+';
else
signo1='-';
end
end
if a==1
s=num2str(coef(1,1));
elseif a==2
polact=['(x' signo1 num2str(abs(x(a-1))) ')' ];
actual=[ds '*' polact];
s=[s signo2 actual];
else
polact=[polact '.*' '(x' signo1 num2str(abs(x(a-1))) ')' ];
actual=[ds '*' polact];
s=[s signo2 actual];
end
ERIKA SANCHEZ MUÑIZ
MIE
12 de mayo de 2010

end

xinterpolar=[];
yinterpolar=[];

for i=1:n
xinterpolar=[xinterpolar ; (xa(1,i)+xa(1,i+1))/2];
x=xinterpolar(i,1);
yinterp=eval(s);
yinterpolar= [yinterpolar; yinterp];
end

xg=linspace(min(xa),max(xa));
x=xg;
yg=eval(s);
subplot(5,1,5),plot(xg,yg,xa,ya,'.r',xinterpolar,yinterpolar,'xr'),title('Inte
rpolacion')

RESULTADOS:

You might also like