Está en la página 1de 2

Interpolación de Newton

x= %x vector de abscisas
y= %y vector de ordenadas
n=length(x);
p=[1 -x(1)]; %p=poly(x(1)); es otra manera de escribir
a=y(1);
P=a;
for i=2:n
a=(y(i)-polyval(P,x(i)))/polyval(p,x(i));
P=[a*p(1) a*p(2:end)+P]; %Otra manera de Escribir
p=conv(p,[1 -x(i)]); %p=conv(p,poly(x(i))); es otra manera de
escribir
end
P

...............................................................................

Interpolación de Lagrange

x= % VECTOR DE LAS ABSCISAS


y= %VECTOR DE LAS ORDENADAS
n=length(x);
P=zeros(1,n);
for i=1:n
a=x([1:i-1 i+1:n]);
p=[1, -a(1)]; %p=poly(a(1));
for j=2:n-1
p=conv(p,[1,-a(j)]); % p=conv(p, poly(a(j)));
end
pj=y(i)*p/polyval(p,x(i)); %P=P+y(i)*p/polyval(p,x(i)) otr forma de
escribir
P=P+pj; %
end
P

............................................................................

Interpolacion de Fourier

syms x k;
func=[exp(1/x)];%funciones a interpolar (f1;f2;...;fm)
interv=[1.5,4];%intervalos de interpolacion para cada funcion
(a1,b1;a2,b2;...;am,bm)
T=2.5;%periodo de la funcion
n=50;%cantidad de senos y cosenos presentes en la interpolacion
cantPunt=100;%cantidad de puntos para la integracion numerica
x1=1.5;
x2=15;%intervalo para graficar la serie de Fourier
%%
m=length(interv(:,1));
w=2*pi/T;
fcos=cos(k*w*x);
fsin=sin(k*w*x);

a0=0;
for i=1:m
x=linspace(interv(i,1),interv(i,2),cantPunt);
funEval(i,:)=x;
a0=a0+(2/T)*trapz(x,ones(1,cantPunt).*eval(func(i)));
end
serFour=num2str(0.5*a0);%calculo del 1er termino de la serie.
for k=1:n
a=0;
b=0;
for i=1:m%se calculan los coeficientes para cada funcion
x=funEval(i,:);
a=a+(2/T)*trapz(x,ones(1,cantPunt).*eval(func(i).*fcos));%calculo de los
coeficientes de la serie
b=b+(2/T)*trapz(x,ones(1,cantPunt).*eval(func(i).*fsin));
end
serFour=[serFour '+ (' num2str(a) ')*cos(' num2str(k*w) '*x)+ (' num2str(b)
')*sin(' num2str(k*w) '*x)'];%se calcula la serie de Fourier
end

x=linspace(x1,x2,2*cantPunt);
plot(x,eval(serFour),'b',[x1 x2],[0 0],'k')

También podría gustarte