Interpolacion de Newton

3
Interpolacion de newton clear;clc; disp('metodos numericos'); disp('interpolacion'); disp('interpolacion'); n=input('ingrese el grado del polinomio, n='); fprintf('Se necesitan %.0f puntos\n',n+1); disp('ingrese los puntos'); for i=1:n+1 fprintf('x%.0f=',i-1); X(i)=input(' '); fprintf('y%.0f=',i-1); Y(i)=input(' '); end DD=zeros(n+1); DD(:,1)=Y; for k=2:n+1 for J=k:n+1 DD(J,k)=[DD(J,k-1)-DD(J-1,k-1)]/[X(J)-X(J-k+1)]; end end disp('La matriz de diferencias divididas es:'); disp(DD); disp('El polinomio de newton es'); syms x; polnew=DD(1,1); P=1; for i=1:n P=P*(x-X(i)); polnew=polnew+P*DD(i+1,i+1); end polnew=expand(polnew); pretty(polnew); x=input('ingrese el valor de x a interpolar,x='); vi=eval(polnew); fprintf('el valor interpolado es %.2f\n',vi); hold on; ezplot(polnew,[X(1) X(n+1)]); plot(x,vi,'r+');

description

Interpolacion de Newton

Transcript of Interpolacion de Newton

Page 1: Interpolacion de Newton

Interpolacion de newtonclear;clc;disp('metodos numericos');disp('interpolacion');disp('interpolacion');n=input('ingrese el grado del polinomio, n=');fprintf('Se necesitan %.0f puntos\n',n+1);disp('ingrese los puntos');for i=1:n+1 fprintf('x%.0f=',i-1); X(i)=input(' '); fprintf('y%.0f=',i-1); Y(i)=input(' ');endDD=zeros(n+1);DD(:,1)=Y;for k=2:n+1 for J=k:n+1 DD(J,k)=[DD(J,k-1)-DD(J-1,k-1)]/[X(J)-X(J-k+1)]; endenddisp('La matriz de diferencias divididas es:');disp(DD);disp('El polinomio de newton es');syms x;polnew=DD(1,1);P=1;for i=1:n P=P*(x-X(i)); polnew=polnew+P*DD(i+1,i+1);endpolnew=expand(polnew);pretty(polnew);x=input('ingrese el valor de x a interpolar,x=');vi=eval(polnew);fprintf('el valor interpolado es %.2f\n',vi);hold on;ezplot(polnew,[X(1) X(n+1)]);plot(x,vi,'r+');

Page 2: Interpolacion de Newton

function fp = newton_interpolation(x,y,p)% Script for Newton's Interpolation.% Muhammad Rafiullah Arain% Mathematics & Basic Sciences Department% NED University of Engineering & Technology - Karachi% Pakistan.% ---------% x and y are two Row Matrices and p is point of interpolation%% Example% >> x=[1,2,4,7,8]% >> y=[-9,-41,-189,9,523]% >> newton_interpolation(x, y, 5)% OR% >> a = newton_interpolation(x, y, 5)

n = length(x);a(1) = y(1);for k = 1 : n - 1 d(k, 1) = (y(k+1) - y(k))/(x(k+1) - x(k));endfor j = 2 : n - 1 for k = 1 : n - j d(k, j) = (d(k+1, j - 1) - d(k, j - 1))/(x(k+j) - x(k)); endenddfor j = 2 : n a(j) = d(1, j-1);endDf(1) = 1;c(1) = a(1);for j = 2 : n Df(j)=(p - x(j-1)) .* Df(j-1); c(j) = a(j) .* Df(j);endfp=sum(c);