Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Índice
Actividad 1: Interpolación de Lagrange 1
I. Objetivos 1
1. Interpolación de Lagrange 1
IV. Procedimiento 4
V. Cuestionario 9
I. Objetivos 11
2. Interpolación de Newton 11
IV. Procedimiento 14
V. Cuestionario 19
R. Mollinedo
1 INTERPOLACIÓN DE LAGRANGE 1
I. Objetivos
Interpolar datos bidimensionales mediante interpolación de Lagrange, usando esta
herramienta interfaces gráficas de usuarios en MatLab
1. Interpolación de Lagrange
La palabra interpolación significa pasar una curva por un conjunto dado de puntos; es
decir, matemáticamente entenderı́amos que si se tiene un conjunto de puntos:
(xi , yi ) para i = 0, 1, . . . , n
debemos hallar una función interpolante, cuya gráfica pase por el conjunto de puntos
dados.
A través de los polinomios, hay distintas formas de aproximar una función, puesto que
son funciones de fácil manejo computacional.
R. Mollinedo
1 INTERPOLACIÓN DE LAGRANGE 2
f (x) ≈ Pn (x)
R. Mollinedo
1 INTERPOLACIÓN DE LAGRANGE 3
x0 x1 xk ... xn x
Para satisfacer Ln,k (xk ) = 1, el denominador de Lk (x) debe coincidir con (1) cuando se
evalúe en x = xk . Es decir,
Yn
x − xi (x − x0 ) · · · (x − xk−1 )(x − xk+1 ) · · · (x − xn )
Ln,k (x) = =
i=0
xk − xi (xk − x0 ) · · · (xk − xk−1 )(xk − xk+1 ) · · · (xk − xn )
i6=k
Ln,k (x)
R. Mollinedo
1 INTERPOLACIÓN DE LAGRANGE 4
donde
Y x − xin
(x − x0 )(x − x1 ) · · · (x − xk−1 )(x − xk+1 ) · · · (x − xn )
Ln,k (x) = = (3)
(xk − x0 )(xk − x1 ) · · · (xk − xk−1 )(xk − xk+1 ) · · · (xk − xn ) i=0
xk − xi
i6=k
para cada k = 0, 1, . . . , n
Escribimos Ln,k (x) simplemente como Lk (x) cuando no haya confusión respecto a su
grado.
IV. Procedimiento
Creamos una interfaces gráficas de usuarios en MatLab usamos GUIDE, lo podemos
hacer Ejecutando la siguiente instrucción en la ventana de comandos: >> guide
R. Mollinedo
1 INTERPOLACIÓN DE LAGRANGE 5
Para empezar creamos una nueva figura y agregamos un Static Text, de bajo de esto
ponemos un Static Text y un Edit Text, debajo de esto ponemos un Static Text y
un Edit Text, debajo de estos controles ponemos un Static Text,y un Edit Text,a un
lado ponemos un Axes y finalmente agregamos dos Listbox y tres Push button; y lo
guardamos como: lagrange.
Ahora vamos editar el callback del botón CALCULAR y agregamos el código nece-
sario para calcular la las raı́ces de una ecuación algebraica con método de Bisección,
R. Mollinedo
1 INTERPOLACIÓN DE LAGRANGE 6
luego editamos del botón SALIR y agregamos el código necesario para cerrar la
ventana, luego editamos del botón NUEVO, cuya acción es limpiar la caja del texto
de la función y los resultados de cada operación.
Con un click derecho en Push button1 menú, nos ubicamos en view Callbacks >>
Callbacks. Esto nos lleva a la subrutina
function pushbutton1_Callback(hObject, eventdata, handles), donde editare-
mos las siguientes lı́neas de código:
variablex=str2num(get(handles.edit1,’string’));
variabley=str2num(get(handles.edit2,’string’));
a=str2num(get(handles.edit3,’string’));
nn=length(variablex);
r=nn-1;
cadite=’Iter.|====’;
cadini=’Coef.|====’;
for i=1:nn-1
if variablex(i)<variablex(i+1)
k=i+1;
else
k=0;
end
end
if k==nn
p=polyfit(variablex,variabley,r);%cálculo de los coeficientes del polinomio
t=variablex(1):0.2:variablex(nn);
s=polyval(p,t);
z=ones(1,nn);
for m=1:length(a)
for i=1:length(variabley)
for j=1:length(variabley)
if i ~=j;
z(i)=z(i).*(a(m)-variablex(j))/(variablex(i)-variablex(j));
end
end
R. Mollinedo
1 INTERPOLACIÓN DE LAGRANGE 7
parc(i)=variabley(i)*z(i);
cadite=strcat(cadite,’|’,num2str(i));
cadini=strcat(cadini,’|’,num2str(p(i)));
end
interpola(m)=sum(parc(1:length(variabley)));
z=ones(1,nn);
end
set(handles.listbox1,’string’,cadite);
set(handles.listbox2,’string’,cadini);
%grafica
plot(t,s,’g’);% graficando el polinomio
xlabel(’x’);ylabel(’y’);
hold on
plot(a,interpola,’or’);
title([’Valores interpolados=’, num2str(interpola)]);
grid
hold off
end
Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button2,
donde editamos las siguientes lı́neas de código
set(handles.edit1,’string’,’’)
set(handles.edit2,’string’,’’)
set(handles.edit3,’string’,’’)
set(handles.listbox1,’string’,’’);
set(handles.listbox2,’string’,’’);
axes(handles.axes1)
plot(0,0)
Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button3,
donde editamos las siguientes lı́neas de código
R. Mollinedo
1 INTERPOLACIÓN DE LAGRANGE 8
end
clear,clc,close all
Para ello debemos determinar los valores de f (xi ), i = 0, 1, . . . , 3 como se puede observan
en la siguiente tabla 1
xi f (xi )
1 1
2 0.5
2.5 0.4
4 0.25
Cuadro 1:
Finalmente para determinar los coeficientes del polinomio, obtenido por la interpo-
lación de lagrange y el valor interpolado, activamos nuestra aplicación, ejecutamos nuestro
programa y tendremos una salida como en la figura 4
R. Mollinedo
1 INTERPOLACIÓN DE LAGRANGE 9
tenderemos
3
X
P (x) = f (xk )Lk (x)
k=0
= −0,05x3 + 0,475x2 − 1,575x + 2,15
V. Cuestionario
1. Para las funciones dadas f (x), sean x0 = 0, x1 = 0,6 y x2 = 0,9. Construya poli-
nomios de interpolación de grado uno y dos a lo máximo para aproximar f (0,45), y
calcule el error real.
2. Aplique el teorema 1.2 para calcular la cota de error en las aproximaciones del
ejercicio 1
3. Use los polinomios interpolantes de Lagrange apropiados de grados unos, dos y tres
para aproximar lo siguiente:
4. Los datos del ejercicio 3 se genera mediante las siguientes funciones. Aplique la
fórmula del error para calcular la cota del error y compárela con el error real en los
casos n = 1 y n = 2.
a) f (x) = x ln x
R. Mollinedo
1 INTERPOLACIÓN DE LAGRANGE 10
5. Aproxime:
1+x
y=
1 + 2x + 3x2
en [0, 5] mediante el polinomio de interpolación de Lagrange P4 (x)
6. Dada
x+1
f (x) =
1 + 2x + 3x2
y la tabla:
i 0 1 2 3
xi 1 1.8 2.5 3
f (xi ) 1/3 0.1955 0.1414 2/27
Estime f (2,41), con un polinomio de Lagrange de grado 3
R. Mollinedo
2 INTERPOLACIÓN DE NEWTON 11
I. Objetivos
Interpolar datos bidimensionales mediante interpolación de Newton, usando esta
herramienta interfaces gráficas de usuarios en MatLab
2. Interpolación de Newton
Si se quisiera agregar un punto de interpolación al conjunto de puntos dados, hay
que proceder a calcular las funciones Lk (x) nuevamente; es decir el conocimiento de la
función Lk (x) para un conjunto de nodos, no nos ayuda a construir las funciones Lk (x)
para un conjunto de nodos ampliado por uno o más puntos de interpolación. Esto es una
gran desventaja para los polinomios de interpolación de Lagrange. Sin embargo se puede
encontrar una forma más eficiente, para un polinomio de interpolación basado en un con-
junto de nodos ampliado.
Veamos:
R. Mollinedo
2 INTERPOLACIÓN DE NEWTON 12
sentarse en la forma:
P2 (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + f (x2 )L2 (x)
(x − x1 )(x − x2 ) (x − x0 )(x − x2 ) (x − x0 )(x − x1 )
= f (x0 ) + f (x1 ) + f (x2 )
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
h f (x )−f (x ) i h f (x )−f (x ) i
· ¸ 1 0 2 1
f (x1 ) − f (x0 ) x1 −x0 x2 −x1
= f (x0 ) + (x − x0 ) + (x − x0 )(x − x1 )
x1 − x0 x0 − x2
Diferencia Divididas
Definición 2.1 1. Dados 2 puntos distintos: xi , xi+1 , se define la diferencia dividida
de f (x) de orden 1 como:
f (xi+1 ) − f (xi )
f [xi , xi+1 ] =
xi+1 − xi
Ası́ para x0 , x1 se tiene,
f (x1 ) − f (x0 )
f [x0 , x1 ] =
x1 − x0
f [x1 , x2 ] − f [x0 , x1 ]
f [x0 , x1 , x2 ] =
x2 − x0
R. Mollinedo
2 INTERPOLACIÓN DE NEWTON 13
esto es,
n−1
Y
Pn (x) = f (x0 )+f [x0 , x1 ](x−x0 )+f [x0 , x1 , x2 ](x−x0 )(x−x1 )+· · ·+f [x0 , . . . , xn ] (x−xj )
j=0
n
X n−1
Y
o abreviando Pn (x) = f [x0 , x1 , . . . , xk ] (x − xj )
k=0 j=0
Esta forma del polinomio de interpolación se conoce con el nombre de polinomio de
interpolación de Newton con diferencias divididas, y su construcción se simplifica
mucho, a partir de la tabla de Diferencias Divididas:
f [x3 , x4 , x5 ] − f [x2 , x3 , x4 ]
Observamos que por ejemplo f [x2 , x3 , x4 , x5 ] =
x5 − x2
R. Mollinedo
2 INTERPOLACIÓN DE NEWTON 14
Paso 1: Para i = 1, 2, . . . n
para j = 1, 2, . . . , i
Fi,j−1 − Fi−1,j−1
tome Fi,j =
xi − xi−j
n
X i=1
Y
Paso 2: Salida P (x) = Fi,j (x − xj )
i=0 j=0
IV. Procedimiento
Creamos una interfaces gráficas de usuarios en MatLab usamos GUIDE, lo podemos
hacer Ejecutando la siguiente instrucción en la ventana de comandos: >> guide
Para empezar creamos una nueva figura y agregamos un Static Text, de bajo de esto
ponemos un Static Text y un Edit Text, debajo de esto ponemos un Static Text y
un Edit Text, debajo de estos controles ponemos un Static Text,y un Edit Text,a un
lado ponemos un Axes y finalmente agregamos dos Listbox y tres Push button; y lo
guardamos como: newton.
R. Mollinedo
2 INTERPOLACIÓN DE NEWTON 15
Ahora vamos editar el callback del botón CALCULAR y agregamos el código nece-
sario para calcular la las raı́ces de una ecuación algebraica con método de Bisección,
luego editamos del botón SALIR y agregamos el código necesario para cerrar la
ventana, luego editamos del botón NUEVO, cuya acción es limpiar la caja del texto
de la función y los resultados de cada operación.
Con un click derecho en Push button1 menú, nos ubicamos en view Callbacks >>
Callbacks. Esto nos lleva a la subrutina
function pushbutton1_Callback(hObject, eventdata, handles), donde editare-
mos las siguientes lı́neas de código:
variablex=str2num(get(handles.edit1,’string’));
variabley=str2num(get(handles.edit2,’string’));
a=str2num(get(handles.edit3,’string’));
nn=length(variablex);
r=nn-1;
cadite=’Iter.|====’;
cadini=’Coef.|====’;
for i=1:nn-1
if variablex(i)<variablex(i+1)
k=i+1;
else
R. Mollinedo
2 INTERPOLACIÓN DE NEWTON 16
k=0;
end
end
if k==nn
p=polyfit(variablex,variabley,r);%cálculo de los coeficientes del polinomio
dif=zeros(nn+1,nn);
dif(1,:)=variablex; dif(2,:)=variabley;
t=variablex(1):0.2:variablex(nn);
s=polyval(p,t);
k=1;
while k<=nn-1
for i=2:nn
if i+k-1<=nn
dif(k+2,i-1)=(dif(1+k,i)-dif(1+k,i-1))/(dif(1,i-1+k)-dif(1,i-1));
end
end
k=k+1;
end
for i=1:nn
coeficiente(i)=dif(i+1,1);
cadite=strcat(cadite,’|’,num2str(i));
cadini=strcat(cadini,’|’,num2str(p(i)));
end
m=1;
while m<=length(a) %interpolacion de los valores de a
parciales(1)=1;
evaluac(1)=coeficiente(1);
for i=2:nn
parciales(i)=(a(m)-variablex(i-1)).*parciales(i-1);
evaluac(i)=coeficiente(i).*parciales(i);
end
interpola(m)=sum(evaluac(1:nn));
m=m+1;
end
set(handles.listbox1,’string’,cadite);
R. Mollinedo
2 INTERPOLACIÓN DE NEWTON 17
set(handles.listbox2,’string’,cadini);
%grafica
plot(t,s,’g’);% graficando el polinomio
xlabel(’x’);ylabel(’y’);
hold on
plot(a,interpola,’or’);
title([’Valores interpolados=’, num2str(interpola)]);
grid
hold off
end
Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button2,
donde editamos las siguientes lı́neas de código
set(handles.edit1,’string’,’’)
set(handles.edit2,’string’,’’)
set(handles.edit3,’string’,’’)
set(handles.listbox1,’string’,’’);
set(handles.listbox2,’string’,’’);
axes(handles.axes1)
plot(0,0)
Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button3,
donde editamos las siguientes lı́neas de código
R. Mollinedo
2 INTERPOLACIÓN DE NEWTON 18
x y
0 70
5 54
7 42
9 65
12 68
Cuadro 3:
Finalmente para determinar los coeficientes del polinomio, obtenido por la interpo-
lación de Newton y el valor interpolado, activamos nuestra aplicación, ejecutamos nuestro
programa y tendremos una salida como en la figura 4
Tendremos
R. Mollinedo
2 INTERPOLACIÓN DE NEWTON 19
V. Cuestionario
1. Use la fórmula de diferencia divididas interpolantes de Newton para construir poli-
nomio interpolantes de grado uno, dos y tres con los siguientes datos. Use cada uno
de los polinomios para aproximar el valor especificado.
R. Mollinedo
2 INTERPOLACIÓN DE NEWTON 20
6. Con una función f las diferencias divididas progresivas están dadas por
x0 = 0,0 f [x0 ]
f [x0 , x1 ]
50
x1 = 0,4 f [x1 ] f [x0 , x1 , x2 ] = 7
f [x1 , x2 ] = 10
x2 = 0,7 f [x2 ] = 6
Determinar los datos que faltan en la tabla
7. En los estudios de radiación inducida por polimerización, una fuente de rayo gama,
fue empleada para dar medidas de dosis de radiación. Sin embargo, el dosaje varió con
la posición del aparato, y se registraron los siguientes datos:
Posición (pulgadas) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
Dosaje 10rad/hra 1.90 2.39 2.71 2.98 3.20 3.22 3.20 2.98 2.74
Ajuste distintos polinomios de interpolación para los grados n = 3,5 para hallar el
dosaje aproximado correspondiente a 1,75 pulgadas. ¿Cuál de ellos considera que se
ajusta menor? ¿porqué?
R. Mollinedo
2 INTERPOLACIÓN DE NEWTON 21
8
x 10
2.6
2.4
2.2
Población
1.8
1.6
1.4
1.2
1940 1950 1960 1970 1980 1990
años
R. Mollinedo