You are on page 1of 4

Interpolacin de Lagrange

Use el Programa 4.1 para hallar los coeficientes del polinomio interpolador del
Problema 2, apartados (a) y (c), de la subseccin Algoritmos y programas de la
seccin 4.2. Esboce en un mismo dibujo las grficas de cada funcin y del
correspondiente polinomio interpolador.
2. En la siguiente tabla se muestran las temperaturas que fueron medidas cada hora,
durante un lapso total de 5 horas, en Sevilla un da 27 de octubre.
Hora Grados (Sevilla)
13
18
14
18
15
17
16
16
17
15
18
14
(a) Use el programa 4.1 para construir el polinomio interpolador de Lagrange
correspondiente a los datos de la tabla.
Algoritmo que genera el Polinomio interpolador de Lagrange
Fuction [C.L]=lagrange(X,Y)
X=input('Ingrese el vector x:');
Y=input('Ingrese el vector y:');
%X es el vector de abscisa
%Y es el vector de ordenadas
%Resultados
%C es la matriz que contiene los coeficientes del polinomio interpolador de Lagrange
%L es la matriz que contiene los coeficientes de los polinomios coeficientes de
Lagrange
w=length(X);
n=w-1;
L=zeros(w,w);
%Formacion de los polinomios coeficientes de Lagrange
for k=1:n+1
V=1;
for j=1:n+1
if k~=j
V=conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(k,:)=V;
end
%Calculo de los coeficientes del polinomio
%interpolador de Lagrange
C=Y*L;
x0=min(X):0.001:max(X);
y0=polyval(C,x0);
clf

grid on
hold on
plot(X,Y,'*')
plot(x0,y0,'b')
title('Polinomio Interpolador de Lagrange')

Solucin del apartado (a)


Ingrese el vector x: [13 14 15 16 17 18]
Ingrese el vector y: [18 18 17 16 15 14]

ans =

1.0e+003 *

0.0000 -0.0007

0.0213 -0.3393

2.6977 -8.5360

(c) Dibuje los datos de la tabla y el polinomio del apartado (a) en el mismo grfico y
discuta el error que puede aparecer al usar dicho polinomio para estimar la temperatura
media.
Polinomio Interpolador de Lagrange
18.5
18
17.5
17
16.5
16
15.5
15
14.5
14
13.5
13

13.5

14

14.5

15

15.5

16

16.5

17

17.5

18

Polinomio interpolador de Newton


1. Use el Programa 4.2 y repita el Problema 2 de la subseccin Algoritmos y
programas de la seccin 4.3
Algoritmo que genera el Polinomio interpolador de Newton
Function [C,D]=newpoly(X,Y)
X=input('Ingrese el vector x:');
Y=input('Ingrese el vector y:');
%X es el vector de abscisa
%Y es el vector de ordenadas
%C contiene los coefientes del polinomio interpolador de newton
%D contiene la tabla de diferencias divididas
n=length(X);
D=zeros(n,n);
D(:,1)=Y';
for j=2:n
for k=j:n
D(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1));
end
end
C=D(n,n);
for k=(n-1):-1:1
C=conv(C,poly(X(k)));
m=length(C);
C(m)=C(m)+D(k,k);
end
Ingrese el vector x: [13 14 15 16 17 18]
Ingrese el vector y: [18 18 17 16 15 14]
Los coeficientes del polinomio interpolador son:
1.0e+003 *

0.0000 -0.0007 0.0213 -0.3393 2.6977 -8.5360

Tabla de diferencias divididas:


18.0000

18.0000

17.0000 -1.0000 -0.5000

16.0000 -1.0000

0 0.1667

15.0000 -1.0000

0 -0.0417

14.0000 -1.0000

0 0.0083

2. En el programa 4.2 la matriz D se emplea para almacenar la tabla de diferencias divididas.


(a) Compruebe que la siguiente modificacin del Programa 4.2 es una forma equivalente
de calcular el polinomio interpolador de Newton.
for k=0:N
A(k)=Y(k);
end
for j=1:N
for k=N:-1:j
A(k)=A(k)-A(k-1))/(X(k)-X(k-j));
end
end

Con el cdigo anterior el programa produce error por lo tanto

You might also like