1
CAPITULO I
INTERPOLACION Y
APROXIMACION
Universidad Simón Bolívar
Mecánica Computacional II
Armando Blanco A.
2
Capítulo I
• Introducción
• Polinomios de Newton de diferencias divididas
• Polinomios de Lagrange
• Interpolación polinomial
• Trazadores rectilíneos, parabólicos y cúbicos
• Métodos de mínimos cuadrados (lineal y no lineal)
• Referencias
3
Introducción
En general, el ingeniero debe analizar la información para la toma de
decisiones. Esta viene usualmente en forma gráfica….
Fuente: BP Statistical Review of World Energy, Junio 2009
4
Introducción
….o tabulada….
Fuente: BP Statistical Review of World Energy, Junio 2009
5
IntroducciónTabla. Consumo y producción promedio de petróleo de Venezuela (Miles de Barriles/Día)
Año1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008
Consumo 475 474 496 545 594 479 523 576 607 665 719
Producción 3480 3126 3239 3142 2895 2554 2907 2937 2808 2613 2566
1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 20082500
2600
2700
2800
2900
3000
3100
3200
3300
3400
3500
Año
Pro
ducc
ión
(Mile
s B
arril
es/D
ia)
Produccion de Petroleo de Venezuela
1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008450
500
550
600
650
700
750
Año
Con
sum
o (M
iles
Bar
riles
/Dia
)
Produccion de Petroleo de Venezuela
La información puede ser representada por ejemplo gráficamente y obtener información acerca de tendencias (extrapolación).
6
Introducción
En algunas situaciones puede ser necesario conocer los valores
entre los puntos de datos conocidos. En general, interpolar
significa estimar los valores de una función o variable entre
valores conocidos.
Anteriormente era común hacerlo a partir de tablas, para obtener
los valores para argumentos no tabulados. Esto ha prácticamente
desaparecido con la llegada de poderosos instrumentos de
cálculo.
Sin embargo, el concepto de interpolación es aún muy
importante en el análisis de data proveniente de experimentos y
en el desarrollo de esquemas numéricos.
Como ejemplo, consideremos la data siguiente:
Temperatura (°C) 30 40 60 80 100 150Presión (atm) 0.0418 0.07428 0.196 0.467 1 4.69
7
Introducción
La presión a otras temperaturas distintas de las de la tabla puede
ser estimada por interpolación. Por ejemplo, si deseamos estimar
la presión a la temperatura en puntos no conocidos, lo podemos
hacer a través de la rectas
Algunas veces es posible hallar curvas mejores que las rectas,
como se muestra en la otra gráfica (polinomio de 5to grado).
20 40 60 80 100 120 140 1600
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
T (°C)
P (
atm
)
20 40 60 80 100 120 140 1600
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
T (°C)
P (
atm
)
8
Introducción
En otras situaciones nuestro interés es encontrar una función que
aproxime una data dada, sin necesariamente pasar por los puntos
que la componen.
Estudiar los conceptos básicos de interpolación y aproximación
de conjunto de datos es el objetivo de este capítulo.
20 40 60 80 100 120 140 160-1
0
1
2
3
4
5
T (°C)
P (
atm
)
9
Capítulo I
• Introducción
• Polinomios de Newton de diferencias divididas
• Polinomios de Lagrange
• Interpolación polinomial
• Trazadores rectilíneos, parabólicos y cúbicos
• Métodos de mínimos cuadrados (lineal y no lineal)
• Referencias
10
Interpolación lineal
Supongamos que nuestra data consiste en un par de puntos
(x0,y0) y (x1,y1).
La forma mas sencilla de interpolación consiste en construir la
recta que pasa por ambos puntos. Tendremos:
01
01
0
0
xx
yy
xx
yy
−−=
−−
x0x 1x
1y
0y
y
( )0
01
010 xx
xx
yyyy −
−−+=
Polinomio interpolante de Newton
11
Ejemplo
Supongamos que deseamos aproximar linealmente la función
en el intervalo [3,8] y obtener el valor de la aproximación en
x=4. Luego tendremos:
( )( ) 82843.28 ;8
73205.13 ;3
111
000
====
====
xfyx
xfyx
( ) ( )( ) ( )3219276.073205.1
338
73205.182843.273205.1
1
1
−+==
−−−+==
xxPy
xxPy
( ) xxf =
y el polinomio interpolante lineal vendrá dado por:
Polinomio interpolante de Newton
12
Luego, en el punto x=4 la aproximación lineal nos dará
La diferencia entre la aproximación obtenida y el valor de la
función en x=4 vendrá dada por:
%4.2100)4(
)4()4( 1 =−f
Pf
Supongamos que se desea mejorar la aproximación. Una mejor
alternativa podría ser emplear una interpolación cuadrática tal
como veremos a continuación.
( ) ( ) 951326.134219276.073205.11 =−+== xPy
Polinomio interpolante de Newton
13
Interpolación cuadrática
Supongamos que nuestra data consiste en tres puntos (x0,y0),
(x1,y1) y (x2,y2) .
El polinomio que pasa por esos tres puntos es de orden 2 (a
menos que estos estén alineados) y puede escribirse como:
( ) ( ) ( )( )1020102 xxxxbxxbbxP −−+−+=
x0x 1x
1y
0y
y
2x
2y
Polinomio interpolante de Newton
14
Los coeficientes b0, b1 y b2 se obtienen de evaluar P2(x) en x0, x1
y x2. Así tenemos:
De estas relaciones obtenemos
( ) ( ) ( )( )( ) ( ) ( )( ) ( )( ) ( ) ( )( ) 212022021022
1011011012011012
0010002001002
yxxxxbxxbbxP
yxxbbxxxxbxxbbxP
ybxxxxbxxbbxP
=−−+−+==−+=−−+−+=
==−−+−+=
00 yb =
01
01
01
011
xx
yy
xx
byb
−−=
−−=
( )( )( )
( )
( )( )1202
02
01
0102
1202
021022
xxxx
xxxx
yyyy
xxxx
xxbbyb
−−
−−−−−
=−−−−−=
Polinomio interpolante de Newton
15
Manipulando b2 llegamos a
( ) ( ) ( )
( )( )1202
02
01
0112
12
0112
2xxxx
xxxx
yyxx
xx
yyyy
b−−
−−−−−
−−+−
=
( ) ( ) ( ) ( ) ( )
( )( )1202
02
01
0112
12
0112
12
12
2xxxx
xxxx
yyxx
xx
yyxx
xx
yy
b−−
−−−−−
−−+−
−−
=
( ) ( )
( )( )( ) ( ) ( )
( )( )1202
02
01
0112
12
01
1202
12
12
12
2xxxx
xxxx
yyxx
xx
yy
xxxx
xxxx
yy
b−−
−−−−−
−−
+−−
−−−
=
Polinomio interpolante de Newton
16
Continuando con b2
( )( )
( )
( )( )1202
02
01
0101
02
12
12
2xxxx
xxxx
yyyy
xx
xx
yy
b−−
−−−−−
+−−−
=
( )( )
( )( )( ) ( )
( )( )1202
02
01
01
01
0101
02
12
12
2xxxx
xxxx
yy
xx
xxyy
xx
xx
yy
b−−
−−−−
−−−
+−−−
=
( )( )
( )( )( )1202
01
0020012100100111
02
12
12
2xxxx
xx
xyxyxyxyxyxyxyxy
xx
xx
yy
b−−
−−++−+−−
+−−−
=
Polinomio interpolante de Newton
17
Siguiendo con b2
( )( )
( )( )( )1202
01
20211011
02
12
12
2xxxx
xx
xyxyxyxy
xx
xx
yy
b−−
−+−−
+−−−
=
( )( )
( ) ( )( )
( )( )1202
01
012011
02
12
12
2xxxx
xx
yyxyyx
xx
xx
yy
b−−
−−−−
+−−−
=
( )( )
( )( )( )
( )( ) 02
01
01
12
12
1202
01
2101
02
12
12
2xx
xx
yy
xx
yy
xxxx
xx
xxyy
xx
xx
yy
b−
−−−
−−
=−−
−−−
+−−−
=
Polinomio interpolante de Newton
18
Luego, los valores de los coeficientes del polinomio de orden 2
son:
02
01
01
12
12
2xx
xx
yy
xx
yy
b−
−−−
−−
=
00 yb =
01
011
xx
yyb
−−=
Nótese que b1 representa la pendiente de la recta que une los
puntos 0 y 1. Luego, la curvatura vendrá determinada por el
término cuyo coeficiente es b2.
Polinomio interpolante de Newton
19
Ejemplo
Supongamos que deseamos aproximar con una parábola la
función
en el intervalo [3,8]. Luego tendremos, por ejemplo, que son
conocidos los valores en x=3,6 y 8:
( )( )( ) 23607.25 ;5
82843.28 ;8
73205.13 ;3
222
111
000
====
====
====
xfyx
xfyx
xfyx
( ) xxf =
La aproximación cuadrática vendrá representada por:
( ) ( ) ( )( )1020102 xxxxbxxbbxP −−+−+=
Polinomio interpolante de Newton
20
Luego, los valores de los coeficientes del polinomio de orden 2
son:
35
38
73205.182843.2
85
82843.223607.2
02
01
01
12
12
2 −−−−
−−
=−
−−−
−−
=xx
xx
yy
xx
yy
b
73205.100 == yb
230159.038
73205.182843.2
01
011 =
−−=
−−=xx
yyb
010911.02 −=b
La aproximación cuadrática es:
( ) ( ) ( )( )83010911.03219276.073205.12 −−−−+= xxxxP
Polinomio interpolante de Newton
21
La aproximación parabólica en x=4 arroja el valor
El error cometido con esta aproximación es:
( ) ( ) ( )( )( ) 99497.14
8434010911.034219276.073205.14
2
2
=−−−−+=
P
P
%25.0100)4(
)4()4( 2 =−f
Pf
y es bastante menor al obtenido con la aproximación lineal.
Veamos esto gráficamente en la lámina siguiente.
Polinomio interpolante de Newton
22
Nótese: (a) El paso de la aproximación parabólica por los tres
puntos y (b) la cercanía entre la función aproximada y la
aproximación parabólica
3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 81.6
1.8
2
2.2
2.4
2.6
2.8
3
x
y
Interpolación
DatosValor exactoLinealParabolicoFuncion
Polinomio interpolante de Newton
23
3.97 3.98 3.99 4 4.01 4.02 4.03
1.94
1.95
1.96
1.97
1.98
1.99
2
x
y
Interpolación
DatosValor exactoLinealParabolicoFuncion
El detalle en las cercanías del punto x=4 se muestra a
continuación.
Polinomio interpolante de Newton
24
Forma general de los polinomios de interpolación
Supongamos que nuestra data consiste en un conjunto de n+1
puntos (xi,yi), i entero en [0,n].
El polinomio de grado n que interpola la data es dado por:
En el caso del polinomio lineal (n=1) teníamos que:
( ) ( ) ( )( )( ) ( )( )220
102010
...... −− −−−++−−+−+=
nnn
n
xxxxxxb
xxxxbxxbbxP
( )0
01
010 xx
xx
yyyy −
−−+=
y entonces:
01
01100 ;
xx
yybyb
−−==
Polinomio interpolante de Newton
25
Mientras que para la aproximación cuadrática (n=2) teníamos
Definiendo las diferencias divididas como:
[ ] ( ) ( )ji
ji
ji
ji
jixx
xfxf
xx
yyxxf
−−
=−−
=,
02
01
01
12
12
2xx
xx
yy
xx
yy
b−
−−−
−−
=00 yb =
01
011
xx
yyb
−−=
[ ] ( )ii xfxf =
[ ] [ ] [ ]ki
kjji
kjixx
xxfxxfxxxf
−−
=,,
,,
Polinomio interpolante de Newton
26
Luego, tendremos que:
tenemos que, hasta orden 2 podemos escribir:
[ ] [ ] [ ]012
02
0112
02
01
01
12
12
2 ,,,,
xxxfxx
xxfxxf
xx
xx
yy
xx
yy
b =−−=
−−−−
−−
=
( ) [ ]0000 xfxfyb ===
( ) ( ) [ ]01
01
01
01
011 , xxf
xx
xfxf
xx
yyb =
−−=
−−=
( ) [ ] [ ]( ) [ ]( )( )1001200102 ,,, xxxxxxxfxxxxfxfxP −−+−+=
Polinomio interpolante de Newton
27
Luego, si definimos
podemos asumir que en general que el polinomio interpolante de
grado n es dado por:
[ ] [ ] [ ]0
0121121011
,,...,,,,...,,,,...,,
xx
xxxxfxxxxfxxxxf
n
nnnnnn −
−= −−−−
( ) [ ] [ ]( ) [ ]( )( )[ ]( )( ) ( )( )1210011
100120010
...,,...,,...
,,,
−−− −−−−+++−−+−+=
nnnn
n
xxxxxxxxxxxxf
xxxxxxxfxxxxfxfxP
( ) [ ] [ ]( )( ) ( )110
1
010 ....,...,, −=
− −−−+= ∑ k
n
k
kkn xxxxxxxxxfxfxP
En notación compacta podemos escribir:
Polinomio interpolante de Newton
28
Nótese que:
(a) No es necesario que los datos estén uniformemente
espaciados, ni ordenados, para hallar los coeficientes del
polinomio
(b) Las relaciones que permiten calcular las diferencias
divididas son recursivas y, en consecuencia, la diferencias
divididas de orden superior se obtienen a partir de las de
menor orden.
Entonces, obteniendo las diferencias divididas de manera
consecutiva obtenemos los coeficientes del polinomio
interpolante de Newton.
Polinomio interpolante de Newton
29
Además, para calcular las diferencias divididas podemos
tener en cuenta que :
[ ] ( ) ( ) ( ) ( ) [ ]ij
ij
ij
ji
ji
ji xxfxx
xfxf
xx
xfxfxxf ,, =
−−
=−−
=
[ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ]ijk
ik
ijjk
kji
ik
jikj
ki
kjji
kji
xxxfxx
xxfxxfxxxf
xx
xxfxxf
xx
xxfxxfxxxf
,,,,
,,
,,,,,,
=−−
=
−−
=−−
=
Polinomio interpolante de Newton
30Polinomio interpolante de Newton
Ejemplo: Consideremos el siguiente conjunto de
datos:
x y
2.0 1.623
2.5 1.855
4.0 2.041
4.5 2.333
6.0 2.561
Hallemos el polinomio interpolante de Newton que
interpola estos datos
31Polinomio interpolante de Newton
Las primeras diferencias divididas se construyen
como se muestra en la siguiente tabla:
x y DD12 1.623
0.4642.5 1.855
0.1244 2.041
0.5844.5 2.333
0.1526 2.561
( ) ( )111
1 1
[ ] [ ][ , ]
i ii ii i
i i i i
f x f xf x f xf x x
x x x x
+++
+ +
−−= =− −
32Polinomio interpolante de Newton
Las segundas diferencias divididas se construyen
similarmente como se muestra en la siguiente tabla:
x y DD1 DD22 1.623
0.4642.5 1.855 -0.17
0.1244 2.041 0.23
0.5844.5 2.333 -0.216
0.1526 2.561
ii
iiiiiii
xx
xxfxxfxxxf
−−=
+
+++++
2
12121
],[],[],,[
33Polinomio interpolante de Newton
De la misma manera, las terceras y cuartas
diferencias divididas se construyen como se muestra
en la siguiente tabla:
x y DD1 DD2 DD3 DD42 1.623
0.4642.5 1.855 -0.17
0.124 0.164 2.041 0.23 -0.071857
0.584 -0.127434.5 2.333 -0.216
0.1526 2.561
iki
kiikiikiii
xx
xxfxxfxxxf
−−=
+
−+++++
],...,[],...,[],...,,[ 11
1
34Polinomio interpolante de Newton
En consecuencia, los coeficientes del polinomio
interpolante de newton
x y DD1 DD2 DD3 DD42 1.623
0.4642.5 1.855 -0.17
0.124 0.164 2.041 0.23 -0.071857
0.584 -0.127434.5 2.333 -0.216
0.1526 2.561
( ) [ ] [ ]( )( ) ( )110
1
100 ....,...,, −=
−−−+= ∑ k
n
k
kn xxxxxxxxxfxfxP
[ ]0 1,f x x[ ]0f x [ ]0 1 2, ,f x x x
[ ]0 1 2 3, , ,f x x x x
[ ]0 1 2 3 4, , , ,f x x x x x
son dados por:
35Polinomio interpolante de Newton
Luego,
( ) [ ] [ ]( ) [ ]( ) ( )[ ]( )( )( )[ ]( )( ) ( )( )
0 0 1 0 0 1 2 0 1
0 1 2 3 0 1 2
0 1 2 3 4 0 1 2 3
, , ,
, , ,
, , , ,
nP x f x f x x x x f x x x x x x x
f x x x x x x x x x x
f x x x x x x x x x x x x x
= + − + − − +
− − − +
− − − −
( ) [ ] [ ]( )( ) ( )110
1
100 ....,...,, −=
−−−+= ∑ k
n
k
kn xxxxxxxxxfxfxP
( ) ( ) ( )( )( )( )( )
( )( )( )( )5.445.22071857.0
45.2216.0
5.2217.02464.0623.14
−−−−−−−−
+−−−−+=
xxxx
xxx
xxxxP
36Polinomio interpolante de Newton
El polinomio de interpolante luce como se muestra en la
figura a continuación.
2 2.5 3 3.5 4 4.5 5 5.5 61.6
1.8
2
2.2
2.4
2.6
2.8
3
x
yInterpolación
Datos
Polinomio interpolante
37Polinomio interpolante de Newton
Las ventajas de la utilización del polinomio interpolante
de Newton ahora es obvia. Si se añade un nuevo dato a los
anteriores, el polinomio se modificará de manera que
( ) ( ) ( )( )( )( )( )
( )( ) ( )( )[ ]( )( )( ) ( )( )0 1 2 3 4 5 4
1.623 0.4624 2 0.17 2 2.5
0.16 2 2.5 4
- 0.071857 2 2.5 4 4.5
+ , , , , , 2 2.5 4 4.5
nP x x x x
x x x
x x x x
f x x x x x x x x x x x x
= + − − − − +
− − −
− − − −
− − − − −
Supongamos que el nuevo punto de data es (3;2.1). Las
diferencias divididas se calculan como antes
38Polinomio interpolante de Newton
y el nuevo polinomio es dado por
x y DD1 DD2 DD3 DD4 DD52 1.623
0.4642.5 1.855 -0.17
0.124 0.164 2.041 0.23 -0.071857
0.584 -0.12743 -0.103063494.5 2.333 -0.216 -0.174921
0.152 -0.214896 2.561 -0.00111111
0.153666673 2.1
( ) ( ) ( )( )( )( )( )
( )( )( )( )( )( )( )( )( )
1.623 0.4624 2 0.17 2 2.5
0.16 2 2.5 4
- 0.071857 2 2.5 4 4.5
-0.10306 2 2.5 4 4.5 3.0
nP x x x x
x x x
x x x x
x x x x x
= + − − − − +
− − −
− − − −
− − − − −
39Polinomio interpolante de Newton
Gráficamente tenemos que el nuevo polinomio pasa por
todos los puntos de datos dados.
2 2.5 3 3.5 4 4.5 5 5.5 61.5
2
2.5
3
3.5
4
x
y
Interpolación
Datos
Polinomio interpolante
Nótese que en algunos puntos del intervalo los valores
obtenidos están alejados de lo esperado. Esta tendencia es
mayor en la medida que el grado del polinomio
interpolante es mayor.
40Polinomio Interpolante de Newton
Volvamos a las diferencias divididas. Antes calculamos los
coeficientes del polinomio interpolante a partir de las tablas:
x y=f[x0] f[x0,x1] f[x0,x1,x2] f[x0,x1,x2,x3] f[x0,x1,x2,x3,x4]4 2.0410
0.58404.5 2.3330 0.1500
0.2840 -0.09152 1.6230 -0.0330 -0.0719
0.2345 0.01636 2.5610 -0.0656
0.20172.5 1.8550
x y=f[x0] f[x0,x1] f[x0,x1,x2] f[x0,x1,x2,x3] f[x0,x1,x2,x3,x4]2 1.623
0.46402.5 1.855 -0.1700
0.1240 0.16004 2.041 0.2300 -0.0719
0.5840 -0.12744.5 2.333 -0.2160
0.15206 2.561
41Polinomio Interpolante de Newton
Los polinomios interpolantes según cada tabla son:
( ) ( ) ( )( )( )( )( )
( )( )( )( )5.445.220719.0
45.2216.0
5.2217.02464.0623.11
4
−−−−−−−−
+−−−−+=
xxxx
xxx
xxxxP
( ) ( ) ( )( )( )( )( )
( )( )( )( )625.440719.0
25.440915.0
5.441500.045840.00410.22
4
−−−−−−−−
−−−+−+=
xxxx
xxx
xxxxP
¿Cuál de los polinomios interpolantes es el correcto?
42Polinomio Interpolante de Newton
Ambos lo son. Utilizando Mathematica® para expandir
ambos polinomios obtenemos:
La diferencia de los coeficientes entre ambos polinomios
viene dada por errores de truncamiento y redondeo en el
cálculo de las diferencias divididas.
Polinomio interpolante de Newton
En el caso en el que los xi están uniformemente
espaciados, podemos escribir
( )hisxx i −=−
ii xxh −= +1
shxx += 0
las diferencias en la formula de las diferencias
divididas interpolantes se expresan como
para obtener al sustituir en
( ) [ ] ( ) [ ] ( )( ) [ ]0 0 0 1 0 1 0 1 2, , , ...nP x f x x x f x x x x x x f x x x= + − + − − +
( )( ) ( ) [ ]nn xxxfxxxxxx ,...,,....... 10110 −−−−+
Polinomio interpolante de Newton
la expresión
simplificando
( ) [ ] [ ] ( ) [ ] ..,,1, 210100 +−++= xxxhfsshxxshfxfxPn
( ) ( ) [ ]nxxxhfnshssh ,...,,1....1... 10+−−+
( ) [ ] [ ] ( ) [ ] ..,,1, 210
2
100 +−++= xxxfhssxxshfxfxPn
( ) ( ) [ ]n
n xxxfhnsss ,...,,1....1... 10+−−+o
( ) ( ) ( ) [ ]∑=
+−−=n
k
k
k
n xxxfhksssxP0
10 ,...,,1....1
Polinomio interpolante de Newton
Utilizando la notación del coeficiente polinomial
podemos escribir
( ) ( )!
1....1
k
ksss
k
s +−−=
Alternativamente las diferencias divididas pueden
escribirse, utilizando la notación de Aitken para las
diferencias divididas
( ) [ ]∑=
=
n
k
k
k
n xxxfhkk
sxP
0
10 ,...,,!
( ) ( ) ( ) ( )ii
ii
iiii xf
hh
xf
xx
xfxfxxf ∆=∆=
−−=
+
++
!1
1],[
1
11
Polinomio interpolante de Newton
Iterativamente llegamos a
ii
iiiiiii
xx
xxfxxfxxxf
−−=
+
+++++
2
12121
],[],[],,[
( ) ( )
h
hxf
hxf
xxxf
ii
iii2
],,[
1
21
∆−∆=
+
++
( ) ( )iiiii xfh
xfh
xxxf 2
2
2
221!2
1
2
1],,[ ∆=∆=++
( )ik
kkiii xfhk
xxxf ∆=++!
1],...,,[ 1
Las diferencias progresivas se calculan como:
Polinomio interpolante de Newton
( ) ( ) ( )0 1 0f x f x f x∆ = −
( ) ( )( ) ( ) ( )( ) ( ) ( )2
0 0 1 0 1 0f x f x f x f x f x f x∆ = ∆ ∆ = ∆ − = ∆ − ∆
( ) ( ) ( ) ( )( ) ( ) ( ) ( )
( ) ( ) ( ) ( )( ) ( )
3 2
0 0 1 0
2 1 1 0
2 1 1 0
2 2
1 0
f x f x f x f x
f x f x f x f x
f x f x f x f x
f x f x
∆ = ∆ ∆ = ∆ ∆ − ∆
= ∆ − − +
= ∆ − ∆ − ∆ + ∆
= ∆ − ∆
En general, tendremos
( ) ( ) ( ) ( )1 1 1
0 0 1 0
k k k kf x f x f x f x− − − ∆ = ∆ ∆ = ∆ − ∆
Podemos simplificar aún mas Pn(x) para escribir
que se conoce como la fórmula de las diferencias
progresivas de Newton o fórmula hacia delante de
Newton-Gregory.
Si reescribimos el polinomio interpolante como
( ) ( )∑=
∆
=
n
k
i
k
n xfk
sxP
0
( ) ( ) ( )( ) ....121 +−−+−+= −−− nnnnnnn xxxxaxxaaxP
( )( ) ( )010 ...... xxxxxxa nn −−−+ −
y utilizamos las mismas suposiciones anteriores
ii xxh −= +1 shxx n +=
Polinomio interpolante de Newton
( )n ix x s i h−− = +
Polinomios interpolante de Newton
Podemos escribir
o
y al definir la diferencia regresiva (y sus potencias)
1−−=∇ nnn ppp
( ) ( ) [ ] [ ]( ) ++−+=+= − ...., 1 nnnnnnn xxxxfxfshxPxP
[ ]( )( ) ( )1101 ...,...,,... xxxxxxxxxf nnnn −−−+ −−
( ) [ ] [ ] ( ) [ ]....,,1, 21
2
1 −−− +++= nnnnnnn xxxfhssxxshfxfxP
( ) ( ) [ ]01,...,,1...1... xxxfhnsss nn
n
−−+++
( ) 2,1 ≥∇∇=∇ − kpp n
k
n
k
( )( )
2 1
1
1
=
n n
n n
n n
p p
p p
p p
−
−
∇ = ∇ ∇ =
∇ −= ∇ − ∇
Polinomios interpolante de Newton
podemos escribir
Utilizando estos resultados y la definición de la 2da
diferencia dividida tenemos
( ) ( ) ( )h
xf
h
xfxf
xx
xfxfxxf iii
ii
iiii
∇=−
−=−−= −
−
−−
][][],[ 1
1
11
ii
iiiiiii
xx
xxfxxfxxxf
−−=
−
−−−−−
2
12121
],[],[],,[
( ) ( ) ( ) ( )2
1121
22
//],,[
h
xfxf
h
hxfhxfxxxf iiiiiii
−−−−
∇−∇=−
∇−∇=
( )2
2
212
],,[h
xfxxxf iiii
∇=−−(89)
Polinomios interpolante de Newton
y, en general
En consecuencia tenemos
( )k
i
k
kiiihk
xfxxxf
!],...,,[ 1
∇=−−
( ) [ ] ( ) ( ) ( ) ( ) ( ) ( )nn
nnnn xfn
nsssxf
ssxfsxfxP ∇−++++∇++∇+=
!
1...1...
2
1 2
Al extender la definición del coeficiente binomial a
todos los números reales
( ) ( ) ( ) ( ) ( )!
1....11
!
1....1
k
ksss
k
ksss
k
s k −++−=+−−−−−=
−
Polinomios interpolante de Newton
tenemos
En forma compacta
que se conoce como la fórmula de las diferencias
regresivas de Newton o fórmula hacia atrás de
Newton-Gregory. Nótese que la variable x está
implícita en la nueva variable s.
( ) [ ] ( ) ( ) ( ) ( ) ( ) ( )nnn
nnnn xfn
sxf
sxf
sxfxP ∇
−−++∇
−−+∇
−−+= 1...
21
11 221
( ) ( ) ( )∑=
∇
−−=
n
k
n
kk
n xfk
sxP
0
1
Polinomios interpolante de Newton
Aplicación: Considere la aproximación de la
siguiente data utilizando las fórmulas de diferencias
progresivas de Newton y evalúelo en x=1.1
( ) ( )∑=
∆
=
n
k
i
k
n xfk
sxP
0
X Y1 0.7651977
1.3 0.6200861.6 0.45540221.9 0.28181862.2 0.1103623
La expresión de la formula de diferencias progresivas
de Newton es:
Polinomios interpolante de Newton
Puesto que tenemos 5 puntos de data, el polinomio
buscado debería ser de 4to grado. Entonces, la
fórmula de diferencias progresivas nos llevaría a:
( ) ( )
( ) ( ) ( ) ( ) ( )
4
4
0
0 1 2 3 4
0 1 2 3 4
k
i
k
i i i i i
sP x f x
k
s s s s sf x f x f x f x f x
=
= ∆
= ∆ + ∆ + ∆ + ∆ + ∆
∑
Si le asignamos al 1er punto de data el índice 0
tenemos
( ) ( ) ( ) ( ) ( ) ( )0 1 2 3 4
4 0 0 0 0 00 1 2 3 4
s s s s sP x f x f x f x f x f x
= ∆ + ∆ + ∆ + ∆ + ∆
Polinomios interpolante de Newton
Los valores de los coeficientes polinomiales a
emplear son:
( ) ( )
( )( ) ( ) ( )( )
( )
1 .... 1
!
1 2 3 1 2; ;
4 34! 3!
1; ; 1
2 1 02! 1!
s s s s k
k k
s ss s s s s s s
s s ss s s
− − + =
− − − − − = =
− = = =
Polinomios interpolante de Newton
Las diferencias progresivas son dadas por
X Y D1 D2 D3 D41 0.7651977 -0.1451117 -0.0195721 0.0106723 0.0003548
1.3 0.620086 -0.1646838 -0.0088998 0.01102711.6 0.4554022 -0.1735836 0.00212731.9 0.2818186 -0.17145632.2 0.1103623
( ) ( ) ( ) ( )1 1 1
0 0 1 0
k k k kf x f x f x f x− − − ∆ = ∆ ∆ = ∆ − ∆
Luego, el polinomio buscado es:
( ) ( ) ( )
( ) ( )
4 0.7651977 0.1451117 0.01957210 1 2
0.0106723 0.00035483 4
s s sP x
s s
= + − + − +
+
Polinomios interpolante de Newton
Sustituyendo las expresiones de los coeficientes
polinomiales llegamos a:
( ) ( ) ( ) ( ) ( )
( )( ) ( ) ( )( )( ) ( )
4
11 0.7651977 0.1451117 0.0195721
2!
1 2 1 2 3 0.0106723 0.0003548
3! 4!
s sP x s
s s s s s s s
−= + − + − +
− − − − −+
Luego, en x=1.1 tendremos que s es dado por:
00
1.1 1.0 1
0.3 3
x xx x sh s
h
− −= + → = = =
En consecuencia,
( ) ( ) ( )( )( )( ) ( ) ( )4 1.1 0.7651977 0.333333333 0.1451117 -0.111111111 0.0195721
0.061728395 0.0106723 -0.041152263 0.0003548 0.719645994
P = + − + − +
+ =
Polinomios interpolante de Newton
Para comprobar nuestros resultados, hacemos uso de
Excel, graficamos nuestra data y trazamos como
línea de tendencia un polinomio de grado 4Polinomio Interpolante de Cuarto Grado
y = 0.0018x4 + 0.0553x3 - 0.343x2 + 0.0734x + 0.9777R2 = 1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1 1.2 1.4 1.6 1.8 2 2.2 2.4
Y
Polinómica (Y)
Polinomios interpolante de Newton
Evaluando el polinomio obtenido llegamos a:
( ) 4 3 2
4 0.0018x + 0.0553x - 0.343x + 0.0734x + 0.9777P x =
Luego,
( ) ( ) ( ) ( ) ( )( )
4 3 2
4
4
1.1 0.0018 1.1 + 0.0553 1.1 - 0.343 1.1 + 0.0734 1.1 + 0.9777
1.1 0.71964968
P
P
=
=
La diferencia entre ambas aproximaciones es
0.71964968-0.7196459940.00051216%
0.71964968=
insignificante.
60
Capítulo I
• Introducción
• Polinomios de Newton de diferencias divididas
• Polinomios de Lagrange
• Interpolación polinomial
• Trazadores rectilíneos, parabólicos y cúbicos
• Métodos de mínimos cuadrados (lineal y no lineal)
• Referencias
61
Otro método que permite escribir el polinomio interpolante de
un conjunto de datos lo constituyen los polinomios de Lagrange.,
los cuales se pueden obtener como una reformulación del
polinomio de Newton para evitar el cálculo de las diferencias
divididas.
Por ejemplo, en el caso de dos puntos tenemos que
Polinomios de Lagrange
( ) [ ] [ ]( )00101 , xxxxfxfxP −+=
Si escribimos la diferencia dividida como
[ ] ( ) ( ) ( ) ( )10
0
01
1
01
0110 ,
xx
xf
xx
xf
xx
xfxfxxf
−+
−=
−−=
tenemos
( ) ( ) ( ) ( ) ( )0
10
0
01
101 xx
xx
xf
xx
xfxfxP −
−+
−+=
62
Reagrupando
Polinomios de Lagrange
Simplificando obtenemos
En el caso del polinomio interpolante de orden 2 tendremos
( ) ( ) ( ) ( ) ( )1
01
000
10
01 xf
xx
xxxfxx
xx
xfxP
−−+
+−
−=
( ) ( ) ( )1
01
00
10
11 xf
xx
xxxf
xx
xxxP
−−+
−−=
( ) [ ] [ ]( ) [ ]( )( )1001200102 ,,, xxxxxxxfxxxxfxfxP −−+−+=
63
Reescribiendo la segunda diferencia dividida obtenemos
Polinomios de Lagrange
Sustituyendo obtenemos
Expandiendo la expresión y reagrupando llegamos a
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( )( )( )10
02
01
01
12
12
0
01
0102
xxxxxx
xx
xfxf
xx
xfxf
xxxx
xfxfxfxP
−−−
−−−
−−
+
−−−+=
[ ] [ ] [ ]( ) ( ) ( ) ( )
02
01
01
12
12
02
0112210
,,,,
xx
xx
xfxf
xx
xfxf
xx
xxfxxfxxxf
−−−−
−−
=−−=
64
Polinomios de Lagrange
( ) ( ) ( ) ( ) ( ) ( )
( ) ( )( )( )
( ) ( )( )( ) ( )( )10
0201
01
0212
12
0
10
00
01
102
xxxxxxxx
xfxf
xxxx
xfxf
xxxx
xfxx
xx
xfxfxP
−−
−−−−
−−−+
−−
+−−
+=
( ) ( ) ( ) ( ) ( ) ( )
( )( )( )( )( )
( )( )( )( )( )
( )( )( )( )( )
( )( )( )( )( )0201
100
0201
101
0212
101
0212
102
0
10
00
01
102
xxxx
xxxxxf
xxxx
xxxxxf
xxxx
xxxxxf
xxxx
xxxxxf
xxxx
xfxx
xx
xfxfxP
−−−−+
−−−−−
−−−−−
−−−−+
−−
+−−
+=
65
Polinomios de Lagrange
( ) ( )( )( )( ) ( )
( )( )( )( )
( )( )( )( ) ( )
( )( )( )( ) ( )2
0212
10
1
0201
10
0212
10
01
0
0
0201
10
10
02
1
xfxxxx
xxxx
xfxxxx
xxxx
xxxx
xxxx
xx
xx
xfxxxx
xxxx
xx
xxxP
−−−−+
−−−−−
−−−−−
−−+
−−−−+
−−+=
Reagrupando
Simplifiquemos cada término. Entonces
( )( )( )( )
( )( ) ( )( ) ( )( )( )( )2010
102002010
0201
10
10
01
xxxx
xxxxxxxxxxxx
xxxx
xxxx
xx
xx
−−−−+−−+−−
=−−
−−+−−+
66
Polinomios de Lagrange
Luego
( )( )( )( )
( )( )2010
1001
2
20
2
020210120
2
0
0201
10
10
01
xxxx
xxxxxxxxxxxxxxxxxxxxx
xxxx
xxxx
xx
xx
−−+−−++−−++−−=
=−−
−−+−−+
( )( )( )( ) ( )( )2010
1
2
221
0201
10
10
01xxxx
xxxxxxx
xxxx
xxxx
xx
xx
−−−+−=
−−−−+
−−+
Simplificando
( )( )( )( )
( )( )( )( )2010
21
0201
10
10
01xxxx
xxxx
xxxx
xxxx
xx
xx
−−−−=
−−−−+
−−+
Factorizando
67
Polinomios de Lagrange
De manera similar se puede mostrar que
y en consecuencia tenemos que P2(x) se escribe como:
( )( )( )( )
( )( )( )( )
( )( )( )( )0201
20
0201
10
0212
10
01
0
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xx
xx
−−−−=
−−−−−
−−−−−
−−
( ) ( )( )( )( ) ( )
( )( )( )( ) ( )
( )( )( )( ) ( )2
1202
10
1
2101
20
0
2010
212
xfxxxx
xxxx
xfxxxx
xxxx
xfxxxx
xxxxxP
−−−−+
−−−−+
−−−−=
68
Polinomios de Lagrange
Si comparamos los polinomios de Lagrange de 1ro y 2do grado
podemos expresar en forma general el polinomio de grado n como
( ) ( )( )( )( ) ( )
( )( )( )( ) ( )
( )( )( )( ) ( )2
1202
10
1
2101
20
0
2010
212
xfxxxx
xxxx
xfxxxx
xxxx
xfxxxx
xxxxxP
−−−−+
−−−−+
−−−−=
( ) ( ) ( )101
00
10
11 xf
xx
xxxf
xx
xxxP
−−+
−−=
( ) ( ) ( )in
i
in xfxLxP ∑=
=0
( )ji
jn
ijj
ixx
xxxL
−−
= ∏≠=0
69
Polinomios de Lagrange
donde P representa el producto de los distintos términos:
Así, para n=2 tendremos
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )221100
2
0
2 xfxLxfxLxfxLxfxLxP i
i
i ++==∑=
( ) ( )( )
( )( )
( )( )
( )( )
( )( )
( )( )ni
n
ni
n
ii
i
ii
i
ii
ixx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx
xxxL
−−
−−
−−
−−
−−
−−=
−
−
+
+
−
−
1
1
1
1
1
1
1
1
0
0 ......
( )
( )
( )
−−
−−=
−−
=
−−
−−=
−−
=
−−
−−=
−−
=
∏
∏
∏
≠=
≠=
≠=
12
1
02
02
20
2
21
2
01
02
10
1
20
2
10
12
00
0
xx
xx
xx
xx
xx
xxxL
xx
xx
xx
xx
xx
xxxL
xx
xx
xx
xx
xx
xxxL
jj ji
j
jj ji
j
jj ji
j
70
Polinomios de Lagrange
quedando:
( ) ( )( )( )( ) ( ) ( )( )
( )( ) ( )
( )( )( )( ) ( )2
1202
10
1
2101
200
2010
212
xfxxxx
xxxx
xfxxxx
xxxxxf
xxxx
xxxxxP
−−−−+
−−−−+
−−−−=
71
Aplicación: Consideremos el siguiente conjunto de datos
x y
2.0 1.623
2.5 1.855
4.0 2.041
4.5 2.333
6.0 2.561
Se desea hallar el valor interpolado en el punto 2.2 utilizando el
polinomio de Lagrange que interpola todos los datos.
Puesto que tenemos cinco pares de datos, el polinomio de
Lagrange buscado es de orden 4 (5-1).
Polinomios de Lagrange
72
Podemos escribir directamente los distintos términos del
polinomio
Polinomios de Lagrange
( ) ( ) ( ) ( )( )
( )( )
( )( )
( )( ) ( )
( )( )
( )( )
( )( )
( )( ) ( )
( )( )
( )( )
( )( )
( )( ) ( )
( )( )
( )( )
( )( )
( )( ) ( )
( )( )
( )( )
( )( )
( )( ) ( )4
34
3
24
2
14
1
04
0
3
43
4
23
2
13
1
03
0
2
42
4
32
3
12
1
02
0
1
41
4
31
3
21
2
01
0
0
40
4
30
3
20
2
10
14
0
4
xfxx
xx
xx
xx
xx
xx
xx
xx
xfxx
xx
xx
xx
xx
xx
xx
xx
xfxx
xx
xx
xx
xx
xx
xx
xx
xfxx
xx
xx
xx
xx
xx
xx
xx
xfxx
xx
xx
xx
xx
xx
xx
xxxfxLxP i
i
i
−−
−−
−−
−−+
−−
−−
−−
−−+
−−
−−
−−
−−+
−−
−−
−−
−−+
−−
−−
−−
−−==∑
=
73
Sustituyendo por los datos conocidos tenemos:
Polinomios de Lagrange
( ) ( )( )
( )( )
( )( )
( )( ) ( )
( )( )
( )( )
( )( )
( )( ) ( )
( )( )
( )( )
( )( )
( )( ) ( )
( )( )
( )( )
( )( )
( )( ) ( )
( )( )
( )( )
( )( )
( )( ) ( )6
5.46
5.4
46
4
5.26
5.2
26
2
5.465.4
6
45.4
4
5.25.4
5.2
25.4
2
464
6
5.44
5.4
5.24
5.2
24
2
5.265.2
6
5.45.2
5.4
45.2
4
25.2
2
262
6
5.42
5.4
42
4
5.22
5.24
fxxxx
fxxxx
fxxxx
fxxxx
fxxxx
xP
−−
−−
−−
−−+
−−
−−
−−
−−+
−−
−−
−−
−−+
−−
−−
−−
−−+
−−
−−
−−
−−=
74
Realizando las operaciones
Polinomios de Lagrange
( ) ( )( )( )( )
( )( )( )( )
( )( )( )( )
( )( )( )( )
( )( )( )( )561.2
42
5.445.22
333.275.3
645.22
041.23
65.45.22
855.125.5
65.442
623.110
65.445.24
−−−−+
−−−−−
−−−−+
−−−−−
−−−−=
xxxx
xxxx
xxxx
xxxx
xxxxxP
75
Finalmente, el polinomio interpolante es:
Polinomios de Lagrange
( ) ( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )5.445.220610.0
645.226221.0
65.45.226803.0
65.4423533.0
65.445.21623.04
−−−−+−−−−−
−−−−+−−−−−−−−−=
xxxx
xxxx
xxxx
xxxx
xxxxxP
Luego,
( ) ( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( )( ) 7610.15.42.242.25.22.222.20610.0
62.242.25.22.222.26221.0
62.25.42.25.22.222.26803.0
62.25.42.242.222.23533.0
62.25.42.242.25.22.21623.02.24
=−−−−+−−−−−
−−−−+−−−−−
−−−−=P
76
Una propiedad importante de los polinomios de Lagrange es:
Polinomios de Lagrange
Veamos por ejemplo para n=1. Tenemos,
( ) 1=∑i
i xL
( )
1
10
01
10
01
01
0
10
1
=−+−=
−+−−=
−−+
−−=∑
xx
xx
xx
xxxx
xx
xx
xx
xxxL
i
i
77
Luego, el polinomio Li que acompaña cada valor de f(xi)
representa el peso relativo de este en la aproximación. Cuando
x=xi, entonces todos los Lj(xi) son nulos exceptuando a Li(x) que
acompaña xi con Li(xi)=1. Por ejemplo, para P2(x0) tenemos:
Polinomios de Lagrange
( ) ( )( )( )( ) ( ) ( )( )
( )( ) ( )
( )( )( )( ) ( )2
1202
100
1
2101
2000
2010
21002
xfxxxx
xxxx
xfxxxx
xxxxxf
xxxx
xxxxxP
−−−−+
−−−−+
−−−−=
0
0
1
( ) ( ) ( ) ( ) ( )021002 001 xfxfxfxfxP =++=
78
Capítulo I
• Introducción
• Polinomios de Newton de diferencias divididas.
• Polinomios de Lagrange
• Interpolación polinomial
• Trazadores rectilíneos, parabólicos y cúbicos.
• Métodos de mínimos cuadrados (lineal y no lineal)
• Referencias
79
Interpolación Polinomial
En el caso en el cual se desea expresar el polinomio de
interpolación en la forma
ninguno de los dos métodos esbozados anteriormente
permite una fácil identificación de los coeficientes. En
general tendremos que podemos escribir
1 2
1 1 2 1( ) ...n n
n n nP x c x c x c x c− −− −= + + + +
[ ]
1
2
1 2
1
.( ) ... 1
.
.
n n
n
n
c
c
P x x x x
c
− −−
=
80
Como el polinomio permite la interpolación de la data
dada entonces
En forma matricial utilizando la definición de la matriz de
Vandermonde
1 1
1 1 1 1 1
1 12 22 2 2
1 1
... 1
... 1
. ..
. ..
. ..
... 1
n n
n n
n nn nn n n
x x x c y
c yx x x
c yx x x
− −
− −
− −
=
=Vc y
En consecuencia1−=c V y
Interpolación Polinomial
81
MATLAB permite obtener fácilmente los coeficientes del
polinomio. El comando polyfit devuelve los coeficientes
en orden descendiente. Por ejemplo, utilicemos la data del
ejemplo anterior
x y
2.0 1.623
2.5 1.855
4.0 2.041
4.5 2.333
6.0 2.561
La secuencia en MATLAB está en el recuadro
>> x=[2 2.5 4 4.5 6];
>> y=[1.623 1.855 2.041 2.333 2.561];
>> c=polyfit(x,y,length(x)-1)
c =
-0.0719 1.0941 -5.9313 13.7834 -9.8221
Interpolación Polinomial
82
Luego el polinomio buscado es
4 3 2
4 ( ) 0.0719 1.0941 5.9313 13.7834 9.8221P x x x x x= − + − + −
Veamos P4(x) gráficamente
Al utilizar polinomios de
alto orden, las oscilaciones
de los mismos pueden
llevar a interpolaciones con
un alto error.
Esto conduce a la
necesidad de hallar otros
métodos de interpolación.
Interpolación Polinomial
83
Capítulo I
• Introducción
• Polinomios de Newton de diferencias divididas
• Polinomios de Lagrange
• Interpolación polinomial
• Trazadores rectilíneos, parabólicos y cúbicos
• Métodos de mínimos cuadrados (lineal y no lineal)
• Referencias
84
Splines
Las oscilaciones en los polinomios de alto grado pueden
conducir a errores importantes en la interpolación de
datos.
Una alternativa es la consideración de polinomios de
orden bajo para interpolar subconjuntos de los datos.
La opción de menor orden posible a ser considerada es la
interpolación de orden 1 o interpolación lineal entre
puntos adyacentes.
Consideremos la misma data del ejemplo anterior.
85
Splines
La interpolación lineal entre puntos adyacentes nos lleva a
la siguiente representación.
Las ecuaciones que
corresponden a esta
interpolación vienen dadas
por:
( ) iii bxaxP +=
Para n +1 puntos de datos
la determinación de las 2n
constantes ai y bi se realiza
utilizando las condiciones:
( ) iii yxP =
11 bxa +
22 bxa +ii bxa +
nn bxa +
( ) 11 −− = iii yxP
86
Splines
Luego, tendremos que
( ) 111 −−− =+= iiiiii ybxaxP n ecuaciones
( ) iiiiii ybxaxP =+= n ecuaciones
Así, las 2n ecuaciones necesarias para hallar los
coeficientes de los polinomios son construidas. Nótese
que una ecuación alternativa pudo haberse construido al
garantizar la continuidad de las rectas en los puntos de
data:
( ) ( )iiii xPxP 1+=
87
Splines
La interpolación lineal presenta el inconveniente de
mostrar saltos en la pendiente en cada punto de data. Una
alternativa la constituye el uso de una interpolación
cuadrática. En ese caso, los polinomios interpolantes
serán de la forma
( ) iiii cxbxaxP ++= 2
( ) iii yxP =
iii cxbxa ++2
22
2
2 cxbxa ++
11
2
1 cxbxa ++
nnn cxbxa ++2
Ahora es necesario
obtener las
ecuaciones que
permiten obtener las
3n constantes
desconocidas.
88
Splines
Podemos utilizar las siguientes ecuaciones:
a) Los valores de los polinomios en los nodos adyacentes
deben ser iguales (2(n-1)=2n-2 ecuaciones)
b) La primera y la última función deben pasar por los
puntos extremos (2 ecuaciones)
c) Las primeras derivadas en los nodos interiores deben
ser iguales (n-1 ecuaciones)
Luego tenemos un total de (2n-2)+2+(n-1)=3n-1
ecuaciones. Falta una ecuación. ¿de donde la
obtenemos?
( ) iii yxP = ( ) iii yxP =+1
( ) 001 yxP = ( ) nnn yxP =
( ) ( )iiii xPxP′=′
+1
89
Splines
Podemos escoger que en el primer punto la segunda
derivada sea nula. Esto implica que( ) 001 =″xP
Esta ecuación permite completar el conjunto de 3n ecuaciones
requerido para hallar las 3n constantes (ai, bi y ci).
Escribiendo cada conjunto de ecuaciones en término de las
constantes a determinar tenemos:
( ) 1,...,1 2 −==++= niycxbxaxP iiiiiiii
( ) 1,...,1 11
2
11 −==++= ++++ niycxbxaxP iiiiiiii
( ) 0101
2
0101 ycxbxaxP =++=
( ) nnnnnnnn ycxbxaxP =++= 2
( ) ( ) 1,...,1 22 111 −=+=+=′=′+++ nibxabxaxPxP iiiiiiiiii
( ) 02 101 ==′axP
90
Splines
Aplicación: Ajuste segmentarias cuadráticas a los valores
de la tablax y
2.0 1.623
2.5 1.855
4.0 2.041
4.5 2.333
6.0 2.561
Dado que tenemos 5 puntos de datos tenemos 4
polinomios de segundo grado que calcular y, en
consecuencia, 4x3=12 incógnitas.
Escribamos el conjunto de ecuaciones.
91
Splines
Ecuaciones 1: ( ) niycxbxaxP iiiiiiii ,...,1 2 ==++=
( ) ( ) ( )( ) ( ) ( )( ) ( ) ( ) 333.25.45.45.4
041.2444
855.15.25.25.2
33
2
33
22
2
22
11
2
11
=++=
=++=
=++=
cbaP
cbaP
cbaP
( ) 1,...,1 ;11
2
11 −==++= ++++ niycxbxaxP iiiiiiiiEcuaciones 2:
( ) ( ) ( )( ) ( ) ( )( ) ( ) ( ) 333.25.45.45.4
041.2440.4
855.15.25.25.2
44
2
44
33
2
33
22
2
22
=++=
=++=
=++=
cbaP
cbaP
cbaP
92
Splines
Ecuación 3:
Ecuaciones 5:
( ) 0101
2
0101 ycxbxaxP =++=
( ) ( ) ( ) 623.1220.2 11
2
11 =++= cbaP
Ecuación 4: ( ) nnnnnnnn ycxbxaxP =++= 2
( ) ( ) ( ) 561.20.60.60.6 44
2
44 =++= cbaP
( ) ( ) 1,..,1;22 111 −=+=+=′=′+++ nibxabxaxPxP iiiiiiiiii
( ) ( ) ( ) ( )( ) ( ) ( ) ( )( ) ( ) ( ) ( ) 443343
332232
221121
5.425.425.45.4
424244
5.225.225.25.2
babaPP
babaPP
babaPP
+=+=′=′+=+=′=′
+=+=′=′
Ecuación 6: ( ) 02 101 ==′axP ( ) 020.2 11 ==′
aP
93
Splines
Luego, el conjunto de ecuaciones a resolver es:
333.25.425.20
041.2416
855.15.225.6
333
222
111
=++=++
=++
cba
cba
cba
333.25.425.20
041.2416
855.15.225.6
444
333
222
=++=++
=++
cba
cba
cba
623.124 111 =++ cba
561.2636 444 =++ cba
099
088
055
4433
3322
2211
=−−+=−−+=−−+
baba
baba
baba
02 1 =a
Este conjunto de 12 ecuaciones con 12 incógnitas puede
ser resuelto analítica o numéricamente.
−−−−
−−
000000000002
019019000000
000018018000
000000015015
1636000000000
000000000124
15.425.20000000000
0001416000000
00000015.225.6000
00015.425.20000000
0000001416000
00000000015.225.6
4
4
4
3
3
3
2
2
2
1
1
1
c
b
a
c
b
a
c
b
a
c
b
a
=
0
0
0
0
561.2
623.1
333.2
041.2
855.1
333.2
041.2
855.1
En forma matricial tendremos
Splines
Resolviendo con MATLAB tenemos:
n=12;
A(1:n,1:n)=0;
A(1,1)=6.25; A(1,2)=2.5; A(1,3)=1;
A(2,4)=16; A(2,5)=4; A(2,6)=1;
A(3,7)=20.25; A(3,8)=4.5; A(3,9)=1;
A(4,4)=6.25; A(4,5)=2.5; A(4,6)=1;
A(5,7)=16; A(5,8)=4; A(5,9)=1;
A(6,10)=20.25; A(6,11)=4.5; A(6,12)=1;
A(7,1)=4; A(7,2)=2; A(7,3)=1;
A(8,10)=36; A(8,11)=6; A(8,12)=1;
A(9,1)=5; A(9,2)=1; A(9,4)=-5;A(9,5)=-1;
A(10,4)=8; A(10,5)=1; A(10,7)=-8;A(10,8)=-1;
A(11,7)=9; A(11,8)=1; A(11,10)=-9;A(11,11)=-1;
A(12,1)=2;
b(1:n)=0;
b(1)=1.855; b(2)=2.041;b(3)=2.333;
b(4)=1.855; b(5)=2.041;b(6)=2.333;
b(7)=1.623; b(8)=2.561;
x=A\b'
x =
-0.0000
0.4640
0.6950
-0.2267
1.5973
-0.7217
1.6000
-13.0160
28.5050
-0.8213
8.7760
-20.5270
Splines
Finalmente los polinomios cuadráticos buscados son:
( ) ( )( )( ) 5270.207760.88213.0
5050.280160.136000.1
7217.05973.12267.0 ;6950.04640.0
2
4
2
3
2
21
−+−=
+−=
−+−=+=
xxP
xxxP
xxxPxxP
2 2.5 3 3.5 4 4.5 5 5.5 61.6
1.8
2
2.2
2.4
2.6
2.8
3
X
YSegmentaria Cuadrática
Splines
97
Splines
Al analizar la condición “artificial” sobre la segunda
derivada vemos que ella implica que el primer polinomio
es de la forma
( ) 111 cxbxP +=
y, en consecuencia corresponde a una aproximación
lineal.
Además se producen aún se producen cambios bruscos en
la curvatura.
Por estas limitaciones, se emplean preferentemente
interpolantes segmentarias cúbicas.
98
Una aproximación continua y derivable dos veces puede
ser desarrollada. Esta es conocida como splines cubicos.
El polinomio de interpolación es una función a trozos :
( )
( )( )
( )
( )( )
1 1 2
2 2 3
j 1
2 2 1
1 1
.
.
j j
n n n
n n n
S x x x x
S x x x x
S x S x x x x
S x x x x
S x x x x
+
− − −
− −
≤ ≤
≤ ≤= ≤ ≤ ≤ ≤
≤ ≤
Splines
x
y
( )xS1
( )xS2
( )xSn 1−
( )xS j
1x nx
99
Los splines cúbicos se expresan como:
( ) ( ) ( ) ( )3 2
1 j j j j j j j j j jS x a x x b x x c x x d x x x += − + − + − + ≤ ≤
Para satisfacer los requisitos de continuidad de la función
interpolante y sus derivadas tendremos
( ) ( )( ) ( )( ) ( )
1
1
1
j=2,3,...,n-1
j=2,3,...,n-1
j=2,3,...,n-1
j j j j
j j j j
j j j j
S x S x
S x S x
S x S x
−
−
−
=
′ ′=
′′ ′′=
Imponiendo estas condiciones tenemos
( ) ( ) ( )( ) ( )( )
3 2
1 1 1 1 1 1 1
2
1 1 1 1 1
1 1 1
=
3 2 =
6 2 =2
j j j j j j j j j j j
j j j j j j j j
j j j j j
a x x b x x c x x d d
a x x b x x c c
a x x b b
− − − − − − −
− − − − −
− − −
− + − + − +
− + − +
− +
Splines
100
Para simplificar las operaciones supongamos que los
nodos están igualmente espaciados. Entonces
( )1j jh x x −= −
Luego el sistema de ecuaciones se reduce a
Recordemos que los dj son conocidos (Sj(xj)=dj=yj).
Entonces podemos escribir
3 2
1 1 1 1
2
1 1 1
1 1
=
3 2 =
6 2 =2
j j j j j
j j j j
j j j
a h b h c h d d
a h b h c c
a h b b
− − − −
− − −
− −
+ + +
+ +
+
( )1
1
1=3
j j
j
b ba
h
−−
−
Splines
101
Al sustituir aj-1 en el sistema obtenemos
Resolviendo para cj-1 obtenemos
( )
( )
3 2
1 1 1 1
1 3 2
1 1 1
2
1 1 1
=
1=
3
12 =
3
j j j j j
j j
j j j j
j j j j j
a h b h c h d d
b bh b h c h d d
h
b b h c h d d
− − − −
−− − −
− − −
+ + +
−+ + +
+ + +
( )
( )( )
1 2
1 1
1 1 1
1 1
13 2 =
3
2 =
=
j j
j j j
j j j j j
j j j j
b bh b h c c
h
b b h b h c c
b b h c c
−− −
− − −
− −
− + +
− + +
+ +
( )1
1 1
1= 2
3
j j
j j j
d dc b b h
h
−− −
−− +
y, al incrementar en 1 a j tenemos
( )1
1
1= 2
3
j j
j j j
d dc b b h
h
++
−− +
Splines
102
Al sustituir cj-1 y cj en
obtenemos
( )1 1=j j j jb b h c c− −+ +
Reagrupando términos
( ) ( ) ( )1 1
1 1 1
1 12 2
3 3
j j j j
j j j j j j
d d d db b h b b h b b h
h h
− +− − +
− −+ + − + = − +
Splines
( )2,...,32
234
2
11
11 −=+−
=++ +−+− n,j
h
dddbbb
jjj
jjj
103
Si se expresa la ecuación anterior para varios j tenemos
que constituye un sistema de n-3 ecuaciones con n-1
incógnitas (los b’j)
Splines
( )
( )
( )
( )2
123123
2
234234
2
432432
2
321321
234
234
.
.
.
234
234
h
dddbbb
h
dddbbb
h
dddbbb
h
dddbbb
nnnnnn
nnnnnn
−−−−−−
−−−−−−
+−=++
+−=++
+−=++
+−=++
104
Para cerrar el sistema, se necesitan dos ecuaciones mas.
Estas se obtienen de las condiciones de borde. Un tipo de
splines usado comúnmente se denomina splinespline natural y
se define a partir de:
Luego, puesto que
1( ) ( ) 0nS x S x′′ ′′= =
( ) ( )6 2j j j jS x a x x b′′ = − +
obtenemos
( ) ( )1 1 1 1 1 16 2 0S x a x x b′′ = − + = 1 0b =
( ) ( )1 1 1 16 2 0n n n n n nS x a x x b− − − −′′ = − + = ( )1 1 13n n n nb a x x− − −= − −
Splines
105
Splines
Pero como
Si suponemos que existe otro polinomio Sn(x) que parte
del punto (xn,yn) podríamos escribir, para j=n
y, en consecuencia
( )1
1
1=3
j j
j
b ba
h
−−
−
( )1
1
1=3
n n
n
b ba
h
−−
−
0nb =
( ) ( ) ( )11
1113
133 −
−−−− −−=
−−=−−= nnnn
nnnn bbhh
bbxxab
de donde obtenemos
106
Splines
Luego, el sistema a resolver para hallar los bj es:
( )
( )
( )
( )
( )
0
234
234
234
.
.
234
234
0
2
12312
2
123123
2
234234
2
432432
2
321321
1
=
+−=++
+−=++
+−=++
+−=++
+−=++
=
−−−−−
−−−−−−
−−−−−−
n
nnnnnn
nnnnnn
nnnnnn
b
h
dddbbb
h
dddbbb
h
dddbbb
h
dddbbb
h
dddbbb
b Con este sistema lineal,
tridiagonal, de n
ecuaciones y n
incógnitas los bj pueden
ser obtenidos al escribir:
tBb =donde B representa la
matriz de coeficientes, b
las incógnitas y t el
término independiente
dados por
107
Splines
14
4
44
1
11
11
11
11
=
−
n
n
b
b
b
b
b
1
3
2
1
+−
+−
+−
−−
0
23
23
23
0
2
12
2
432
2
321
h
ddd
h
ddd
h
ddd
nnn
108
Splines
Una vez determinados los bj, los n-1 coeficientes aj y bj se
determinan a partir de
( )
( ) 1,...,1 ;23
1
1,...,1 ;3
1
1
1
1
−=+−−
=
−=−
=
++
+
njhbbh
ddc
njh
bba
jj
jj
j
jj
j
Finalmente, cada polinomio Sj(x) se escribirá como:
( ) ( ) ( ) ( )3 2
1 j j j j j j j j j jS x a x x b x x c x x d x x x += − + − + − + ≤ ≤
109
Splines
Aplicación. Interpole usando splines cúbicos naturales la
data siguiente:
x y1 1.7
3 2.8
5 3.6
7 4.5
9 3.4
11 3.1
13 3.1
Debemos calcular los 6 polinomios Sj(x) que interpolan
cada segmento de datos, cuyos coeficientes son definidos
como:
( ) ( ) ( ) ( )3 2
1 j j j j j j j j j jS x a x x b x x c x x d x x x += − + − + − + ≤ ≤
110
Splines
En primer lugar se determinan los coeficientes dj haciendo
njyd jj ,...,1 ==
Luego, se resuelve el sistema tBb =
=
1
141
141
141
141
141
1
B
+−
+−
+−
+−
+−
=
0
23
23
23
23
23
0
2
765
2
654
2
543
2
432
2
321
h
ddd
h
ddd
h
ddd
h
ddd
h
ddd
t
[ ]'3.1000 3.1000 3.4000 4.5000 3.6000 2.8000 1.7000=jd
111
Splines
=
0
0.0123-
0.2742
0.4846-
0.1642
0.0973-
0
7
6
5
4
3
2
1
b
b
b
b
b
b
b
=
0
0.2250
0.6000
1.5000-
0.0750
0.2250-
0
1 0 0 0 0 0 0
1 4 1 0 0 0 0
0 1 4 1 0 0 0
0 0 1 4 1 0 0
0 0 0 1 4 1 0
0 0 0 0 1 4 1
0 0 0 0 0 0 1
7
6
5
4
3
2
1
b
b
b
b
b
b
b
Con los bj, se determinan los aj y cjutilizando:
( )
( ) 1,...,1 ;23
1
1,...,1 ;3
1
1
1
1
−=+−−
=
−=−
=
++
+
njhbbh
ddc
njh
bba
jj
jj
j
jj
j
112
Splines
=
0.0021
0.0478-
0.1265
0.1081-
0.0436
0.0162-
6
5
4
3
2
1
a
a
a
a
a
a
Finalmente, los polinomios buscados son:
=
0.0164
0.5074-
0.0867-
0.5541
0.4203
0.6149
6
5
4
3
2
1
c
c
c
c
c
c
( ) ( ) ( ) ( )( ) ( ) ( ) ( )( ) ( ) ( ) ( )( ) ( ) ( ) ( )( ) ( ) ( ) ( )( ) ( ) ( ) ( ) 1000.3110164.0110123.0110021.0
4000.395074.092742.090478.0
5000.470867.074846.071265.0
6000.355541.051642.051081.0
8000.234203.030973.030436.0
7000.116149.010000.010162.0
23
6
23
5
23
4
23
3
23
2
23
1
+−+−−−+=
+−−−+−−=
+−−−−−+=
+−+−+−−=
+−+−−−+=
+−+−+−−=
xxxxS
xxxxS
xxxxS
xxxxS
xxxxS
xxxxS
=
0
0.0123-
0.2742
0.4846-
0.1642
0.0973-
0
7
6
5
4
3
2
1
b
b
b
b
b
b
b
113
Splines
Gráficamente tenemos:
0 2 4 6 8 10 12 141.5
2
2.5
3
3.5
4
4.5
5Splines cubicos
x
S(x
)
114
Splines: ejemplo cálculo en MATLABclear all
x(1)=1; y(1)=1.7;
x(2)=3; y(2)=2.8;
x(3)=5; y(3)=3.6;
x(4)=7; y(4)=4.5;
x(5)=9; y(5)=3.4;
x(6)=11; y(6)=3.1;
x(7)=13; y(7)=3.1;
h=x(2)-x(1);
dj=y;
n=length(x);
A(1:n,1:n)=0;
A(1,1)=1;
ti(1)=0;
for j=2:n-1
A(j,j)=4;
A(j,j-1)=1;
A(j,j+1)=1;
ti(j)=3*(dj(j-1)-2*dj(j)+dj(j+1))/(h^2);
end
A(n,n)=1;
ti(n)=0;
b=A\ti'
% calculo de los coeficientes a'j y c'j
for j=1:n-1
aj(j)=(b(j+1)-b(j))/(3*h);
end
for j=1:n-1
cj(j)=(dj(j+1)-dj(j))/h-(b(j+1)+2*b(j))*h/3;
end
x1=linspace(x(1),x(2));
x2=linspace(x(2),x(3));
x3=linspace(x(3),x(4));
x4=linspace(x(4),x(5));
x5=linspace(x(5),x(6));
x6=linspace(x(6),x(7));
y1=aj(1)*(x1-x(1)).^3 + b(1)*(x1-x(1)).^2+cj(1)*(x1-x(1))+dj(1);
y2=aj(2)*(x2-x(2)).^3 + b(2)*(x2-x(2)).^2+cj(2)*(x2-x(2))+dj(2);
y3=aj(3)*(x3-x(3)).^3 + b(3)*(x3-x(3)).^2+cj(3)*(x3-x(3))+dj(3);
y4=aj(4)*(x4-x(4)).^3 + b(4)*(x4-x(4)).^2+cj(4)*(x4-x(4))+dj(4);
y5=aj(5)*(x5-x(5)).^3 + b(5)*(x5-x(5)).^2+cj(5)*(x5-x(5))+dj(5);
y6=aj(6)*(x6-x(6)).^3 + b(6)*(x6-x(6)).^2+cj(6)*(x6-x(6))+dj(6);
plot(x,y,'o',x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6)
title('Splines cubicos')
xlabel('x'); ylabel('S(x)');
115
Splines
Otra opción denominada spline cúbico con tensión
corresponde a dar los valores de las derivadas segundas en
los extremos.
Otros tipos de splines cúbicos pueden ser obtenidos
variando las condiciones en los extremos.
1 1( )
( )n n
S x M
S x M
′′ =′′ =
116
Splines
Aplicación con MATLAB
Consideremos la siguiente data:
x y
1 1.7
2.3 2.8
3.1 3.6
4 4.5
5.2 3.4
5.9 3.1
6.7 3.1
117
Splines
Para calcular con splines cúbicos y con un polinomio de
grado 6 utilizando MATLAB hacemos
>> x=[1 2.3 3.1 4 5.2 5.9 6.7]';
>> y=[1.7 2.8 3.6 4.5 3.4 3.1 3.1]';
>> xi=1:.1:6.7;
>> si=spline(x,y,xi);
>> c6=polyfit(x,y,6);
>> yi=polyval(c6,xi);
>> plot(x,y,'ko',xi,yi,'k.',xi,si,'k'),title('S(x) y P6(x)')
Los resultados se muestran en la lámina siguiente. Nótese
los cambios en los extremos.
118
Splines
119
Capítulo I
• Introducción
• Polinomios de Newton de diferencias divididas.
• Polinomios de Lagrange
• Interpolación polinomial
• Trazadores rectilíneos, parabólicos y cúbicos.
• Métodos de mínimos cuadrados (lineal y no lineal)
• Referencias
120
Aproximación por mínimos cuadrados
Consideremos un criterio distinto para ajustar una función
a una secuencia de datos. En lugar de buscar una función
que pase por cada uno de los puntos de la secuencia,
buscaremos una función que los aproxime. Por ejemplo, la
secuencia
podría requerir un polinomio de grado 13, el cual podría
oscilar bastante.
x y0 1.000
0.5 1.6491 2.718
1.5 4.4822 7.389
2.5 12.1823 20.086
3.5 33.1154 54.598
4.5 90.0175 148.413
5.5 244.6926 403.429
121
Aproximación por mínimos cuadrados
Supongamos que deseamos trazar una función que
aproxime la data dada, sin interpolar la misma.
Podríamos comenzar construyendo una función F(x)
( ) ( ) ( )1 1 2 2( ) ... n nF x c g x c g x c g x= + + +
Dado que no obligamos a F(x) a interpolar la data, en
general podemos tener que
( )i iF x y≠La “cercanía” relativa entre los valores que proporciona F
y la data la obtenemos de
( )i i id F x y= −
122
Aproximación por mínimos cuadrados
En consecuencia, el problema de determinar F podría
reducirse a determinar el mínimo de algún criterio como
Luego, definidas las funciones gj(x), podrían estimarse los
valores adecuados de las constantes.
( )( )
1
2
1
max
max
max
i
n
i
i
n
i
i
mín d
mín d
mín d
=
=
∑
∑
123
Aproximación por mínimos cuadrados
Gauss propuso que los parámetros aj sean determinados
minimizando
Luego, podemos construir la ecuación
2
1
n
i
i
d=∑
( ) ( )( )21 2
1
, ,...,n
k i i
i
E c c c F x y=
= −∑Entonces, podemos minimizar E. Consideremos el caso
k=2. Tenemos
( ) ( )( ) ( ) ( )( )2 2
1 2 1 1 2 2
1 1
,n n
i i i i i
i i
E c c F x y c g x c g x y= =
= − = + −∑ ∑
124
Aproximación por mínimos cuadrados
Los valores de c que minimizan E son obtenidos haciendo
En consecuencia,
( ) ( )1 2 1 2
1 2
, ,0 0
E c c E c c
c c
∂ ∂= =
∂ ∂
( ) ( ) ( )( ) ( )
( ) ( ) ( )( ) ( )
1 2 1 1 2 2 1
11
1 2 1 1 2 2 2
12
, 2 0
, 2 0
n
i i i i
i
n
i i i i
i
E c c c g x c g x y g xc
E c c c g x c g x y g xc
=
=
∂ = + − =∂∂ = + − =
∂
∑
∑
125
Aproximación por mínimos cuadrados
Luego,
La solución de este sistema lineal permitirá hallar los
valores de c1 y c2 que minimizan E para un conjunto de
funciones g(x) dadas. Estas ecuaciones se denominan
ecuaciones normales.
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
1 1 1 2 2 1 1
1 1 1
1 1 2 2 2 2 2
1 1 1
n n n
i i i i i i
i i i
n n n
i i i i i i
i i i
c g x g x c g x g x y g x
c g x g x c g x g x y g x
= = =
= = =
+ =
+ =
∑ ∑ ∑
∑ ∑ ∑
126
Aproximación por mínimos cuadrados
En el caso k=3 obtendremos
La solución de este sistema lineal permitirá hallar c1, c2 y
c3 que minimizan E para un conjunto de funciones g(x)
dadas.
( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( )
1 1 1 2 2 1 3 3 1 1
1 1 1 1
1 1 2 2 2 2 3 3 2 2
1 1 1 1
1 1 3 2 2 3 3 3 3 3
1 1 1 1
n n n n
i i i i i i i i
i i i i
n n n n
i i i i i i i i
i i i i
n n n n
i i i i i i i i
i i i i
c g x g x c g x g x c g x g x y g x
c g x g x c g x g x c g x g x y g x
c g x g x c g x g x c g x g x y g x
= = = =
= = = =
= = = =
+ + =
+ + =
+ + =
∑ ∑ ∑ ∑
∑ ∑ ∑ ∑
∑ ∑ ∑ ∑
127
Aproximación por mínimos cuadrados
Supongamos que queremos hallar la mejor recta que pasa
por una secuencia dada. En ese caso tendremos que
Luego, las ecuaciones normales son:
( ) ( )( )( )
1 1 2 2 1 2
1
2
( ) 1
1
F x c g x c g x c x c
g x x
g x
= + = +
=
=
2
1 2
1 1 1
1 2
1 1 1
1
n n n
i i i i
i i i
n n n
i i
i i i
c x c x y x
c x c y
= = =
= = =
+ =
+ =
∑ ∑ ∑
∑ ∑ ∑
128
Aproximación por mínimos cuadrados
Despejando obtenemos
1 1 1
1 2
2
1 1
n n n
i i i i
i i i
n n
i i
i i
n y x y x
c
n x x
= = =
= =
− =
−
∑ ∑ ∑
∑ ∑
2
1 1 1 1
2 2
2
1 1
n n n n
i i i i i
i i i i
n n
i i
i i
y x y x x
c
n x x
= = = =
= =
− =
−
∑ ∑ ∑ ∑
∑ ∑
129
Aproximación por mínimos cuadrados
Aplicación. Calcule la mejor recta que aproxima la data
siguiente: x y1 1.32 3.53 4.24 55 76 8.87 10.18 12.59 13
10 15.6
Para evaluar los coeficientes c1 y c2 necesitamos
2
1 1 1 1
, , ,n n n n
i i i i i
i i i i
x x y x y= = = =∑ ∑ ∑ ∑
En Excel obtenemos
130
Aproximación por mínimos cuadrados
Con estas suma calculamos los coeficientes
x y x^2 x*y1 1.3 1 1.32 3.5 4 73 4.2 9 12.64 5 16 205 7 25 356 8.8 36 52.87 10.1 49 70.78 12.5 64 1009 13 81 117
10 15.6 100 156
55 81 385 572.4
1
n
i
i
x=∑
1
n
i i
i
y x=∑
2
1
n
i
i
x=∑
1
n
i
i
y=∑
131
Aproximación por mínimos cuadrados
Sustituyendo obtenemos
( )
( )
1 2
2 2
10*572.4 81*551.5382
10*385 55
385*81 55*572.40.3600
10*385 55
c
c
−= =−
−= = −−
Luego, la recta que mejor aproxima la data dada es:
( ) 1.538 0.360F x x= −Gráficamente tenemos
132
Aproximación por mínimos cuadrados
Mínimos cuadrados
y = 1.5382x - 0.36
0
2
4
6
8
10
12
14
16
18
0 2 4 6 8 10 12
yLineal (y)
133
Aproximación por mínimos cuadrados
Aplicación. Calcule la mejor recta que aproxima la data
siguiente, utilizando MATLABx y1 1.32 3.53 4.24 55 76 8.87 10.18 12.59 13
10 15.6
Utilizando el comando polyfit es
muy fácil calcular los coeficientes.
La secuencia de comandos se
presenta a continuación.
>> xd=linspace(1,10,10);
>> yd=[1.3 3.5 4.2 5 7 8.8 10.1 12.5 13 15.6];
>> mccoef=polyfit(xd,yd,1)
mccoef =
1.5382 -0.3600
134
Aproximación por mínimos cuadrados
Aplicación. Calcule la mejor parábola que aproxima la
data siguiente. x y1 1.32 3.53 4.24 55 76 8.87 10.18 12.59 13
10 15.6
En este caso deberíamos utilizar las ecuaciones normales
obtenidas para k=3. Esto nos llevará a un sistema de
ecuaciones con tres incógnitas.
Un pequeño programa en MATLAB permitirá calcular
los coeficientes de la aproximación de 2do orden.
135
Aproximación por mínimos cuadrados
x=(1:10);
y(1)=1.3; y(2)=3.5; y(3)=4.2; y(4)=5; y(5)=7;
y(6)=8.8; y(7)=10.1;y(8)=12.5;y(9)=13;y(10)=15.6;
n=length(x);
g1(1:10)=x.^2; g2(1:10)=x; g3(1:10)=1;
A(1:3,1:3)=0; b(1:3)=0;
for i=1:n
A(1,1)=A(1,1)+g1(i)*g1(i);
A(1,2)=A(1,2)+g2(i)*g1(i);
A(1,3)=A(1,3)+g3(i)*g1(i);
A(2,1)=A(2,1)+g1(i)*g2(i);
A(2,2)=A(2,2)+g2(i)*g2(i);
A(2,3)=A(2,3)+g3(i)*g2(i);
A(3,1)=A(3,1)+g1(i)*g3(i);
A(3,2)=A(3,2)+g2(i)*g3(i);
A(3,3)=A(3,3)+g3(i)*g3(i);
b(1)=b(1)+y(i)*g1(i);
b(2)=b(2)+y(i)*g2(i);
b(3)=b(3)+y(i)*g3(i);
end
c=A\b'
Al ejecutar el
programa obtenemos:
c =
0.0348
1.1548
0.4067
y el polinomio buscado es
entonces:
( )
4067.0
1548.1
0348.0 2
++
=x
xxF
136
Aproximación por mínimos cuadrados
Podemos obtener estos resultados utilizando las rutinas
internas de MATLAB. Si cambiamos el último parámetro
en polyfit obtenemos:
x y1 1.32 3.53 4.24 55 76 8.87 10.18 12.59 13
10 15.6
Luego, el polinomio buscado es
>> xd=linspace(1,10,10);
>> yd=[1.3 3.5 4.2 5 7 8.8 10.1 12.5 13 15.6];
>> mccoef2=polyfit(xd,yd,2)
mccoef2 =
0.0348 1.1548 0.4067
Gráficamente tenemos
( ) 4067.01548.10348.0 2 ++= xxxF
137
Aproximación por mínimos cuadrados
138
Aproximación por mínimos cuadrados
A los fines de comparar ambas aproximaciones
calculemos
Luego, obtenemos
( ) ( )( )21 2
1
, ,...,n
k i i
i
E c c c F x y=
= −∑
( ) ( )( )
( ) ( )( )
2
1 1 2
1
2
2 1 2 3
1
, 2.34
, , 1.70
n
i i
i
n
i i
i
E c c F x y
E c c c F x y
=
=
= − =
= − =
∑
∑
En consecuencia la aproximación de segundo orden es un
poco más precisa que la de primer orden.
139
Aproximación por mínimos cuadrados
Extender los métodos estudiados hasta ahora al caso de
data que sigue un comportamiento descrito por funciones
no lineales es posible en muchos casos. Por ejemplo, si se
sospecha que la data puede ser representada por curvas
del tipobaxy = bxaey =
Se puede proceder con el método de mínimos cuadrados
lineal expresando la data para calcular los coeficientes de
las aproximaciones
BXAY
xbay
+=
+=
lnlnln
BXAY
bxay
+=
+=
lnln
y luego de hallar A y B, determinar a y b.
140
Aproximación por mínimos cuadrados
Aplicación: Para el conjunto de datos mostrado (que se
encuentran en el archivo prueba.xls) determine la
aproximación exponencial.}0.1 3.19736096
0.12269682 3.495877340.14616674 3.169766360.18709371 4.659126380.16618855 3.797345170.13075655 3.570737610.09693139 2.933341610.06685783 2.752152160.08292694 3.227574310.0967271 3.53687066
0.10456521 3.801405080.14445796 3.279914240.1939087 4.57960145
0.20859067 5.186553650.20158097 4.235671430.22356728 4.316521880.2395786 5.47610406
0.24390393 4.607461970.28447824 6.221074640.31476325 5.41588010.36972445 7.51167727
0.36972445 7.511677270.41887675 10.38797140.43064837 10.18623730.44710994 10.69087010.41668152 8.534194990.41312839 7.752564540.40033748 8.680182470.45228925 8.029895650.47753791 9.948280390.46723689 10.13113660.47892519 11.40824560.48847596 10.42359030.54012195 13.29330540.55232073 11.09375130.54523441 11.6963660.51967755 11.8037610.5081871 10.5739851
0.49600896 9.299856410.54246163 14.30235120.59620412 16.9665974
0.59620412 16.96659740.58917603 12.50883880.62498594 16.67832830.58732978 16.89151850.55452122 11.84577190.58921237 13.95172010.60556343 14.506255
0.570372 15.10962310.59801541 13.88323020.62207155 13.82921720.6697271 19.3226613
0.65272846 16.44280280.67600784 19.8166286
0.703667 22.86494180.6747575 18.9034062
0.65807528 18.95915480.69812874 18.96927990.68858162 17.82591670.71542056 20.35462840.74729643 23.57136360.78857488 26.44945350.75178658 22.644153
0.75178658 22.6441530.77905554 25.34764430.76499114 23.5002220.76393264 21.21882430.79531651 29.91740650.77335357 26.72939010.73978894 22.95995650.7630122 22.15280410.7708741 26.5441722
141
Aproximación por mínimos cuadrados
Gráficamente la data luce como:
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.80
5
10
15
20
25
30
La distribución de los datos sugiere el uso de una función
exponencial para su representación
142
Aproximación por mínimos cuadrados
Utilizando MATLAB tenemos:clear all
% lectura de datos
num = xlsread('prueba.xls');
x=num(:,1);
y=num(:,2);
% aproximación lineal minimos cuadrados
m1=polyfit(x,y,1)
x1=min(x):(max(x)-min(x))/100:max(x);
y1=m1(1)*x1+m1(2);
% aproximación lineal minimos cuadrados con función exponencial
y_log=log(y);
m2=polyfit(x,y_log,1);
a=exp(m2(2)); b=m2(1);
y2=a*exp(b*x1);
% Graficación de la data y las funciones
plot(x,y,'o',x1,y1,x1,y2)
title('Aproximación con Min. Cuad. funciones no lineales')
xlabel('x'), ylabel('y')
143
Aproximación por mínimos cuadrados
Obtenemos para la aproximación lineal
La lámina siguiente presenta estas funciones en forma
gráfica.
23392127531 .x-.baxy =+=
2.4017ln ==→= AeaaA
xBXAY
bxay
3.03690.8762
lnln
+=+=
+=
y para la aproximación exponencial
xbx eaey 0369.34017.2==
144
Aproximación por mínimos cuadrados
Gráficamente tenemos:
Nótese como la curva correspondiente a la función
exponencial (roja) aproxima mejor la data que la recta
(verde).
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8-5
0
5
10
15
20
25
30Aproximación con Min. Cuad. funciones no lineales
x
y
data
linealexponencial
145
Aproximación por mínimos cuadrados
Para confirmar esto, si se calcula para ambas funciones las
diferencias
obtenemos
( ) ( )( )∑=
−=n
i
ii yxFccE1
2,1
( ) ( )
( ) ( ) 97.24,
384.96,
2
1
exp
1
2
=−=
=−+=
∑
∑
=
=
n
i
i
bx
onencial
n
i
ilineal
yaebaE
ybaxbaE
lo que confirma nuestra apreciación gráfica anterior.
La necesidad de “normalizar” los criterios de ajuste llevan
a la definición de coeficientes que permiten valorar la
cercanía entre la función propuesta y los datos a
aproximar.
146
Aproximación por mínimos cuadrados
Una de estas medidas es el coeficiente de determinación
R2 o el de correlación R, los cuales se encuentran entre 0
(no hay ajuste) y 1 (ajuste perfecto) y es calculado
automáticamente en muchos paquetes. Por ejemplo,
utilizando Excel en nuestro ejemplo anterior nos lleva a:
y = 31.127x - 2.2339
R2 = 0.8983
y = 2.4017e3.0369x
R2 = 0.9822
-5
0
5
10
15
20
25
30
35
0 0.2 0.4 0.6 0.8 1
Serie1
Lineal (Serie1)
Exponencial (Serie1)
En efecto, es posible
comprobar que la
curva exponencial
(R2=0.9822)
representa mejor la
data que la regresión
lineal (R2=0.8983).
147
Aproximación por mínimos cuadrados
En general, otras funciones, no polinomiales, pueden ser
utilizadas. El procedimiento es básicamente el mismo,
introduciendo las nuevas funciones y evaluándolas en las
ecuaciones normales.
Excel posee una diversidad importante de posibilidades
para el trazado de las curvas de interpolación y
aproximación de datos.
148
Capítulo I
• Introducción
• Polinomios de Newton de diferencias divididas.
• Polinomios de Lagrange
• Interpolación polinomial
• Trazadores rectilíneos, parabólicos y cúbicos.
• Métodos de mínimos cuadrados (lineal y no lineal)
• Referencias
149
Referencias
1. Análisis Numérico, Burden R., Faires J. D., 6ta
Edición, International Thomson Editores, 1998
2. Métodos Numéricos para Ingenieros, Chapra S.,
Canale R., 4ta Edición, McGrawHill, 2003
3. Análisis Numérico con Aplicaciones, Gerald C.,
Wheatley P.,6ta Edición, Pearson Educación, 1999
4. Introductory Numerical Methods Incorporating
MATLAB, Hahn J., Bradley University,
http://bradley.bradley.edu/~delgado/202/TableofConte
nts.html
150
CAPITULO I
INTERPOLACION Y
APROXIMACION
Universidad Simón Bolívar
Mecánica Computacional II
Armando Blanco A.