interpolaci on y aproximaci on de funciones
TRANSCRIPT
Interpolacion y aproximacion de funciones
Victorio E. Sonzogni
1 / 93
1 Interpolacion polinomial
2 Interpolacion por polinomios de Lagrange
3 Interpolacion por diferencias divididas
4 Interpolacion por diferencias progresivas
5 Polinomios de Hermite
6 Splines
7 Aproximacion y ajuste de curvas
2 / 93
Interpolacion
3 / 93
Ejemplo
Cada diez anos, aproximadamente, se realiza un censo poblacional. Sedispone de los siguientes datos para el Departamento La Capital, ypara toda la provincia.
Ano Dto. La Capital Provincia Santa Fe
1947 206212 17029751960 264334 18849181970 312427 21355831980 381449 24655461991 441982 27984222001 489505 30007012010 521759 3200736
Se desea conocer cual puede haber sido la poblacion en 1985, porejemplo. Para esto se debe interpolar entre los datos disponibles. Obien cual serıa la poblacion en 2014, para lo cual se debe extrapolar.
En este capıtulo se estudiaran metodos para realizar estasinterpolaciones.
4 / 93
Ejemplo
Poblacion de la Provincia de Santa Fe
5 / 93
Interpolacion
Frecuentemente se conoce una serie de datos para los cuales se deseatener una funcion que los represente
x yx0 y0
x1 y1
. . . . . .xn yn
Una forma de hacerlo es construir un polinomio que los aproxime:
P(x) = anxn + an−1xn−1 + . . .+ a1x + a0
ai ∈ R, an 6= 0
6 / 93
Interpolacion
Teorema de aproximacion de Weierstrass
Sea f (x) definida y continua en [a, b]. Para cada ε > 0 existe unpolinomio P(x) en [a, b] tal que
|f (x)− P(x)| < ε ∀x ∈ [a, b]
Esto significa que siempre podemos encontrar un polinomio tal que suerror al representar una funcion, sea tan pequeno como se desee.
7 / 93
Construccion de polinomios interpoladores
Hay un teorema, sobre el que volveremos enseguida, que dice quedados xk (k = 0, 1, . . . n) un conjunto de n + 1 numeros realesdistintos, y n + 1 numeros asociados a los anterioresyk (k = 0, 1, . . . n) ,existe un unico polinomio de grado ≤ n tal que
Pn(xk) = yk k = 0, 1, . . . n
Ese teorema asegura existencia y unicidad de un polinomio que pasepor n + 1 puntos.
El polinomio puede escribirse de distintas formas. Si se escribe en laforma:
Pn(x) = anxn + an−1xn−1 + . . .+ a1x + a0
se ve que hay n + 1 coeficientes incognitas: ai i = 0, . . . n
8 / 93
Construccion de polinomios interpoladores
Si se evalua el polinomio en los n + 1 puntos puede escribirse
Pn(xk) = yk para k = 0, . . . n
que es un sistema de n + 1 ecuaciones con n + 1 incognitas de dondepueden calcularse los ai .
Esta forma de construir Pn(x) no es practica, ya que involucraresolver un sistema de n + 1 ecuaciones con una matriz llena. (Noobstante, si los n + 1 puntos son distintos, el sistema tiene solucion)
Este procedimiento, se incribe dentro de otro mas amplio denominadode Coeficientes indeterminados, en los que el polinomio se escribe:
P(x) =n∑
k=0
ck φk(x)
donde φk(x) son polinomios de grado ≤ n y los ck se obtiene delsistema de ecuaciones que resulta de hacer Pn(xk) = yk para todoslos puntos.
9 / 93
Interpolacion por polinomios de Lagrange
Una forma muy usada de construir polinomios interpolantes esutilizando los polinomios de Lagrange
En este caso el polinomio se escribe:
P(x) =n∑
k=0
f (xk) φk(x)
donde los φk(x) son polinomios de grado n.
Los coeficientes en este caso son los yk = f (xk), datos del problema,y la construccion de los polinomios φk(x) es muy sencilla.
Se introducira con un ejemplo.
10 / 93
Interpolacion por polinomios de Lagrange
Ejemplo:Sea hallar un polinomio que pase por dos puntos: (x0, y0) y (x1, y1).Puede escribirse:
P(x) =x − x1
x0 − x1y0 +
x − x0
x1 − x0y1
P(x) = L0(x) y0 + L1(x) y1
donde se ha definido
L0(x) =x − x1
x0 − x1L1(x) =
x − x0
x1 − x0
Se puede observar que L0(x0) = 1 y L0(x1) = 0 y que L1(x0) = 0 yL1(x1) = 1
11 / 93
Interpolacion por polinomios de Lagrange
Ejemplo:
12 / 93
Interpolacion por polinomios de Lagrange
Esto puede generalizarse, y para un polinomio que pase por n + 1puntos x0, x1, . . . xn
Pn(x) = Ln,0(x) y0 + Ln,1(x) y1 + . . .+ Ln,n(x) yn
donde se construiran los Ln,k(x) de modo que Ln,k(xk) = 1 yLn,k(xj) = 0 para k 6= j
Puede observarse que esto se verifica si:
Ln,k(x) =(x − x0)(x − x1) . . . (x − xk−1)(x − xk+1) . . . (x − xn)
(xk − x0)(xk − x1) . . . (xk − xk−1)(xk − xk+1) . . . (xk − xn)
Es un polinomio de grado n. Se denomina polinomio de Lagrange
Puede escribirse:
Ln,k(x) =n∏
i=0;i 6=k
(x − xi )
(xk − xi )
13 / 93
Interpolacion por polinomios de Lagrange
14 / 93
Interpolacion por polinomios de Lagrange
Teorema:Si x0, x1, . . . xn son numeros distintos, y si f (x) esta dada por susvalores f (x0), f (x1), . . . f (xn), entonces existe un unico polinomio degrado n, tal que
f (xk) = P(xk) para k = 0, 1, . . . n
Ese polinomio esta dado por
P(x) =n∑
k=0
f (xk) Ln,k(x)
donde
Ln,k(x) =n∏
i=0;i 6=k
(x − xi )
(xk − xi )
15 / 93
Interpolacion por polinomios de Lagrange
Ejemplo:Sea f (x) = 1
x . Supongase que se conoce la funcion en 3 puntos
x y
x0 = 2 y0 = 0.5x1 = 2.5 y1 = 0.4x2 = 4 y2 = 0.25
Se construye un polinomio de grado 2 (que pasa por tres puntos)
P2(x) = L2,0(x) y0 + L2,1(x) y1 + L2,2(x) y2
L2,0(x) =(x − x1)(x − x2)
(x0 − x1)(x0 − x2)=
(x − 2.5)(x − 4)
(2− 2.5)(2− 4)= x2 − 6.5x + 10
16 / 93
Interpolacion por polinomios de Lagrange
Ejemplo (continuacion):Analogamente
L2,1(x) =(x − x0)(x − x2)
(x1 − x0)(x1 − x2)=
(x − 2)(x − 4)
(2.5− 2)(2.5− 4)=
1
3(−4x2+24x−32)
L2,2(x) =(x − x0)(x − x1)
(x2 − x0)(x2 − x1)=
(x − 2)(x − 2.5)
(4− 2)(4− 2.5)=
1
3(x2 − 4.5x + 5)
Y el polinomio:
P2(x) = 0.05x2 − 0.425x + 1.15
Por ejemplo, para x = 3:
f (3) =1
3= 0.333 . . .
P2(3) = 0.325
17 / 93
Interpolacion por polinomios de Lagrange
18 / 93
Interpolacion por polinomios de Lagrange
Teorema:Si x0, x1, . . . xn son numeros distintos en [a, b], y si f (x) ∈ Cn+1[a, b]entonces, para cada x ∈ [a, b], existe un numero ξ(x) ∈ [a, b] tal que
f (x) = P(x) +f (n+1)(ξ(x))
(n + 1)!
n∏
i=0
(x − xi )
donde P(x) es el polinomio interpolante definido por el teoremaanterior.
Ası, el error en la aproximacion es
f (n+1)(ξ(x))
(n + 1)!
n∏
i=0
(x − xi )
(Como referencia; el polinomio de Taylor tiene un error dado porf (n+1)(ξ(x))
(n+1)! (x − x0)n+1)
19 / 93
Interpolacion por diferencias divididas
Un polinomio
Pn(x) = bnxn + bn−1xn−1 + . . . b1x + b0
se puede representar tambien como:
Pn(x) = a0+a1(x−x0)+a2(x−x0)(x−x1)+a3(x−x0)(x−x1)(x−x2)+
. . .+ an(x − x0)(x − x1) . . . (x − xn−1)
Puede verse que esta es la forma anidada de escribir el polinomio:
Pn(x) = a0 + (x − x0) [a1 + (x − x1) [a2 + a3(x − x2)+
. . .+ an(x − xn−1)] . . . ]
20 / 93
Interpolacion por diferencias divididas
Los coeficientes ai se pueden obtener a partir de los valores de lafuncion conocidos en los n + 1 puntos: f (xi ) i = 0, 1, . . . n
Puede verse que evaluando el polinomio en x0, todos los terminos seanulan excepto el primero. Al evaluarlo en x1 se anulan todos exceptolos dos primeros, y ası el sistema de ecuaciones tiene una matriztriangular.
Particularizando para x = x0:
Pn(x0) = f (x0) = a0
21 / 93
Interpolacion por diferencias divididas
Particularizando para x = x1:
Pn(x1) = f (x1) = a0 + a1(x1 − x0)
de donde
a1 =f (x1)− f (x0)
x1 − x0
Notacion:
Diferencia dividida cero de una funcion con respecto a xi :
f [xi ] = f (xi )
Primera diferencia dividida de una funcion con respecto a xi y xi+1:
f [xi , xi+1] =f [xi+1]− f [xi ]
xi+1 − xi
22 / 93
Interpolacion por diferencias divididas
Segundas diferencias divididas de una funcion con respecto a xi , xi+1
y xi+2:
f [xi , xi+1, xi+2] =f [xi+1, xi+2]− f [xi , xi+1]
xi+2 − xi. . .
k-esima diferencias divididas de una funcion con respecto axi , xi+1 . . . xi+k :
f [xi , xi+1, . . . xi+k ] =f [xi+1, xi+2 . . . xi+k ]− f [xi , xi+1 . . . xi+k−1]
xi+k − xi
23 / 93
Interpolacion por diferencias divididas
Con esta notacion, los coeficientes ai del polinomio:
a0 = f (x0) = f [x0]
a1 =f (x1)− f (x0)
x1 − x0= f [x0, x1]
Puede verse que, analogamente:
a2 = f [x0, x1, x2]
Y el coeficiente k :ak = f [x0, x1, x2, . . . xk ]
24 / 93
Interpolacion por diferencias divididas
El polinomio se escribe:
Pn(x) = f [x0] + f [x0, x1](x − x0) + f [x0, x1, x2](x − x0)(x − x1)+
. . .+ f [x0, x1 . . . xn](x − x0)(x − x1) . . . (x − xn−1)
Esta es la formula en diferencias divididas de Newton
25 / 93
Interpolacion por diferencias divididas
Ejemplo:Escribir un polinomio que represente a la funcion f (x) = 1x en los
puntos: (2, 2.5, 4)
xi f [xi ] f [xi , xi+1] f [xi , xi+1, xi+2]
2 0.5−0.2
2.5 0.4 0.05−0.1
4 0.25
P(x) = 0.5− 0.2(x − 2) + 0.05(x − 2)(x − 2.5) = 1.15− 0.425x + 0.05x2
26 / 93
Algoritmo para interpolacion por diferencias divididas
Para obtener la formula en diferencias divididas interpolantes de Newton:
Entrada: x0, x1 . . . xn y los valores f (x0), f (x1) . . . f (xn), estosultimos en al primer columna de la matriz Q.Salida: Las diferencias divididas f[ . . . ] , en la diagonal de QPaso 1) Para i = 1, 2, . . . n hacer {
Para j = 2, . . . i hacer{Qi ,j ← Qi,j−1−Qi−1,j−1
xi−xi−j
}}
Paso 2) Salida: (Q0,0,Q1,1,Q2,2, . . .Qn,n)de modo que
P(x) =n∑
i=0
Qi ,i
i−1∏
j=0
(x − xj)
27 / 93
Interpolacion por diferencias progresivas
Si los puntos son igualmente espaciados:
xi+1 = xi + h
donde h = xi+1 − xi es el paso (constante).
x = x0 + sh
El polinomio puede ahora escribirse:
Pn(x) = Pn(x0 + sh) = f [x0] + shf [x0, x1] + s(s − 1)h2f [x0, x1, x2]+
. . . s(s − 1)(s − 2) . . . (s − n + 1)hnf [x0, x1 . . . xn]
Pn(x) =n∑
k=0
s(s − 1)(s − 2) . . . (s − k + 1) hk f [x0, x1 . . . xk ]
28 / 93
Interpolacion por diferencias progresivas
Definicion: Diferencias Progresivas
∆yi = yi+1 − yi
∆2yi = ∆(∆yi )
∆kyi = ∆k−1(∆yi )
Por ejemplo:
∆2yi = ∆(∆yi ) = ∆(yi+1 − yi ) = ∆yi+1 −∆yi =
(yi+2 − yi+1)− (yi+1 − yi ) = yi+2 − 2yi+1 + yi
29 / 93
Interpolacion por diferencias progresivas
Ası:
f [x0, x1] =f (x1)− f (x0)
x1 − x0=
∆f (x0)
h
f [x0, x1, x2] =∆f (x1)−∆f (x0)
x2 − x0=
∆2f (x0)
2h2
f [x0, x1, . . . xk ] =1
k! hk∆k f (x0)
Usando la notacion:
( s
k
)=
s(s − 1)(s − 2) . . . (s − k + 1)
k!
Pn(x) =n∑
k=0
( s
k
)∆k f (x0)
Formula en diferencias progresivas de Newton
30 / 93
Polinomios osculantes
Dada una funcion f (x) conocida en n + 1 puntos (x0, x1, x2, . . . , xn) ydados n + 1 enteros (m0,m1,m2, . . . ,mn) un polinomios osculante P(x) esaquel que, para i = 0, 1, . . . n:
P(xi ) = f (xi )
P ′(xi ) = f ′(xi )
P ′′(xi ) = f ′′(xi )
. . .
P(mi )(xi ) = f (mi )(xi )
31 / 93
Polinomios osculantes
Es decir, un polinomio osculante coincide con la funcion en los n + 1puntos, y sus derivadas (hasta un orden ≤ mi ) coinciden con lasderivadas respectivas de la funcion.
El grado del polinomio P(x) es
n∑
i=0
mi + n
Dicho de otra forma, un polinomio osculante P(x) que aproxima af (x) es el polinimio de menor grado, tal que
dkP(xi )
dxk=
dk f (xi )
dxk
para i = 0, 1, 2, . . . n y k = 0, 1, 2, . . .mi
32 / 93
Polinomios osculantes
Como casos particulares:
Si n = 0Polinomio de TaylorCoincide en un solo punto, y alli coinciden todas las derivadas hasta unorden dado m0
Si mi = 0 ∀iPolinomios interpolantes (por ej. en base a polinomios de Lagrange, odiferencias divididas de Newton)En n + 1 puntos coinciden solo las derivadas de orden cero (i.e. lafuncion)
33 / 93
Polinomios de Hermite
Son polinomios osculantes con mi = 1,∀i
Coinciden el polinomio y la funcion en sus valores y en sus primerasderivadas, en todos los puntos xi (i = 0, 1, . . . n)
Ejemplo:
Sea una funcion dada en 2 puntos: x0 y x1 . El polinomio de Hermitedebe ser tal que:
P(x0) = f (x0)
P(x1) = f (x1)
P ′(x0) = f ′(x0)
P ′(x1) = f ′(x1)
34 / 93
Polinomios de Hermite
(Cont. ejemplo)
Hay 4 ecuaciones de las cuales se pueden despejar 4 coeficientes queson los necesarios para un polinomio de grado 3.Se puede dar la forma al polinomio:
P(x) = a + b(x − x0) + c(x − x0)2 + d(x − x0)2(x − x1)
Y su derivada:
P ′(x) = b + 2c(x − x0) + 2d(x − x0)(x − x1) + d(x − x0)2
35 / 93
Polinomios de Hermite
(Cont. ejemplo)
Reemplazando en las cuatro ecuaciones anteriores, se obtiene:.
a = f (x0)
b = f ′(x0)
a + b(x1 − x0) + c(x1 − x0)2 = f (x1)
b + 2c(x1 − x0) + d(x1 − x0)2 = f ′(x1)
de donde se despejan las cuatro constantes a, b, c y d
36 / 93
Polinomios de Hermite
(Cont. ejemplo)
37 / 93
Forma de Lagrange para Polinomios de Hermite
Teorema:Si f ∈ C 1[a, b] y x0.x1, . . . xn ∈ [a, b] son distintos, el unico polinomio demenor grado, que coincide con f (xi ) y f ′(xi ) en x0, x1. . . . xn es unpolinomio de grado ≤ 2n + 1 dado por:
H2n+1(x) =n∑
j=0
f (xj)Hn,j(x) +n∑
j=0
f ′(xj)Hn,j(x)
dondeHn,j(x) = [1− 2(x − xj)L′n,j(xj)] L2
n,j(x)
yHn,j(x) = (x − xj)L2
n,j(x)
siendo Ln,j el polinomio de Lagrange
Ln,j(x) =n∏
i=0;i 6=j
x − xixj − xi
38 / 93
Forma de Lagrange para Polinomios de Hermite
Se puede verificar que para i = 0, 1, 2 . . . n
H2n+1(xi ) = f (xi )
H ′2n+1(xi ) = f ′(xi )
Esto es pues los polinomios Hn,j y Hn,j cumplen:
Hn,j(xi ) =
{0 si j 6= i1 si j = i
Hn,j(xi ) = 0
39 / 93
Forma de Lagrange para Polinomios de Hermite
Y las derivadas de los polinomios Hn,j y Hn,j cumplen:
H ′n,j(xi ) = 0
H ′n,j(xi ) =
{0 si j 6= i1 si j = i
40 / 93
Forma de Lagrange para Polinomios de Hermite
41 / 93
Forma de Lagrange para Polinomios de Hermite
Se puede verificar que el error esta dado por:
f (x)− H2n+1(x) =(x − x0)2 . . . (x − xn)2
(2n + 2)!f (2n+2)(ξ)
si
f (x) ∈ C 2n+2[a, b]
y siendo ξ ∈ [a, b]
42 / 93
Forma en dif. divididas de Newton para Pol. de Hermite
Se puede proceder como se ha visto para el caso de polinomiosinterpoladores en diferencias divididas de Newton.
Pero en este caso, en lugar de calcular las primeras diferencias, setoman los datos dados para las derivadas de f (x)
Se introducira a traves de un ejemplo
43 / 93
Forma en dif. divididas de Newton para Pol. de Hermite
Sea hallar un polinomio que pase por tres puntos (x0, x1, x2), y cuyaderivada coincida con la de la funcion en esos puntos. .
Se define una nueva sucesion: z0, z1, z2 . . . z2n+1 tal que
z2i = z2i+1 = xi para i = 0, 1, 2 . . . n
44 / 93
Forma en dif. divididas de Newton para Pol. de Hermite
z f (x) Prim.Dif.Divididas Seg. Dif. Div.
z0 = x0 f [z0] = f (x0)f [z0, z1] = f ′(x0)
z1 = x0 f [z1] = f (x0) f [z0, z1, z2] = f [z1,z2]−f [z0,z1]z2−z0
f [z1, z2] = f [z2]−f [z1]z2−z1
z2 = x1 f [z2] = f (x1) f [z1, z2, z3] = f [z2,z3]−f [z1,z2]z3−z1
f [z2, z3] = f ′(x1)
z3 = x1 f [z3] = f (x1) f [z2, z3, z4] = f [z3,z4]−f [z2,z3]z4−z2
f [z3, z4] = f [z4]−f [z3]z4−z3
z4 = x2 f [z4] = f (x2) f [z3, z4, z5] = f [z4,z5]−f [z3,z4]z5−z3
f [z4, z5] = f ′(x2)z5 = x2 f [z5] = f (x2)
45 / 93
Funciones splines (o trazadores)
Ya se ha visto como construir polinomios que aproximen una funcionen un intervalo [x0, xn]
Si hay grandes cambios de curvatura en partes de la funcion puede serque los polinomios globales se desvıen mucho de la curva arepresentar.
Una posibilidad es descomponer la curva en subintervalos y usarpolinomios diferentes para cada subintervalo → aproximacionsegmentaria
46 / 93
Funciones splines (o trazadores)
Se define una serie de segmentos separados por nudos: x0, x1, . . . xnUna funcion spline de grado k , S(x), con nudos en x0, x1, . . . xn, esuna que satisface:
En cada subintervalo [xi−1, xi ), S(x) es un polinomio de grado ≤ kS(x) tiene derivadas de orden k − 1 continuas en [x0, xn].
47 / 93
Funciones splines de grado 0
S(x) =
s0(x) = C0 x ∈ [x0, x1)s1(x) = C1 x ∈ [x1, x2)
...sn−1(x) = Cn−1 x ∈ [xn−1, xn)
48 / 93
Funciones splines de grado 1
S(x) =
s0(x) = a0x + b0 x ∈ [x0, x1)s1(x) = a1x + b1 x ∈ [x1, x2)
...sn−1(x) = an−1x + bn−1 x ∈ [xn−1, xn)
49 / 93
Funciones splines cubicas
Una funcion muy usada son las splines cubicas
S(x) =
s0(x) x ∈ [x0, x1)s1(x) x ∈ [x1, x2)
...sn−1(x) x ∈ [xn−1, xn)
donde Si (x) es polinomio cubico
Estas funciones poseen continuidad hasta la derivada segunda
50 / 93
Funciones splines cubicas
Condiciones:
i) Si (xi ) = f (xi ) (i = 0, 1, . . . n − 1) n ecuac.ii) Si−1(xi ) = Si (xi ) (i = 1, 2, . . . n − 1) n − 1 ecuac.iii) S ′i−1(xi ) = S ′i (xi ) (i = 1, 2, . . . n − 1) n − 1 ecuac.iv) S ′′i−1(xi ) = S ′′i (xi ) (i = 1, 2, . . . n − 1) n − 1 ecuac.v) Sn−1(xn) = f (xn) 1 ecuac.
4n − 2 ecuac.
Cada funcion Si (x) posee 4 coeficientes.
Luego hay 4n − 2 ecuaciones con 4n incognitas. Faltan 2 ecuaciones.
51 / 93
Funciones splines cubicas
Las ecuaciones a agregar pueden ser:
Condiciones de frontera libre
S ′′(x0) = 0S ′′(xn) = 0
Dan lugar a las llamadas spline cubica naturalGeometricamente: la curvatura es nula en los extremos
Condiciones de frontera sujeta
S ′(x0) = f ′(x0)S ′(xn) = f ′(xn)
Dan lugar a las llamadas spline cubica sujetaPuede aproximar mejor a la funcion, pero precisa conocer lasderivadas primeras en los extremos.
52 / 93
Construccion de splines cubicas
Polinomio cubico:
Si (x) = ai +bi (x−xi )+ci (x−xi )2 +di (x−xi )
3 i = 0, 1, 2 . . . n−1
Las condicion (i):
Si (xi ) = ai = f (xi ) i = 0, 1, 2 . . . n − 1
De aquı se obtiene los valores de n coeficientes ai .
Se define:an = f (xn)
hi = xi+1 − xi
53 / 93
Construccion de splines cubicas
Las condicion (ii):
Si−1(xi ) = Si (xi ) i = 1, 2 . . . n − 1
ai−1 + bi−1hi−1 + ci−1h2i−1 + di−1h3
i−1 = ai i = 1, 2 . . . n− 1 (1)
Se define:bn = S ′(xn)
La derivada.
S ′i (x) = bi + 2ci (x − xi ) + 3di (x − xi )2
54 / 93
Construccion de splines cubicas
Las condicion (iii):
S ′i−1(xi ) = S ′i (xi ) i = 1, 2 . . . n − 1
bi−1 + 2ci−1hi−1 + 3di−1h2i−1 = bi i = 1, 2 . . . n − 1 (2)
Se define:cn = S ′′(xn)/2
La derivada segunda.
S ′′i (x) = 2ci + 6di (x − xi )
55 / 93
Construccion de splines cubicas
Las condicion (iv):
S ′′i−1(xi ) = S ′′i (xi ) i = 1, 2 . . . n − 1
ci−1 + 3di−1hi−1 = ci i = 1, 2 . . . n − 1 (3)
Despejando di−1 de las ec. (3):
di−1 = (ci − ci−1)/3hi−1 (a)
y reemplazando en (1) y (2):
ai = ai−1 + bi−1hi−1 + (2ci−1 + ci )h2i /3 (4)
bi = bi−1 + hi−1(ci−1 + ci ) (5)
56 / 93
Construccion de splines cubicas
Despejando bi−1 de las ec. (4):
bi−1 = (ai − ai−1)/hi−1 − (2ci−1 − ci)hi−1/3 (b)
y reemplazando en (5):
hi−1ci−1 + 2(hi−1 + hi )ci + hici+1 =3
hi(ai+1 − ai )−
3
hi−1(ai − ai−1) (6)
para i = 1, 2 . . . n − 1Que es un sistema de n − 1 ecuaciones, en ci .Agregando las dos ecuaciones adicionales, por ejemplo las condiciones defrontera libre:
c0 = 0
cn = 0
57 / 93
Construccion de splines cubicas
El sistema queda
Ax = b
donde
x =
c0
c1...
cn
58 / 93
Construccion de splines cubicas
La matriz:
A =
1 0 0 0 0 . . . 0 0h0 2(h0 + h1) h1 0 0 . . . 0 00 h1 2(h1 + h2) h2 0 . . . 0 00 0 h2 2(h2 + h3) h3 . . . 0 0...
......
......
. . . hn−2 00 0 0 0 0 hn−2 2(hn−2 + hn−1) hn−1
0 0 0 0 0 . . . 0 1
tiene forma tridiagonal.
59 / 93
Construccion de splines cubicas
El vector de terminos independientes:
b =
03h1
(a2 − a1)− 3h0
(a1 − a0)3h2
(a3 − a2)− 3h1
(a2 − a1)...
3hn−1
(an − an−1)− 3hn−2
(an−1 − an−2)
0
Se puede demostrar que el sistema de ecuaciones tiene solucion y queesta es unica.
Calculados los ci , con las ecuaciones (a) y (b) se calculan di y bi .
60 / 93
Splines de tension
Son splines en las que se agrega un parametro de tension τ .
Este τ representarıa una tension que estira la curva entre los puntos.
La spline de tension se define de modo que:
i) S(x) ∈ C 2[x0, xn]ii) S(xi ) = f (xi ) i = 0, 1, 2 . . . niii) Sobre cada intervalo (xi−1, xi ) satisface:
S (iv) − τ2S ′′ = 0
S(x) tiene 2 derivadas continuas (i); coincide con f (x) en los puntosxi ; y satisface (iii).
Si τ = 0, (iii) ⇒ S (iv) = 0 → polinomio cubico (spline grado 3 comun)
Si τ →∞, (iii) ⇒ S′′
= 0 → polinomio lineal (spline grado 1: lineal por trozos)
61 / 93
Splines de tension
En el intervalo [xi−1, xi ]
S (iv) − τ2S′′
= 0
y las condiciones de contorno:
S(xi ) = ai S(xi+1) = ai+1
S ′′(xi ) = 2ci S ′′(xi+1) = 2ci+1
La solucion es:
S(x) ={2ci sinh[τ(xi+1 − x ] + 2ci+1 sinh[τ(x − xi )]}
τ2 sinh(τhi )+
(ai −2ciτ2
)xi+1 − x
hi+ (ai+1 −
2ci+1
τ2)
x − xihi
62 / 93
Splines de tension
Procediendo como antes, el sistema tridiagonal a resolver es:
αi−1 ci−1 + (βi−1 + βi ) ci +αi ci+1 = γi − γi−1 i = 1, 2 . . . n− 1
donde
αi =1
hi− τ
sinh(τhi )
βi =τ cosh(τhi )
sinh(τhi )− 1
hi
γi =τ2(ai+1 − ai )
2hi
a esas ecuaciones hay que agregar las 2 condiciones de frontera libre osujeta.
63 / 93
Ejemplo:
Las figuras muestran distintos interpolantes para 6 puntos:a) interpolacion lineal; b) polinomio interpolador de 5o grado; c)polinomios de Hermitte, d) splines cubicas.
64 / 93
Aproximacion y ajuste de curvas
65 / 93
Aproximacion y ajuste de curvas
Hay veces en que se desea encontrar una funcion que aproxime demejor manera posible una cantidad de puntos.
Por ejemplo, si se miden experimentalmente las deformaciones de unresorte para distintas fuerzas aplicadas, se obtienen una cantidad depuntos en un grafico Fuerza-Desplazamiento.La Ley de Hooke dice que esa relacion es lineal. Se desea encontra laconstante de resorte.El problema es como determinar una funcion lineal que mejoraproxime a los resultados, si estos no se alinean sobre una recta, porerrores en la medicion.
66 / 93
Aproximacion y ajuste de curvas
Un polinomio interpolador no es una buena solucion, como se ve en lafiguras
Por otro lado si se quiere hallar una recta (2 coef. incognitas) quepase por todos esos m puntos se obtiene un sistema de m ecuacionescon 2 incognitas, que no tiene solucion.
67 / 93
Aproximacion y ajuste de curvas
Se analizaran dos tipos de problemas:
1) Se dispone de m pares de valores (xi , yi ) que definen una curva.Se desea hallar una funcion que los aproxime. Por ejemplo, unpolinomio Pn(x) de grado n, con n < m.
2) Se desea hallar un polinomio Pn(x) que aproxime a una funcionconocida f (x) en un intervalo [a, b].
El error de la aproximacion en el primer caso es:
ei = yi − P(xi ) i = 1, 2, . . .m
En el segundo:e(x) = f (x)− Pn(x)
Se deben buscar los coeficientes ak del polinomio de modo deminimizar esos errores.
68 / 93
Ajuste de curvas para puntos discretos
La minimizacion del error se puede realizar de distintas maneras.
1) Minimizar el error maximo:
min(E = maxi=1,2,...m
{|yi − P(xi )|})
2) Minimizar la desviacion absoluta:
min(E =m∑
i=1
|yi − P(xi )|)
3) Minimizar el cuadrado de la desviacion absoluta:
min(E =m∑
i=1
|yi − P(xi )|2)
69 / 93
Ajuste de curvas para puntos discretos
El primer caso se conoce como problema minimaxNo se puede resolver por metodos elementales. Ademas da muchopeso a un unico punto alejado del promedio.
En el segundo caso, para hallar el mınimo se plantea un problema
∂E
∂ai= 0 i = 0, 1, . . . n
pero el valor absoluto no es derivable en 0. No necesariamente sepuede obtener la solucion.Ademas este metodo da poco peso a puntos alejados (los promedia).
El metodo de mınimos cuadrados da un peso mayora puntos alejados,pero no lo sdeja que dominen completamente la solucion. Es el mascoinveniente de los tres. Ademas favorece el estudio de la distribucionestadıstica del error.
70 / 93
Ajuste de curvas por mınimos cuadrados
¿ Como hallar los ak?
Pn(x) =n∑
k=0
akxk
el error
E =m∑
i=1
(yi − Pn(xi ))2
E =m∑
i=1
y 2i − 2
m∑
i=1
yiPn(xi ) +m∑
i=1
(Pn(xi ))2
E =m∑
i=1
y 2i − 2
m∑
i=1
yi (n∑
j=0
ajxji ) +
m∑
i=1
(n∑
j=0
n∑
k=0
ajakx j+ki )
71 / 93
Ajuste de curvas por mınimos cuadrados
El error
E =m∑
i=1
y 2i − 2
n∑
j=0
aj(m∑
i=1
yixji ) +
n∑
j=0
n∑
k=0
ajak(m∑
i=1
x j+ki )
Para minimizarlo:∂E
∂aj= 0 j = 0, 1, . . . n
∂E
∂aj= −2
m∑
i=1
yixji + 2
n∑
k=0
ak(m∑
i=1
x j+ki ) = 0 j = 0, 1, . . . n
Queda un sistema de n + 1 ecuaciones con n + 1 incognitas (ak)
72 / 93
Ajuste de curvas por mınimos cuadrados
Desarrollando el sistema:
a0
m∑
i=1
x0i + a1
m∑
i=1
x1i + . . .+ an
m∑
i=1
xni =
m∑
i=1
yix0i
a0
m∑
i=1
x1i + a1
m∑
i=1
x2i + . . .+ an
m∑
i=1
xn+1i =
m∑
i=1
yix1i
. . .
a0
m∑
i=1
xni + a1
m∑
i=1
xn+1i + . . .+ an
m∑
i=1
x2ni =
m∑
i=1
yixni
Estas se denominan Ecuaciones Normales y se pueden escribir:
Ka = b
73 / 93
Ajuste de curvas por mınimos cuadrados
En las ecuaciones normales:
a =
...aj...
b =
...∑mi=1 yix
ji
...
y los elementos de la matriz K son:
kj ,k =m∑
i=1
x j+ki
Resolviendo el sistema se obtienen los ak
Si los xi son distintos, el sistema de ecuaciones normales tienesolucion unica.
74 / 93
Ejemplo
Encontrar una recta que ajuste los siguientes puntos:
x 0 1 2 2.5 3
y 2.9 3.7 4.1 4.4 5
m = 5, n = 1 y el sistema:
a0 m + a1
∑xi =
∑yi
a0
∑xi + a1
∑x2i =
∑yixi
∑xi = 8.5,
∑yi = 20.10,
∑x2i = 20.25,
∑yixi = 37.9
de dondey = a0 + a1 x = 2.9267 + 0.6431 x
75 / 93
Ejemplo
76 / 93
Ajuste de curvas por mınimos cuadrados
Ajuste por funciones no polinomicas
Se puede proponer funciones no polinomicas para ajustar los datos.Por ejemplo, una funcion exponencial, o una potencial:
y(x) = c eax
y(x) = c xa
Procediendo igual que antes se llega ahora a un sistema no lineal.
Para linealizar el problema se suele trabajar con logaritmos:
ln y(x) = ln c + a x
ln y(x) = ln c + a ln x
(Pero en este caso no se ajusta por minimos cuadrados la funcion sino su logaritmo. Puede ser muy diferente)
77 / 93
Ejemplo
Encontrar una curva ae(bx) que ajuste los siguientes puntos:
x 1.2 2.8 4.3 5.4 6.8 7.9
y 7.5 16.1 38.9 67.0 146.6 366.2
el problema es : log y = log a + bx = c + bx
c m + b∑
xi =∑
log yi
c∑
xi + b∑
x2i =
∑log yixi
de dondey = a ebx = 3.7889 e0.5366x
78 / 93
Ejemplo
79 / 93
Ajuste de funciones por mınimos cuadrados
Sea ajustar una funcion f (x) ∈ C [a, b] mediante un polinomio Pn(x)
Se minimizara el error:
E =
∫ b
a(f (x)− Pn(x))2dx
por mınimos cuadrados
El polinomio:
Pn(x) =n∑
k=0
akxk
El error:
E =
∫ b
a(f (x)−
n∑
k=0
akxk)2dx
80 / 93
Ajuste de funciones por mınimos cuadrados
El error:
E =
∫ b
a(f (x))2dx − 2
n∑
k=0
ak
∫ b
axk f (x)dx +
∫ b
a
n∑
k=0
(akxk)2dx
Para hallar los ak se plantea:
∂E
∂aj= 0 j = 0, 1, . . . n
∂E
∂aj= −2
∫ b
ax j f (x)dx + 2
n∑
k=0
ak
∫ b
ax j+kdx = 0 j = 0, 1, . . . n
Esto es un sistema de ecuaciones normales:
n∑
k=0
ak
∫ b
ax j+kdx =
∫ b
ax j f (x)dx j = 0, 1, . . . n
81 / 93
Ejemplo
Sea hallar un polinomio de segundo grado que aproxime a la funcionf (x) = sen πx en [0,1].
P2(x) = a2x2 + a1x + a0
Las ecuaciones normales:
a0
∫ 1
01 dx + a1
∫ 1
0x dx + a2
∫ 1
0x2 dx =
∫ 1
0sen πx dx
a0
∫ 1
0x dx + a1
∫ 1
0x2 dx + a2
∫ 1
0x3 dx =
∫ 1
0x sen πx dx
a0
∫ 1
0x2 dx + a1
∫ 1
0x3 dx + a2
∫ 1
0x4 dx =
∫ 1
0x2 sen πx dx
82 / 93
Ejemplo
Sustituyendo f (x) e integrando:
a0 +1
2a1 +
1
3a2 =
2
π
1
2a0 +
1
3a1 +
1
4a2 =
1
π
1
3a0 +
1
4a1 +
1
5a2 =
π2 − 4
π3
De donde: a0 = −0.050465 ; a1 = 4.12251 ; a2 = −4.12251 y
P2(x) = −4.12251 x2 + 4.12251 x + 0.050465
83 / 93
Ejemplo
84 / 93
Ajuste de funciones por mınimos cuadrados
El sistema de ecuaciones normales tiene solucion unica siempre quef ∈ C [a, b] y a 6= b
Los coeficientes de la matriz del sistema (de n + 1 por n + 1)
∫ b
ax j+kdx =
bj+k+1 − aj+k+1
j + k + 1
Esta matriz se denomina Matriz de Hilbert y es mal condicionada.
No es facil de resolver este sistema.
Hay otras tecnicas que utilizan polinomios ortogonales.
85 / 93
Polinomios ortogonales
Se definen los polinomios ortogonales como un conjunto depolinomios {φ0(x), φ1(x), . . . φn(x)} de modo que
∫ b
aφj(x)φk(x)w(x)dx =
{0 si k 6= j
αk > 0 si k = j
alli w(x) es una funcion de peso con la que se define el productointerno.
Se dice que dos polinomios φj(x) y φk(x) son ortogonales conrespecto a la funcion de peso w .
Si ademas αk = 1 el conjunto se dice ortonormal.
Hay metodos para construir conjuntos de polinimos ortogonales(ortonormales)
86 / 93
Procedimiento de Gram-Schmidt
Para construir polinomios ortogonales con respecto a una funcion depeso w
Sea {v1, v2, v3 . . . vn} una base de un subespacio de funciones conproducto interno (los vi son linealmente independientes).
Si se parte de una funcion φ0(x), se puede obtener φ1:
φ1 = (v1 −∫ b
av1 φ0 w dx)
1
‖v1 −∫ ba v1 φ0 w dx‖
La integral da la proyeccion de v1 sobre φ0. Al restar de v1 esaintegral se obtiene una funcion ortogonal a φ0. Si, finalmente, sedivide por su norma se obtiene una funcion ortonormal.
87 / 93
Procedimiento de Gram-Schmidt
Analogamente:
φ2 =(v2 −
∫ ba v2 φ0 w dx −
∫ ba v2 φ1 w dx)
‖v2 −∫ ba v2 φ0 w dx −
∫ ba v2 φ1 w dx‖
Y ası . . .
Se puede mostrar que si se usan monomios vi = x i , entonces:
φn = (x − an)φn−1 − bnφn−2 ≥ 2
Partiendo de φ0 = 1 y φ1 = x − a1
En estas expresiones:
an =
∫x φ2
n−1 w dx∫φ2n−1 w dx
y bn =
∫x φn−1 φn−2 w dx∫
φ2n−1 w dx
88 / 93
Polinomios ortogonales
Polinomios de Legendre: (w(x) = 1)P0(x) = 1P1(x) = xP2(x) = x2 − 1
3P3(x) = x3 − 3
5 xP4(x) = x4 − 6
7 x2 + 335
P5(x) = x5 − 109 x3 + 5
21 x. . .
89 / 93
Polinomios ortogonales
Polinomios de Chebyshev: (w(x) = 1√1−x2
)
T0(x) = 1T1(x) = xT2(x) = 2x2 − 1T3(x) = 4x3 − 3xT4(x) = 8x4 − 8x2 + 1. . .
90 / 93
Ajuste de funciones por mınimos cuadrados
Si se utilizan polinomios ortogonales como base, se puede escribir elpolinomio aproximante:
Pn(x) =n∑
i=0
ak φk(x)
El error:
E =
∫ b
a(f (x)−
n∑
k=0
akφk(x))2 w(x) dx
E =
∫ b
a(f (x))2 w(x) dx − 2
n∑
k=0
ak
∫ b
af (x) φk (x) w(x) dx +
∫ b
a
n∑
k=0
(φk (x))2 w(x) dx
Para hallar los ak se plantea:
∂E
∂aj= 0 j = 0, 1, . . . n
91 / 93
Ajuste de funciones por mınimos cuadrados
Es decir
∂E
∂aj= −2
∫ b
aφj(x) f (x) w(x) dx+2
n∑
k=0
ak
∫ b
aφj(x) φk(x) w(x) dx = 0 j = 0, 1, . . . n
Esto es un sistema de ecuaciones normales:n∑
k=0
ak
∫ b
aφj(x)φk(x) w(x) dx =
∫ b
aφj(x)f (x) w(x) dx j = 0, 1, . . . n
Por ser la base ortogonal:
aj
∫ b
a(φj(x))2 w(x) dx =
∫ b
aφj(x)f (x) w(x) dx j = 0, 1, . . . n
aj =
∫ ba φj(x)f (x) w(x) dx∫ ba (φj(x))2 w(x) dx
j = 0, 1, . . . n
92 / 93
Ajuste de funciones por mınimos cuadrados
No es preciso resolver sistemas de ecuaciones. La solucion es trivial.
Si ademas la base es ortonormal
∫ b
a(φj(x))2 w(x) dx = 1
con lo que
aj =
∫ b
aφj(x)f (x) w(x) dx j = 0, 1, . . . n
93 / 93