Lagrange

Enviado por Programa Chuletas y clasificado en Matemáticas

Escrito el en español con un tamaño de 1,5 KB

 
function y= lagrange(FuncionInterpolada,inicio,fin,npuntos,PuntosInterpolar)

h=(fin-inicio)/(npuntos-1);
vx=[inicio:h:fin]; %Obtenemos los puntos que nos dan
vy=feval(FuncionInterpolada,vx); %Se evalua la funci´on en los puntos que nos dan

%Hace que en principio la matriz de salida valga 0, y tenga la misma dimensi´on que PUNTOSINTERPOLAR
y=zeros(size(PuntosInterpolar));

%Este for realiza el sumatorio (en matlab las matrices empiezan en el 1)
for i=1:npuntos

%hacemos que lx valga uno para que las multiplicaciones no salgan nulas
lx=ones(size(PuntosInterpolar));

%Este for realiza el productorio
for j=1:npuntos
if i~=j %i debe ser distinto de j
lx=lx.*(PuntosInterpolar-vx(j))/(vx(i)-vx(j));
end
end

%realiza la suma
y=y+vy(i).*lx;
end



function resultado=secante_s(nombre_f, nombre_df, x0, delta_x, epsilon_y,
iter_max)

xh=x0+delta_x*10;
xi=x0;
xhi=x0;
i=0;
while(i<=iter_max & abs(xi-xh)>delta_x &
epsilon_y

xi=xh-feval(nombre_f,xh)*(xh-xi)/(feval(nombre_df,xh)-feval(nombre_df,xi))

i=i+1;
xh=xi;
xhi=xh;
end;

resultado(1)=xi;
resultado(2)=abs(feval(nombre_f,xi)-feval(nombre_f,xh))
resultado(3)=i;

Entradas relacionadas: