Método de Interpolação de Lagrange em Scilab
Versão do Scilab : 5.5.2
clc
clear
//funcao que retorna o polinomio de lagrange
function y=polinomioLagrange(tab);
// calcula o polinomio interpolador pelo metodo de lagrange;
[l,n]=size(tab);
x=tab(1,:);
for i=1:n
if i>size(x) then
error(" i incompativel com dimensao da tabela");
end;
[l,n]=size(x);
for k=1:i-1
r(k)=x(k)
end;
for k=i:n-1
r(k)=x(k+1)
end;
P=1;
for k=1:(n-1)
P=P*(x(i)-r(k))
end;
if P==0 then
error("tabela tem elementos iguais");
end;
y=poly(r, "x")/P;
L(i)= y
end;
p=0;
for i=1:n
p=p + tab(2,i)*L(i)
end;
y=p;
endfunction
//ENTRADA DE DADOS
//primeira linha é o x (pontos do eixo x)
//segunda linha é o y (pontos do eixo y)
tab = [0.55 0.60 0.65; 1.44 1.42 1.39]
polinomio = polinomioLagrange(tab)
disp(polinomio, "Polinomio:")
//calcula o valor de um ponto no polinomio inicial já derivado
resultado = horner(polinomio,0.62)
disp(resultado, "Resultado de um ponto na derivada:")
clc
clear
//funcao que retorna o polinomio de lagrange
function y=polinomioLagrange(tab);
// calcula o polinomio interpolador pelo metodo de lagrange;
[l,n]=size(tab);
x=tab(1,:);
for i=1:n
if i>size(x) then
error(" i incompativel com dimensao da tabela");
end;
[l,n]=size(x);
for k=1:i-1
r(k)=x(k)
end;
for k=i:n-1
r(k)=x(k+1)
end;
P=1;
for k=1:(n-1)
P=P*(x(i)-r(k))
end;
if P==0 then
error("tabela tem elementos iguais");
end;
y=poly(r, "x")/P;
L(i)= y
end;
p=0;
for i=1:n
p=p + tab(2,i)*L(i)
end;
y=p;
endfunction
//ENTRADA DE DADOS
//primeira linha é o x (pontos do eixo x)
//segunda linha é o y (pontos do eixo y)
tab = [0.55 0.60 0.65; 1.44 1.42 1.39]
polinomio = polinomioLagrange(tab)
disp(polinomio, "Polinomio:")
//calcula o valor de um ponto no polinomio inicial já derivado
resultado = horner(polinomio,0.62)
disp(resultado, "Resultado de um ponto na derivada:")
Comentários
Postar um comentário
Obrigado pelo contato, retornarei o mais breve possível!