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)

Comentários

Postagens mais visitadas deste blog

Método da Interpolação por Eliminação Gaussiana em Scilab

Cálculo do Erro para Interpolação em Scilab

Método de Interpolação de Lagrange em Scilab