Está en la página 1de 48

Prof. Ing.

Velsquez Sergio
AJUSTE DE CURVAS e INTERPOLACIN
En este tema se trata de describir tcnicas para el ajuste de
curvas sobre datos discretos obtenidos de un evento experimental a
lo largo de un continuo.
Existen dos procedimientos generales para el ajuste de curvas
que se diferencian en funcin del error asignado a los datos
obtenidos.
Regresin por mnimos cuadrados: Se realiza cuando los datos
exhiben un grado significativo de error. En este caso se ajusta una
sola curva que representa la tendencia general de los datos.
Interpolacin: En este caso se conoce que los datos son muy
precisos, El procedimiento ser ajustar una curva o serie de curvas
que pasen por cada uno de los puntos, con lo cual se pueden
realizar estimaciones entre puntos discretos bien conocidos.
El mtodo ms simple para ajustar una curva a los datos obtenidos es ubicar los puntos y
luego dibujar una lnea que visualmente cubra todos los datos. Este procedimiento an
cuando es muy rpido y til para estimaciones rpidas en muy subjetivo, y depender del
punto de vista del estimador.
Se han encontrado dos tipos generales de aplicaciones cuando se ajustan datos
experimentales: anlisis de tendencias y pruebas de hiptesis.
Los anlisis de tendencia se pueden usar para predecir o pronosticar valores de la variable
dependiente. Esto puede involucrar una extrapolacin mas all de los lmites de los datos
observados o una interpolacin dentro del rango de datos. Ambos casos son comnmente
tiles en ingeniera.
En la prueba de hiptesis, los resultados de un modelo matemtico se comparan con los
datos medidos para probar que tan adecuado es el modelo.
Otro uso de ajuste de curvas en ingeniera es la derivacin de funciones simples con el fin
de aproximar funciones complicadas.
ajuste de una recta
interpolacin rectilnea
x
f (x )
x
f (x )
Interpolacin curvilnea
x
f (x )
Donde se asocian errores sustanciales con los datos resulta
inadecuada la interpolacin polinomial, una estrategia ms
apropiada para tales casos es derivar una funcin que ajuste la
forma de la tendencia general de los datos sin pasar a travs de un
punto en particular. Una manera simple es inspeccionar en forma
visual los puntos graficados y luego trazar la mejor lnea a travs de
ellos. Esta manera, an cuando es apropiada para resultados
superficiales resultan deficientes por ser arbitrarios e imprecisos.
Para hacer a un lado la subjetividad se debe concebir una
curva que minimice la diferencia entre los puntos y la curva. Una
tcnica para cumplir con tal objetivo se conoce como regresin por
mnimos cuadrados, tema que ser desarrollado a continuacin.
El ejemplo ms simple de una aproximacin por mnimos cuadrados es mediante el ajuste de una
conjunto de pares de observaciones: (x1,y1), (x2,y2), ......, (xn,yn) a una lnea recta. La expresin
matemtica para esta recta es:
y = a
0
+ a
1
x + e
Donde a
0
y a
1
son coeficientes que representan la interseccin con el eje Y y la pendiente de la recta,
respectivamente, e es el residuo entre el modelo y las observaciones, la ecuacin se puede reordenar
como sigue:
e = y a
0
a
1
x
As, el error residuo es la discrepancia entre el valor real de Y y el valor aproximado, a
0
+ a
1
x
CRITERIO PARA EL MEJOR AJUSTE
Consiste en minimizar la sumatoria de los cuadrados de los residuos entre la y medida y la y
calculada con el modelo lineal:
n n n
Sr = ei
2
= ( yi medida - yi calculada )
2
( yi - a
0
+ a
1
xi)
2
i =1 i =1 i =1
donde n = nmero total de puntos
Este mtodo tiene como ventaja que calcula una lnea nica para un conjunto de datos.
Para buscar los valores de a
0
y a
1
, buscamos las derivadas parciales de la ecuacin anterior con respecto a
cada coeficiente:
Sr = - 2 (y
i
- a
0
a
1
x
i
)
a
0
Sr = - 2 [(y
i
- a
0
a
1
x
i
) x
i
]
a
1
Al fijar estas derivadas igual a cero, resultar un mnimo Sr. Por lo cual las ecuaciones se pueden representar
como:
0 = yi - a0 - a1xi
0 = yixi - a0xi - a1xi
2
donde a0 =na0. Podemos entonces expresar las ecuaciones como un conjunto de dos ecuaciones lineales
con dos incgnitas (a
0
y a
1
):
na0 + ( xi ) a1 = yi
xi) a0 + ( xi
2
) a1
=
xiyi
Las ecuaciones anteriores son llamadas ecuaciones normales y se pueden resolver en forma simultnea:
Ejercicio: Ajuste una lnea a los valores dados en la siguiente tabla:
Solucin: Se calculan las siguientes cantidades
n = 10
xiyi =
327,6
xi =
55
xi2 =
385
yi =
45,3
X = 5,5
Y = 4,53
Se calculan los valores de a0 y a1:
a1 = (10 ( 327,6) - (55) (45,3)) / (10 (385) - (55)2) = 0,951
a0 = 4,53 - 5,5 (0,951) = -0,7
La recta ajustada es del tipo: y = 0,951x - 0,7
0
1
2
3
4
5
6
7
8
9
10
1 2 3 4 5 6 7 8 9 10
%Este programa ilustra como se puede ajustar una curva
%o realizar una interpolacion
%%MATLAB permite ajustar curvas por el metodo de los minimos
%cuadrados mediante la instruccion (polyfit)
%% c = polyfit(x,y,n)
%%Donde:
% c = coeficientes del polinomio ajustado a los datos
% x = datos de (x)
% y = datos de (y)
% n = el orden del polinomio ajustado a los datos
%%Ejemplo:
x=[1:1:20];
y=[- 0.23,2,6,12.1,25.8,18,4,- 11,- 20,- 8,- 0.026,11,14,- 0.47,- 15,- 35,- 25,-
10,0,26];
%
%
n=10; %ajuste de datos con polinomio
c1=polyfit(x,y,n);
xi=linspace(1,20,100);
c1_val=polyval(c1,xi);
plot(x,y,'ro',xi,c1_val,'b- ')
ylabel('VALORES DE (y)')
xlabel('VALORES DE (X)')
0 2 4 6 8 10 12 14 16 18 20
-40
-30
-20
-10
0
10
20
30
V
A
L
O
R
E
S

D
E

(
y
)
VALORES DE (X)
%MATLAB permite ajustar curvas por el metodo de los minimos %cuadrados mediante la instruccion
(polyfit)
%% c = polyfit(x,y,n)
%%Donde:
% c = coeficientes del polinomio ajustado a los datos
% x = datos de (x)
% y = datos de (y)
% n = el orden del polinomio ajustado a los datos
%%Ejemplo:
x=[1:1:20];
y=[- 0.23,2,6,12.1,25.8,18,4,- 11,- 20,- 8,- 0.026,11,14,- 0.47,- 15,- 35,- 25,- 10,0,26];
%%
n=2; %ajuste de datos con polinomio de segundo orden
c1=polyfit(x,y,n);
c1_val=polyval(c1,x);
subplot(2,2,1)
plot(x,y,'bo',x,c1_val,'r- ')
ylabel('VALORES DE (y)')
xlabel('VALORES DE (X)')
%%
n=6; %ajuste de datos con polinomio de sexto orden
c2=polyfit(x,y,n);
c2_val=polyval(c2,x);
subplot(2,2,2)
plot(x,y,'bo',x,c2_val,'r- ')
ylabel('VALORES DE (y)')
xlabel('VALORES DE (X)')
%%
n=8; %ajuste de datos con polinomio de octavo orden
c3=polyfit(x,y,n);
c3_val=polyval(c3,x);
subplot(2,2,3)
plot(x,y,'bo',x,c3_val,'r- ')
ylabel('VALORES DE (y)')
xlabel('VALORES DE (X)')
%%
n=19; %ajuste de datos con polinomio de vigesimo orden
c4=polyfit(x,y,n);
c4_val=polyval(c4,x);
subplot(2,2,4)
plot(x,y,'bo',x,c4_val,'r- ')
ylabel('VALORES DE (y)')
xlabel('VALORES DE (X)')
0 2 4 6 8 10 12 14 16 18 20
-40
-30
-20
-10
0
10
20
30
V
A
L
O
R
E
S

D
E

(
y
)
VALORES DE (X)
0 2 4 6 8 10 12 14 16 18 20
-40
-30
-20
-10
0
10
20
30
40
V
A
L
O
R
E
S

D
E

(
y
)
VALORES DE (X)
0 2 4 6 8 10 12 14 16 18 20
-40
-30
-20
-10
0
10
20
30
V
A
L
O
R
E
S

D
E

(
y
)
VALORES DE (X)
0 2 4 6 8 10 12 14 16 18 20
-40
-30
-20
-10
0
10
20
30
V
A
L
O
R
E
S

D
E

(
y
)
VALORES DE (X)
Consiste en la estimacin de valores intermedios entre datos exactos. El mtodo ms
comn conocido es la interpolacin polinomial. Es conocido que para n+1 puntos, hay
uno y solo un polinomio de orden n que pasa a travs de todos los puntos. As , por tres
puntos solo pasa una parbola, por dos puntos una recta, etc.
Interpolacin polinomial consiste en determinar el nico polinomio de n-simo orden que
ajuste n+1 puntos. Este polinomio proporciona entonces una frmula para calcular
valores intermedios. Para los efectos de ste curso se trabajar con los polinomios de
Newton y de Lagrange.
Consiste en la estimacin de valores intermedios entre datos exactos. El mtodo ms
comn conocido es la interpolacin polinomial. Es conocido que para n+1 puntos, hay
uno y solo un polinomio de orden n que pasa a travs de todos los puntos. As , por tres
puntos solo pasa una parbola, por dos puntos una recta, etc.
Interpolacin polinomial consiste en determinar el nico polinomio de n-simo orden que
ajuste n+1 puntos. Este polinomio proporciona entonces una frmula para calcular
valores intermedios. Para los efectos de ste curso se trabajar con los polinomios de
Newton y de Lagrange.
X0 X X1
F(x1)
F1(x)
F(x0)
Es el modo ms simple de realizar una interpolacin, y consiste en unir dos puntos con una
lnea recta, de acuerdo a la figura y por tringulos semejantes encontramos:
f1(x) - f(x0) = f(x1) - f(x0)
x x0 x1 x0
f1(x) = f(x0) + f(x1) - f(x0) ( x - x0 )
( x1 x0 )
La cual se puede reordenar para dar:
que es una frmula de interpolacin lineal .La notacin f1(x) designa una interpolacin de polinomios de
primer orden, donde el trmino [f(x1) - f(x0)/ ( x1 - x0 )], representa la pendiente de la lnea que conecta
a los puntos y es una aproximacin de la primera derivada. En general, mientras ms pequeo sea el
intervalo mejor ser la aproximacin.
Ejercicio:
Estimar el logaritmo natural de 9 utilizando interpolacin
lineal, utilizando el ln de 5 y 11 para realizar una primera
interpolacin, luego ln de 7 y 11 para una segunda interpolacin
X0 X1 X X2
5 7 9 11 x
1,609438 1,945910 2,197225 2,397895 F(x)
Solucin:
Utilizando la ecuacin de interpolacin lineal, se realiza la primera
interpolacin con x0=5 y x1 =11 para obtener:
f1(9) = 1,609438 + [ (2,397895 - 1,609438) * (9 - 5) / ( 11 - 5)] = 2,135076
El error cometido si lo comparamos con el verdadero valor de ln de 9
es de: 2,91%
Realizando la interpolacin con el intervalo ln 7 y ln de 1, obtenemos:
f1(9) = 1,945910 + [ (2,397895 - 1,945910) * (9 - 7) / ( 11 - 7)] = 2,171903
el error que se genera con el intervalo ms pequeo es de:
1,17%
Con intervalos ms cortos se reduce el error porcentual
El error del ejercicio anterior resulta por aproximar una lnea recta a una curva. Si se disponen de tres puntos, es mejor aproximar un
polinomio de segundo orden parbola, de la forma:
F2(x) = b0 +b1(x - x0) +b2 ( x- x0) (x x1) (1) ; similar al polinomio general:
F2(x) = a
0
+ a
1
x + a2 x
2
, donde
a
0
= b
0
b
1
x
0
b
2
x
0
x
1
a
1
= b
1
- b
2
x
0
- b
2
x
1
a
2
= b
2
El procedimiento para determinar los valores de los coeficientes, sera:
1. Calcular b0 = f(x0)
2. Se sustituye este valor en la ecuacin 1, y se evala en x = x1 , para obtener:
b1 =( f(x1) - f(x0)) / ( x1- x0)
3para x = x2, y resolviendo para b2, se obteniene:
f(x2) - f(x1) _ f(x1) - f(x0)
(x2 x1) (x1 x0)
b2 = x2 x0
donde b1 representa la pendiente de la lnea que une x0 y x1. De all que los dos primeros trminos equivalen a la interpolacin lineal de
x0 y x1. El ltimo trmino , b2(x- x0)(x- x1), introduce la curvatura de segundo orden en la frmula
X0 X X1
F(x)
X0
ESTIMACIN
LINEAL
ESTIMACIN
CUADRATICA
VALOR REAL F(x)=ln X
F2(x)
Ejercicio: tomar los tres puntos del ejercicio anterior para ajustar un
polinomio de segundo orden, y utilizar el polinomio para
evaluar el ln de 9
x0 x1 x2
5 7 11
f(x0) f(x1) f(x2)
1,609438 1,945910 2,397895
Solucin:
b0 = f(x0) = 1,609438
b1= ( f(x1) - f(x0)) / (x1 - x0) = 0,168236
b2 =
-0,009207 f(x2) - f(x1) f(x1) - f(x0) =
(X2 x1) (x1 x0)
x2 x0
La ecuacin cuadrtica que se obtiene sera:
f(x) = 1,609438 + 0,168236 (x - 5) - 0,009207 (x - 5)(x - 7)
La cual al evaluarse para x=9 nos da:
f(9) = 2,208729
El error cometido es menor ahora: 0,52%
%ESTE PROGRAMA ILUSTRA COMO SE PUEDE REALIZAR UNA INTERPOLACIN POR EL MTODO APROXIMADO GRFICO
clc
close
clear
x=1:2.35:15; %GENERACIN DE LA VARIABLE MONTONA, UNIFORMEMENTE ESPACIADA
y=4.25+x.^(.2+0.0005.*x);
m=[x',y'];;
xi=5.0;
yi=4.25+xi.^(.2+0.0005.*xi);
disp('SE DISPONE DE UNA TABLA CON VALORES DE (X) y VALORES DE (Y)')
disp('SE DESEA CONOCER EL VALOR DE (Y) PARA (X=5.0)')
disp(' TABLA DE VALORES')
disp('__________________________ ')
disp(' ')
disp(' X Y ')
disp('__________________________ ')
disp(m)
disp(' ')
input('PRESIONAR enter PARA CONTINUAR')
disp(' ')
disp(' ')
disp('SE UTILIZAR EL MTODO GRFICO APROXIMADO,PARA ELLO SE GRAFICAN LOS VALORES DE LA TABLA.')
disp('LUEGO,CON AYUDA DEL BOTN DE AMPLIACIN, (zoom in) EN LA BARRA DE BOTONES,DE LA VENTANA DE LA FIGURA,')
disp('SE AMPLIFICA LA GRFICA COLOCANDO EL PUNTERO DEL RATN,EN UN PUNTO SOBRE LA CURVA,')
disp('CORRESPONDIENTE AL VALOR DE X=5.0,Y PRESIONANDO EL BOTN DE LA IZQUIERDA,DEL RATN ')
disp('TANTAS VECES COMO SE QUIERA AMPLIFICAR LA GRAFICA AL FINAL,SE PUEDE LEER EL CORRESPONDIENTE VALOR DE (Y)')
disp(PARA TENER UNA IDEA DEL ERROR QUE SE COMETE CON ESTE MTODO SE INDICAR A CONTINUACIN EL VALOR
VERDADERO DE (Y) PARA (X=5.0)')
fprintf('PARA X=5.0 EL VALOR DE Y=%2.4f',yi)
disp(' ')
disp(' ')
disp('PARA TRABAJAR CON LA GRFICA, PULSE enter')
input('')
plot(x,y,'ro',x,y,'b- ')
YLABEL('VALORES DE Y ')
XLABEL('VALORES DE X ')
TITLE('GRFICA DE Y versus X PARA X=5.0 VALOR VERDADERO DE Y= 5.6353 ')
grid
0 2 4 6 8 10 12 14
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
6
V
A
L
O
R
E
S

D
E

Y
VALORES DE X
GRFICA DE Y versus X PARA X=5.0 VALOR VERDADERO DE Y=5.6353
El anlisis anterior puede ser generalizado para ajustar un polinomio de n-simo orden a n+1 puntos. Este
polinomio sera:
Fn(x) = b0 + b1(x - x0) + .+ bn ( x- x0) (x x1).. (x xn-1)
En ste caso se requieren n +1 puntos y las ecuaciones para evaluar los coeficientes seran:
b0=f(x0)
b1=f(x1,x0)
b2=f(x2,x1,x0)
.
.
bn =f(xn, xn-1, xn-2,,x1,x0)
Donde las funciones son diferencias divididas finitas, siendo la primera:
f(xi, xj) =( f(xi) - f(xj)) / ( xi- xj)
La segunda diferencia finita, la cual representa la diferencia de las dos primeras se expresa como:
f(xi, xj, xk) =( f(xi, xj) - f(xj, xk) ) / ( xi- xk);
En forma similar la e-nsima diferencia dividida finita sera:
f(xn, xn-1,....x1,x0) =( f(xn, xn-1,....x1) - f(xn-1, xn-2,...,x0) ) / ( xn- x0);
Estas diferencias pueden utilizarse para evaluar los coeficientes de las ecuaciones y obtener el coeficiente
de interpolacin:
Fn(x) = f(x0) + (x-x0) f(x1, x0) + (x-x0)(x-x1)f(x2,x1,x0)+ .. + f(xn,
xn-1,.,x0) (x-x0)(x-x1). (x-xn-1)
Que se conoce como polinomio de diferencias divididas de Newton
Ejemplo:
Lineal Cuadrtico Cbico
MSE 0.2869 0.1390 0.1494
R2 0.0059 0.5719 0.5974
AdjR2 0.0059 0.5184 0.4824
Ajuste de modelos lineal,
cuadrtico y cbico a
datos de Hermite por
regresin por mnimos
cuadrados
-4 -3 -2 -1 0 1 2 3 4
0.8
1
1.2
1.4
1.6
1.8
2
2.2
2.4
2.6
Regresion por minimos cuadrados
x
f
(
x
)
Lineal
Cuadratico
Cubico
Ajustando un modelo ms
complejo se logra mejor
ajuste de los datos
-4 -3 -2 -1 0 1 2 3 4
0.8
1
1.2
1.4
1.6
1.8
2
2.2
2.4
2.6
Regresion por minimos cuadrados
x
f
(
x
)
Lineal
Cuadratico
Cubico
quinto
Qui nto orden
MSE 0.0566
R2 0.8911
AdjR2 0.8040
Formula general para un polinomio
Para n+1puntos, hay uno y slo un polinomio de orden n que
pasa a travs de todos los puntos
Polinomio de primer orden (lnea recta) conecta dos puntos
Polinomio de segundo orden (parbola) conecta tres puntos
La interpolacin polinomial consiste en determinar el nico
polinomio de n- simo orden que ajuste n+1 puntos
Luego este polinomio permite calcular valores intermedios
Existen dos formas matemticas de expresar este polinomio
1. Polinomio de Newton
2. Polinomio de Lagrange
, )
n
n
x a x a x a a x f + + + + =
2
2 1 0
Interpolacin lineal: realiza la estimacin entre dos puntos
con una lnea recta
mediante tringulos semejantes
otra forma
, ) , ) , ) , )
0 1
0 1
0
0 1

x x
x f x f
x x
x f x f

, ) , )
, ) , )
, )
0
0 1
0 1
0 1

x x
x x
x f x f
x f x f

+ =
x
0
x x
1
f(x
0
)
f
1
(x)
f(x
1
)
, ) , )
0 1 0 1

x x b b x f + =
Si x = x
0

Si x = x
1

, )
0 0
x f b =
, ) , )
0 1
0 1
1
x x
x f x f
b

=
Aproximacin por diferencias finitas
de la
primera derivada
Interpolacin cuadrtica: si tres puntos de los datos estn
disponibles se puede ajustar un polinomio de 2
do
grado
, ) , ) , ), )
1 0 2 0 1 0 2

x x x x b x x b b x f + + =
Si x = x
0

Si x = x
1

, )
0 0
x f b =
, ) , )
0 1
0 1
1
x x
x f x f
b

=
Aproximacin por diferencias finitas
de la
primera derivada
Si x = x
2

, ) , ) , ) , )
0 2
0 1
0 1
1 2
1 2
2
x x
x x
x f x f
x x
x f x f
b

=
Aproximacin por
diferencias finitas de
la 2
da
derivada
Para ajustar un polinomio de n- simo orden a n+1 datos
los coeficientes son:
, ) , ) , ), ) , )
1 1 0 0 1 0
+ + + =
n n n
x x x x x x b x x b b x f
, )
0 0
x f b =
j
0 1 1
, x x f b =
Donde las evaluaciones de la funcin
entre corchetes son diferencias finitas
divididas
j
0 1 2 2
, , x x x f b =
j
0 1 1
, , , , x x x x f b
n n n

=
La primera diferencia finita se representa como
La segunda diferencia finita, como la diferencia de las dos
primeras
La n- sima diferencia finita es
Ntese, que no es necesario que los datos estn igualmente
espaciados, o que los valores de la abcisa estn en orden
ascendente
j
, ) , )
j i
j i
j i
x x
x f x f
x x f

= ,
j
j j
k i
k j j i
k j i
x x
x x f x x f
x x x f

=
, ,
, ,
j
j j
0
0 1 1 1 1
0 1 1
, , , , , ,
, , , ,
x x
x x x f x x x f
x x x x f
n
n n n
n n

Ejemplo: Utilice un polinomio


de Newton de 3er orden para
interpolar el valor en x = 2
x y=ln(x) Y_int Ea
1 0 0 -
4 1.38629 0.46209 0.46209
6 1.79175 0.56584 0.10374
5 1.60943 0.62876 0.06292
0 1 2 3 4 5 6
-1
-0.5
0
0.5
1
1.5
2
x
y
funcion original
puntos de la muestra
Polinomio de Newton
, ) , ) , ), ) , ), ), )
2 1 0 1 0 0 3
0079 . 0 0519 . 0 4621 . 0 0 x x x x x x x x x x x x x f + + =
, ) , ) , ), ) , ), ), ) 62876 . 0 6 2 4 2 1 2 0079 . 0 4 2 1 2 0519 . 0 1 2 4621 . 0 0
3
= + + = x f
El polinomio de Newton de orden n es de la forma
La estructura del polinomio de Newton es similar a la de la
serie de Taylor
De manera similar al caso de la serie de Taylor se puede
obtener una formulacin para el error de los polinomios de
Newton
Para la serie de Taylor
Para polinomio de newton de orden n
, ) , ) j , ) j , ), ) , )
1 1 0 0 1 0 0 1 0
, , , ,

+ + + =
n n n n
x x x x x x x x x f x x x x f x f x f
, ) , ) , ), )
, )
, )
n
n
i i
i
n
i i i i i
R x x
n
x f
x x x f x f x f + + + + =
+ + + 1 1 1
!
'
, )
, )
, )
, )
1
1
1
! 1
+
+
+

+
=
n
i i
n
n
x x
n
f
R

, )
, )
, )
, ), ) , )
n
n
n
x x x x x x
n
f
R
+
=
+

1 0
1
! 1

Una formulacin alternativa est disponible y no requiere el


conocimiento de la funcin
Esta formula no puede resolverse porque contiene la
incgnita f(x), sin embargo, si se dispone de un dato
adicional puede usarse para estimar el error
El error estimado para el polinomio de n- simo orden es
equivalente a la diferencia entre la estimacin de (n+1)- simo
orden y la de
n- simo orden
j , ), ) , )
n n n n
x x x x x x x x x x f R =


1 0 0 1
, , , ,
j , ), ) , )
n n n n n
x x x x x x x x x x f R ~
+

1 0 0 1 1
, , , ,
, ) , ) x f x f R
n n n
=
+1
SUBROUTI NE Newt I nt ( x, y, n, xi , yi nt , ea)
LOCAL f dd
n, n
DO i = 0, n
Fdd
i , 0
= y
i
END DO
DO j = 1, n
DO i = 0, n- j
f dd
i , j
= ( f dd
i +1, j
f dd
i , j - 1
) / ( x
i +j
x
i
)
ND DO
END DO
xt er m= 1
yi nt
0
= f dd
0, 0
DO or der = 1, n
xt er m= xt er m*( x
i
x
or der - 1
)
yi nt 2 = yi nt
or der - 1
+ f dd
0, or der
*xt er m
ea
or der - 1
= yi nt 2 yi nt
or der - 1
yi nt
or der
= yi nt 2
END DO
END Newt I nt
Este mtodo es una reformulacin del polinomio de Newton
que evita el clculo por diferencias finitas
Los polinomios de Lagrange se pueden expresar como
donde,
Polinomio de orden n = 1
Polinomio de orden n = 2
, ) , ) , )

=
=
n
i
i i n
x f x L x f
0
, )
[
=
=

=
n
i j
j j i
j
i
x x
x x
x L
0
, ) , ) , )
1
0 1
0
0
1 0
1
1
x f
x x
x x
x f
x x
x x
x f

=
, )
, ), )
, ), )
, )
, ), )
, ), )
, )
, ), )
, ), )
, )
2
1 2 0 2
1 0
1
2 1 0 1
2 0
0
2 0 1 0
2 1
2
x f
x x x x
x x x x
x f
x x x x
x x x x
x f
x x x x
x x x x
x f


+


+


=
La estimacin del error en la interpolacin con los polinomios
de Lagrange esta dada por
Sin embargo, como este mtodo no usa las diferencias finitas,
no es prctico hacer este clculo
Por eso se prefiere usar polinomios de Lagrange cuando se
conoce a priori el orden del polinomio
Y se usan los polinomios de Newton para clculos exploratorios, ya
que este mtodo proporciona informacin respecto al
comportamiento de los polinomios de diferente orden
j , )
[
=

=
n
i
i n n n
x x x x x x f R
0
0 1
, , , ,
FUNCTI ON Lagr ng( x, y, n, x)
sum= 0
DO i = 0, n
pr oduct = y
i
DO j = 0, n
I F i ~= j THEN
pr oduct = pr oduct *( x x
j
) / ( x
i
x
j
)
END I F
END DO
sum= sum+ pr oduct
END DO
Lagr ng = sum
END Lagr ng
Un mtodo directo para calcular los coeficientes de un
polinomio de interpolacin
se basa en el hecho de que n+1 puntos se requieren para
determinar los n+1 coeficientes
Se puede usar la solucin de un sistema de ecuaciones
algebraicas simultneas para calcular los coeficientes
, )
n
n
x a x a x a a x f + + + + =
2
2 1 0
Por ejemplo, se quiere calcular los coeficientes de
Se requieren tres puntos (x
0
,f(x
0
)), (x
1
,f(x
1
)) y (x
2
,f(x
2
)),
sustituyendo cada uno en el polinomio para dar
Se debe tener precaucin con el orden
Los sistemas como estos estn notoriamente mal
condicionados
Los coeficientes pueden ser altamente inexactos, en
particular para n grandes
, )
2
2 1 0
x a x a a x f + + =
, )
2
0 2 0 1 0 0
x a x a a x f + + =
, )
2
1 2 1 1 0 1
x a x a a x f + + =
, )
2
2 2 2 1 0 2
x a x a a x f + + =
Ejercicio:
Con los mismos datos anteriores, pero ahora incorporando un
cuarto punto: (x3 =8), calcule ln de 9 con una interpolacin
del polinomio de newton de tercer orden
x0 x1 x2 x3
5 7 11 8
f(x0) f(x1) f(x2) f(x3)
1,609438 1,945910 2,397895 2,079442
Solucin: El polinomio de tercer orden buscado sera:
Fn(x) = b0 + b1(x - x0) + b2(x- x0)(x- x1)+ b3 ( x- x0) (x x1)(x x2)
Las primeras diferencias divididas son:
f(x1,x0) = 1,945910 - 1609438 = 0,168236
7 - 5
f(x2,x1) = 2,397895 - 1,945910 = 0,112996
11 - 7
f(x3,x2) = 2,079442 - 2,397895 = 0,106151
8 - 11
Las segundas diferencias divididas son:
f(x2,x1,x0) =
0,112996 - 0,168236 = -0,009207
11 - 5
f(x3,x2,x1) =
0,106151- 0,112996 = -0,006845
8 - 7
La tercera diferencia dividida estara dada por:
f(x3,x2,x1,x0) =
- 0,006845 - (- 0,009207) 0,000787
8 - 5
de lo anterior tenemos entonces que los coeficientes del polinomio buscado seran
b0= f(x0) = 1,609438
b1= f(x1,x0)= 0,168236
b2= f(x2,x1,x0)= -0,009207
b3= f(x3,x2,x1,x0)= 0,000787
Y la ecuacin buscada es:
f(x) = 1,609438 + 0,168236 (x - 5) - 0,009207 (x - 5)(x - 7) +0,000787 (x-5)(x-7)(x-11)
Evaluando para x=9, tenemos:
f(9)= 2,196134
El error es del orden de : 0,05%
ERRORES AL INTERPOLAR POLINOMIOS DE NEWTON
La ecuacin utilizada para estimar el error se define como:
Rn = f(xn+1, xn, xn-1,.,x0) (x-x0)(x-x1)(x-xn)
El error estimado para el polinomio de n-simo orden es equivalente a la diferencia entre el trmino de
(n+1) simo orden y la prediccin del n-simo orden, es decir:
Rn =fn+1(x) fn(x); de all que:
fn+1(x) = fn(x) + Rn
Esto es debido al hecho de que la serie es fuertemente convergente, por tanto la prediccin del n+1-simo
orden debe estar ms cercana a la solucin que la prediccin del n-simo orden
Ejercicio:Calculeel error para la interpolacin del polinomio de segundo orden
En este caso el error del polinomio de segundo orden es la diferencia entre
el polinomio de segundo y tercer orden, es decir el ltimo trmino calculado
del polinomio de tercer orden:
Ultimo trmino = 0,000787(x-5)(x-7)(x-11)
evaluado para x=9 = 0,0126 0,0126
EL SIGUIENTE PROGRAMA ILUSTRA LA INTERPOLACIN EN DOS DIMENSIONES UTILIZANDO LA
INSTRUCCIN:
y = interp2(xm,ym,zm,xi,yi)
DONDE:
xm= MATRIZ MALLA, CUADRADA (a X a), FORMADA CON EL VECTOR (x), DE (1 X a)
Ym= MATRIZ MALLA, CUADRADA (b X b), FORMADA CON EL VECTOR (y), DE (1 X b)
zm= MATRIZ DE (b X a), FORMADA CON VALORES RELACIONADOSBIDIMENSIONALMENTE
CON LOS VECTORES (x) Y (y)
xi = VALOR DE (x) AL CUAL SE DESEA INTERPOLAR LA TABLA BIDIMENSIONAL
FORMADA POR LA MATRIZ (zm)
yi = VALOR DE (y) AL CUAL SE DESEA INTERPOLAR LA TABLA BIDIMENSIONAL FORMADA POR LA MATRIZ
(zm)
y = VALOR INTERPOLADO DE LA TABLA BIDIMENSIONAL, FORMADA POR LA MATRIZ (zm) IMPORTANTE:
LOS VECTORES (x) Y (y) DEBEN SER MONTONOS CRECIENTES O DECRECIENTES
TAMBIN PUEDEN SER UNIFORME O NO UNIFORMEMENTE ESPACIADOS EN LAS INTERPOLACIONES FUERA
DE RANGO SE DAR COMO RERSULTADO: NaN
METODOLOGA
1) SE TIENE UNA TABLA DE DATOS (MATRIZ zm), LOS CUALESDEPENDEN DE DOS VARIABLES(x) Y (y)
2) SE TIENE A LA VARIABLE(x), COMO UN VECTOR
3) SE TIENE A LA VARIABLE(Y), COMO UN VECTOR
4) SE GENERAN LAS MATRICES MALLA, A PARTIR DE LOS VECTORES (x) Y (y) MEDIANTE LA INSTRUCCIN:
[xm,ym]=meshgrid(x,y)
5) SE GRAFICAN LOS VALORES DE LA TABLA (zm) VERSUS LAS MALLAS (xm) Y (ym) ESTE PASO ES
OPCIONAL, PERO ES CONVENIENTE OBSERVAR TRIDIMENSIONALMENTE LOS DATOS DE LA TABLA
(zm) VERSUS (X) Y (y)
6) SE FIJAN LOS VALORES DE (x) y (y), LOS CUALES SE QUIERE INTERPOLAR, EN LA TABLA (zm), ESTOS
VALORES DEBEN SER UBICADOS EN LAS VARIABLES (xi) Y (yi). EN ESTE PUNTO EXISTEN TRES CASOS:
CASO 1)
xi = UN NMERO yi = UN NMERO
CASO 2)
xi = VECTOR DE VARIOS VALORES NMERICOS, DE TAMAO (1 X a) yi = VECTOR DE VARIOS
VALORES NMERICOS, DE TAMAO (1 X b)
IMPORTANTE: ESTOS VECTORES DEBEN SER DE IGUAL TAMAO O EN SU DEFECTO DEBEN SER
VECTORES CON DIFERENTES ORIENTACIONES, UNO VECTOR COLUMNA Y EL OTRO
VECTOR FILA
CASO 3)
xi = MATRIZ DE VARIOS NMEROS, DE TAMAO (a X b) yi = MATRIZ DE VARIOS NMEROS,
DE TAMAO (c X d)
IMPORTANTE: EN ESTE CASO, SE DEBEN GENERAR LA MATRICES MALLAS
(xim) Y (yim) CON LA INSTRUCCIN:
[xim,yim]=meshgrid(xi,yi);
LA INTERPOLACIN SE REALIZA COLUMNA POR COLUMNA
7) SE APLICA LA INSTRUCCIN DE INTERPOLACIN EN DOS DIMENSIONES, SEGN:
CASO 1) zi=interp2(xm,ym,zm,xi,yi) RESULTANDO: zi = UN NMERO
CASO 2) zi=interp2(xm,ym,zm,xi,yi) RESULTANDO:
zi = UNA MATRIZ, PARA VECTORES DE DIFERENTES TAMAOS
zi = UN VECTOR, PARA VECTORES DE IGUAL TAMAO
CASO 3) zi=interp2(xm,ym,zm,xim,yim) RESULTANDO: zi = UNA MATRIZ
EJEMPLO
EN ESTE EJEMPLO SE ILISTRAR EL CASO (2)
PARA LA TABLA DE VALORES, INTERPOLAR PARA LOS SIGUIENTES VECTORES
xi = [35,45,55,65] VECTORES DE IGUAL TAMAO
yi = [50,75,125,185
0
20
40
60
80
100
0
50
100
150
200
-2
-1
0
1
2
VALORES DE X
VALORES DE Y
V
A
L
O
R
E
S

D
E

L
A

T
A
B
L
A
clear all
close all
clc
y=[- 2.0:0.1:2.0];
x=[- 2.0:0.1:2.0];
z=[- 2.0:0.1:2.0];
[ym,xm]=meshgrid(y,x);
zm=xm;
f=abs(xm.*exp(- ym.^2- xm.^2- zm.^2));
mesh(xm,ym,f)
axis tight
axis off
%axis([- 2.0,2.0,- 2.0,2.0,- .6,.6]),grid on
view([- 10,8])
colormap(pink)
hold on
f=- f;
mesh(xm,ym,f)
axis tight
%axis([- 2.0,2.0,- 2.0,2.0,- .6,.6]),grid on
view([- 7,8])