Método da Interpolação de Newton em Scilab
Versão do Scilab: 5.5.2.
clc
clear
function [polinomio] = polinomioNewton(vetX, vetY)
n = size(vetX, 1) - 1
x = poly(0,"x")
cpy = vetY
coeficientes = []
polinomio = vetY(1)
for i=1:n
diferences = []
for j=1:(n - i+1)
diference = (cpy(j+1) - cpy(j) ) / (vetX(j+1) - vetX(j))
diferences = [diferences ; diference]
end
coeficientes(i) = diferences(1);
cpy = diferences
end
cpy = x -vetX
for i=1: n
polinomio = polinomio + prod(cpy(1:i)) * coeficientes(i)
end
endfunction
//ENTRADA DE DADOS
vetX = [0; 1822; 2994; 3640; 8848]
vetY = [100; 94; 91; 87; 71]
polinomio = polinomioNewton(vetX, vetY)
disp("Polinomio de Newton: ")
disp(polinomio)
//calcula o valor de um ponto no polinomio
result = horner(polinomio,2892)
disp(result)
clc
clear
function [polinomio] = polinomioNewton(vetX, vetY)
n = size(vetX, 1) - 1
x = poly(0,"x")
cpy = vetY
coeficientes = []
polinomio = vetY(1)
for i=1:n
diferences = []
for j=1:(n - i+1)
diference = (cpy(j+1) - cpy(j) ) / (vetX(j+1) - vetX(j))
diferences = [diferences ; diference]
end
coeficientes(i) = diferences(1);
cpy = diferences
end
cpy = x -vetX
for i=1: n
polinomio = polinomio + prod(cpy(1:i)) * coeficientes(i)
end
endfunction
//ENTRADA DE DADOS
vetX = [0; 1822; 2994; 3640; 8848]
vetY = [100; 94; 91; 87; 71]
polinomio = polinomioNewton(vetX, vetY)
disp("Polinomio de Newton: ")
disp(polinomio)
//calcula o valor de um ponto no polinomio
result = horner(polinomio,2892)
disp(result)
Comentários
Postar um comentário
Obrigado pelo contato, retornarei o mais breve possível!