Está en la página 1de 3

Programacin y Mtodos Numricos: Tarea # 8

Andrs Felipe Vsquez Tocora 10 de noviembre de 2012

1. Problema

Extender lo aplicado a interpolacion con los polinomios de Lagrange, visto en clase, a interpolacion con los polinomios de Newton. Basicamente el problema es que dado un conjunto de valores:
X = [x1 , x2 , ..., xn ] F = [f1 , f2 , ..., fn ]

(1) (2)

se encuentre el polinomio interpolador basado en los polinomios de Newton.


2. Solucin

Se realiza el programa en MatLab para construir el polinomio, teniendo en cuenta que los coecientes de cada termino esta dado por las diferencias divididas, construyendose asi una matriz que depende de las ecuaciones 1 y 2.
3. Resultados de los programas

Para comprobar que el programa funciona como se espera se escogen valores de la siguiente manera:
X = [1, 2, 3, 4, 5] F = [2, 3, 4, 5, 6]

(3) (4)

Registrandose una matriz de diferenciasa como la de la ecuacion 6. Ademas se obtuvo el siguiente polinomio interpolador:
P (x) = x + 1 2 5 D= 10 17 0 0 0 3 0 0 5 1 0 7 1 0

(5)

(6)

Lo cual es correcto. Tambien se verico con valores de la funcion x2 + 1, comprobandose tambien que el programa funciona. Por ultimo se construyo el polinomio interpolador de los valores:
X = [0, 1, 2, 3, 4] F = [0.54, 2.26, 0.32, 1.83, 1.31]

(7) (8)

Obteniendose la siguiente matriz de diferencias divididas:


D= 0.54 2.26 0.32 1.83 1.31 0 2.8 2.5 1.51 3.14 0 0 0 0 2.69 0 0.53 1.07 2.32 0.6 0 0 0 0 0.12

(9)

El polinomio interpolador es:


P (x) = 287x 717x3 17353x2 3343x 27 + + 2400 400 2400 400 50
4

(10)

En la gura 1 se muestra la graca de este polinomio interpolador y su interseccion con los puntos iniciales.

Figura 1. Interpolacion del conjunto de datos 7 y 8.

4. Conclusiones

De los resultados de puede concluir que el codigo implementado cumple los requerimientos de interpolacion, pues proporciono polinomios esperados para un conjunto de datos de funciones conocidas y 2

ademas de la gura 1 se observa la correspondencia entre el polinomio interpolador y los puntos iniciles a interpolar.
5. Cdigos

n=input('Cual es el grado del polinomio de interpolacion deseado, n='); fprintf('Con el grado escojido se requieren %.0f puntos\n',n+1); disp('Ingrese los puntos a continuacion'); for i=1:n+1 fprintf('x%.0f=',i-1); X(i)=input(' '); fprintf('f%.0f=',i-1); F(i)=input(' '); end DD=zeros(n+1); DD(:,1)=F; 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 interpolador 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('Que valor desea 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,'g+');

También podría gustarte