Você está na página 1de 1

clear; clc;

fprintf('metodo de newton\n');
x=input('matriz de x\n');
y=input('matriz de y\n');
z=input('valor a ser interpolado\n');
n=length(x);
f=zeros(n);
for i=1:length(y)
f(i,1)=y(i);
end
for j=2:n
for i=1:n-j+1
f(i,j)=((f(i+1,j-1)-f(i,j-1)))/(x(i+j-1)-x(i)); %calcular a diferença dividida
end
end
prod=1;
P=f(1,1);
for j=1:n-1
prod=prod*(z-x(j));%calcular o valor do polinomio em um ponto dado
P=P+f(1,j+1)*prod;
end
p=num2str(f(1,1)); %montar o polinomio
x2=x*-1;
for j=2:n
operador='';
if f(1,j)>=0
operador='+';
end
prod='';
for i=1:j-1
operador2='';
if x2(i)>=0
operador2='+';
end
prod=strcat(prod,'*(x',operador2,num2str(x2(i)),')');
end
p=strcat(p,operador,num2str(f(1,j)),prod);
end
fprintf('o polinomio é:\n');
fprintf('%c',p);
fprintf('\no valor interpolado é:\n %.7f\n',P); %imprimir o polinomio

metodo de newton

Error using input


Cannot call INPUT from EVALC.

Error in newton (line 3)


x=input('matriz de x\n');

Published with MATLAB® R2016a

Você também pode gostar