Sei sulla pagina 1di 11

Universidad Catolica del Maule

Facultad de Ciencias Basicas

Metodos Numericos
Clase N 6, 13 de Noviembre de 2014

Aproximaciones e Interpolaci
on de funciones
Interpolar una funcion f es encontrar otra funcion g (polinomio, racional, senodal, etc.) con
ciertas caractersticas que satisfaga:
g(xi ) = f (xi ), i = 0, ..., n.,
donde el conjunto de puntos S = {x0 , x1 , ..., xn } soporta la construccion de g y son conocidos
(datos de un registro).

1.jpg
La funcion g es conocida como la funcion interpolante o de interpolacion de f y tiene por
finalidad aproximar f (x) para un x
/ S tal que:
f (x) g(x)
Def: Si x [x0 , xn ] diremos que estamos Interpolando sino estaremos Extrapolando.
Ejemplo: Supongamos que conocemos los valores de f en x = 1, 2, 3, esto es:
i
0 1 2
xi
1 2 3
f (xi ) 1 3 7

y queremos construir el polinomio de grado dos g(x) = ax2 + bx + c con a, b, c R. Entonces


f (xi ) = g(xi )
f (1) = 1 = a + b + c
f (2) = 3 = 4a + 2b + c
f (3) = 7 = 9a + 3b + c
, resolviendo el sistema de ecuaciones lineales de solucion u
nica a = 1, b = 1 y c = 1,
2
obtenemos g(x) = x x + 1, el polinomio interpolante. As, podremos interpolar, por
ejemplo
g(1.5) = 1.75 f (1)
o extrapolar
g(3.5) = 9.75 f (3)
Interpolaci
on Polinomial
Dada una funcion y = f (x) existe un u
nico polinomio interpolante de grado menor o igual
a n, Pn (x) = an xn + an1 xn1 + ... + a1 x + a0 tal que Pn (xi ) = f (xi ) para todo xi S. En
efecto, se tendra que
an xn0 + an1 xn1
+ ... + a1 x0 + a0
0
n1
n
an x1 + an1 x1 + ... + a1 x1 + a0
.
.
n1
an xnn1 + an1 xn1
+ ... + a1 xn1 + a0
an xnn + an1 xn1
+
... + a1 xn + a0
n
o de forma equivalente el
n
x0
xn1

.
n
xn1
xnn

sistema matricial AX = B

xn1
... x0
1
an
0
n1

x1
... x1
1 an1

...
.
.

...
.
.
n1

xn1 ... xn1 1 a1


xn1
... xn
1
a0
n

= f (x0 )
= f (x1 )
.
.
= f (xn1 )
= f (xn )

f (x0 )
f (x1 )
.
.
f (xn1 )
f (xn )

donde A es un matriz con det(A) 6= 0 (conocida como matriz de Vandermonde) lo que


justifica que exista u
nica solucion.
Error de Interpolaci
on polinomial
Una pregunta logica es pensar en el error que se comete al aproximar f por un polinomio
Pn en alg
un x R, esto es:
E(x) = |f (x) Pn (x)| ,
luego, si f (x) es una funcion n + 1 veces diferenciable entonces
(n+1)
f
(c)
E(x) = |f (x) Pn (x)| =
|x x0 | |x x1 | ... |x xn |
(n + 1)!

donde c es un punto dentro del intervalo definido por x, x0 , x1 , ..., xn . Es decir, podemos
acotar el error E(x) si obtenemos informacion sobre la n + 1 derivada en un intervalo I
determinado por x, x0 , x1 , ..., xn y la acotamos por alg
un K > 0. Entonces si
(n+1)
f
(c) K.


K
|x x0 | |x x1 | ... |x xn | .
E(x) = |f (x) Pn (x)| =
(n + 1)!
Ejemplo: Supongamos que queremos aproximar el valor
y para ello interpolamos
n de sen(1)
o
. Luego construiremos un
la funcion f (x) = sen(x) por un polinomio en S = 0, ,
4 2
polinomio de grado dos P2 (x) = a2 x2 + a1 x + a0 tal que
a2 x20 + a1 x0 + a0 = f (x0 )
a2 x21 + a1 x1 + a0 = f (x1 )
a2 x22 + a1 x2 + a0 = f (x2 )
o de forma equivalente el sistema matricial AX = B

a2
f (x0 )
x0 x0 1
x21 x1 1 a1 = f (x1 )
x22 x2 1
a0
f (x2 )

2
x0 x0 1
nica
Luego det x21 x1 1 = (x1 x2 ) (x0 x2 ) (x0 x1 ) 6= 0. Entonces tiene solucion u
x22 x2 1

0
0 1

sen(0)
 2

a2

1 a1 = sen( ) .

4
 4 2 4

a
0
sen(
)
1
2
2
2

0
0 1 sin(0)
 2

1 sin( ) y solucion a2 = 0.335 75, a1 = 1. 164 y
4 2 4
4


sin(
)
1
2
2
2

Matriz aumentada

a0 = 0 entonces

P2 (x) = 0.335 75x2 + 1. 164x


Entonces sen(1) P2 (1) = 0.828 25. Considerando que


000
f (x) = | cos(x)| = 1 = K
el error

1



E(1) = |f (1) Pn (1)| = |1 0| 1 1 = 2. 041 6 102 < 101 ,
6
4
2
es decir, hemos obtenido sen(1) con una cifra decimal exacta. Recordar que sen(1) =
0.841 47.
3

Obs: Hemos visto que se puede plantear un sistema de n + 1 ecuaciones y n + 1 incognitas


para determinar Pn (x), pero existen otras formas de buscarlo sin un costo de calculos tan
alto.
Interpolaci
on de Lagrange
Dada una funcion de valores reales f (x) y (n + 1) valores distintos S = {x0 , x1 , ..., xn } existe
exactamente un u
nico polinomio P (x) tal que:
1. Gr(P (x)) n
2. P (xi ) = f (xi ), i = 0, 1, ..., n.
En efecto, para garantizar la existencia de P (x), consideremos la funcion:
gk (x) =

n
Y

(x xi ) = (x x0 ) (x x1 ) (x xk1 ) (x xk+1 ) (x xn )

i=0
i 6= k
entonces se puede ver que:
i) Gr(gk (x)) = n

iii) gk (xk ) 6= 0

ii) gk (xi ) = 0

por lo tanto podemos definir los polinomios


lk (x) =

gk (x)
=
gk (xk )

n
Y

i=0
i 6= k

(x xi )
(xk xi )

y con ellos construir

Y (x x )

i
f (xk )
P (x) =
f (xk )lk (x) =

(xk xi )
k=0
k=0
i=0

i 6= k
n
X

n
X

que claramente satisface las condiciones pedidas. (Tarea). Para probar la unicidad de
P (x),basta considerar el supuesto de la existencia de otro, llamemoslo Q(x) tal que
H(x) = P (x) Q(x)
entonces claramente el Gr(H) n y
H(xj ) = P (xj ) Q(xj ) = f (xj ) f (xj ) = 0
para todo j = 1, ..., n
4

Obs: Polinomio de Lagrange soportado por S :

n
Y
(x xi )

P (x) =
f (xk )lk (x) =
f (xk )

(x
k xi )
k=0
k=0
i=0

i 6= k
n
X

n
X

Ejercicios:
1. Considere n = 1 y n = 2, construya el polinomio interpolante de lagrange en cada
caso.
2. Construya el polinimio interpolante de la funcion f (x) = sen(x) para S = {0, 1/6, 1/2}

3. Estimar el error al calcular 115 por medio de un polinomio interpolante en los nodos
S = {100, 121, 144}
Intepolaci
on de Newton
Dados n + 1 datos de un registro
{(x0 , f (x0 )) , (x1 , f (x1 )) , ..., (xn , f (xn ))}
con xk , k = 0, ..., n distintos para alguna f en I = [a, b] el polinomio N (x) de Gr(N ) n
que interpola a f, tambien se puede definir por:
N (x) = b0 + b1 (x x0 ) + b2 (x x0 ) (x x1 ) + ... + bn (x x0 ) (x x1 ) ... (x xn1 )
donde bk son valores a determinar.
Dado que se debe satifacer
N (xk ) = f (xk ), k = 0, ..., n
podemos deducir
N (x0 ) = b0 = f (x0 )
N (x1 ) = b0 + b1 (x1 x0 ) = f (x1 ) = b1 =

f (x1 ) f (x0 )
(x1 x0 )

N (x2 ) = b0 + b1 (x2 x0 ) + b2 (x2 x0 ) (x2 x1 ) = f (x2 )


f (x1 ) f (x0 )
(x2 x0 )
(x1 x0 )
(x2 x0 ) (x2 x1 )

f (x2 ) f (x0 )
= b2 =

y as sucesivamente para b3 , ..., bn . Pero cabe hacer notar que introduciendo ceros convenientes
y sumando, tenemos
f (x1 ) f (x0 )
(x2 x0 )
(x1 x0 )
(x2 x0 ) (x2 x1 )

f (x2 ) f (x1 ) + f (x1 ) f (x0 )


b2 =

f (x2 ) f (x1 ) f (x1 ) f (x0 ) f (x1 ) f (x0 ) (x2 x0 )


+

(x2 x1 )
(x2 x1 )
(x1 x0 ) (x2 x1 )
b2 =
(x2 x0 )


f (x2 ) f (x1 ) f (x1 ) f (x0 ) (x2 x0 ) (x1 x0 )

(x2 x1 )
(x1 x0 )
(x2 x1 ) (x2 x1 )
b2 =
(x2 x0 )
f (x2 ) f (x1 ) f (x1 ) f (x0 )

(x2 x1 )
(x1 x0 )
b2 =
(x2 x0 )
Obs: Lo anterior nos induce a determinar una escrita recursiva de los coeficientes bk esta es
la notacion de diferencias divididas progresivas introducida por Newton:
1. D.dividida de orden cero de f con respecto a xk :
f [xk ] = f (xk ) , k = 0, ..., n.
2. D.dividida de orden uno de f con respecto a xk , xk+1 :
f [xk , xk+1 ] =

f [xk+1 ] f [xk ]
, k = 0, ..., n 1.
(xk+1 xk )

3. D.dividida de orden dos de f con respecto a xk , xk+1 , xk+1 :


f [xk , xk+1 , xk+2 ] =

f [xk+1 , xk+2 ] f [xk , xk+1 ]


, k = 0, ..., n 2.
(xk+2 xk )

4. D.dividida de orden i-esimo de f con respecto a xk , xk+1 , ..., xk+i :


f [xk , xk+1 , ..., xk+i ] =

f [xk+1 , ..., xk+i ] f [xk , ..., xk+i1 ]


, k = 0, ..., n i.
(xk+i xk )

por lo tanto tenemos que


N (x) = f [x0 ] + f [x0 , x1 ] (x x0 ) + f [x0 , x1 , x2 ] (x x0 ) (x x1 ) +
... + f [x0 , .., xn ] (x x0 ) ... (x xn1 )
como la formula progresiva de Newton del polinomio interpolante.
6

Obs: La formula anterior se usa para interpolar un x mas cercano a x0 que a xn .Sino
se puede usar la formula regresiva
N (x) = f [xn ] + f [xn1 , xn ] (x xn ) + f [xn2 , xn1 , xn ] (x xn ) (x xn1 ) +
... + f [x0 , .., xn ] (x xn ) (x xn1 ) ... (x x1 ) .
Claramente estas dos formulas ofrecen ventajas repecto a Lagrange por su calculo
numerico de coeficientes pero se necesita un orden y proligidad en su manejo.
Tarea: Demuestre que la formula progresiva de Newton para n + 1 nodos satisface:
N (x) = Pi (x) = Pi1 (x) + f [x0 , x1 , .., xi ] (x x0 ) (x x1 ) ... (x xi1 )
con i = 2, 3, ..., n, donde los Pi (x) son polinomios interpolantes en construccion.
Tabla para calcular los coeficientes bk en N (x) (Prog. o Reg)
k
0
1
2
3
.
.
n1
n

xk
x0
x1
x2
x3
.
.
xn1
xn

d.d.0
f [x0 ] = b0
f [x1 ]
f [x2 ]
f [x3 ]
.
.
f [xn1 ]
f [xn ]

d.d.1
f [x0 , x1 ] = b1
f [x1 , x2 ]
f [x2 , x3 ]
f [x3 , x4 ]
.
.
f [xn1 , xn ]

d.d.2
f [x0 , x1 , x2 ] = b2
f [x1 , x2 , x3 ]
f [x2 , x3 , x4 ]
.
.

.
.
.
.
.
.
.

. d.d.n
. f [x0 , x1 , ..., xn ] = bn
.
.
.
. .
.

Error de interpolaci
on de Newton
Como introduccion, sabemos que si f C 1 ([x0 , x1 ]) entonces el T.V.M asegura la
existencia de un (x0 , x1 ) tal que
f 0 () =

f (x1 ) f (x0 )
= f [x0 , x1 ]
x1 x0

, luego su generalizacion para f C n ([a, b]) y S = {x0 , x1 , ..., xn } [a, b] asegura la


existencia de un (a, b) tal que
f (n) () = f [x0 , x1 , ..., xn ] .
Del error de Lagrange
(n+1)

f

(
(x))
|x x0 | |x x1 | ... |x xn |
E(x) = |f (x) P (x)| =
(n + 1)!
pero ahora P (x) = N (x) entonces
(n+1)

f

(
(x))
|x x0 | |x x1 | ... |x xn |
f (x) = N (x) +
(n + 1)!
7

con (x) [a, b] . Ademas si usamos Newton con n + 2 datos, esto es S {x}, tenemos
f (x) = N (x) + f [x0 , x1 , ..., xn , x] (x x0 ) (x x1 ) ... (x xn )
por lo tanto el error por newton es
E(x) = |f (x) P (x)| = f [x0 , x1 , ..., xn , x] (x x0 ) (x x1 ) ... (x xn )
Ejercicio: Dados los datos
x
2.0
2.2
2.4
2.6
2.8
f (x) 0.5103757 0.5207843 0.5104147 0.4813306 0.4359160
aproximar f (2.1) y f (2.7) usando todos los datos por Newton y eligiendo la formula
mas conveniente.
SOL:
Tabla para calcular los coeficientes bk en N (x) (Prog. o Reg)
k
0
1
2
3
4

xk
x0
x1
x2
x3
x4

= 2.0
= 2.2
= 2.4
= 2.6
= 2.8

d.d.0
f [x0 ] = 0.5103757
f [x1 ] = 0.5207843
f [x2 ] = 0.5104147
f [x3 ] = 0.4813306
f [x4 ] = 0.4359160

d.d.3
f [x0 , ., x3 ] = 0.043
f [x1 , ., x4 ] = 4. 966 7 102

d.d.1
f [x0 , x1 ] = 5. 204 3 102
f [x1 , x2 ] = 5. 184 8 102
f [x2 , x3 ] = 0.145 42
f [x3 , x4 ] = 0.227 07

d.d.2
f [x0 , x1 , x2 ] = 0.259 73
f [x1 , x2 , x3 ] = 0.233 93
f [x2 , x3 , x4 ] = 0.204 13

d.d.4
f [x0 , .., x4 ] = 8. 333 8 103

Entonces como x = 2.1 esta mas cerca de x0 usamos la formula progresiva:


N (x) = f [x0 ] + f [x0 , x1 ] (x x0 ) + f [x0 , x1 , x2 ] (x x0 ) (x x1 )
+f [x0 , x1 , x2 , x3 ] (x x0 ) (x x1 ) (x x2 ) + f [x0 , x1 , x2 , x3 , x4 ] (x x0 ) (x x1 ) (x x2 ) (x x3 )
N (x) = (0.5103757) + (5. 204 3 102 ) (x 2.0) + (0.259 73) (x 2.0) (x 2.2)
+ (0.043) (x 2.0) (x 2.2) (x 2.4) + (8. 333 8 103 ) (x 2.0) (x 2.2) (x 2.4) (x 2.6)
y al evaluar obtenemos N (2.1) = 0.518 29 f (2.1). Para determinar N (2.7) f (2.7)
se debe usar la formula regresiva.
Ejercicio: Repita el ejercicio anterior a
nadiendo el punto (3.0, 0.4212145) .
Ejercicio: Sea
2
(x) =
2
y la tabla

Z
0

et dt

x
1.0
1.1
1.2
1.3
1.4
1.5
.
f (x) 0.8427 0.8802 0.9103 0.9340 0.9523 0.9661
Contruya por Newton y determine el valor aproximado de (1.43).
Mnimos Cuadrados
Dado n + 1 puntos
S = {(x0 , y0 ) , (x1 , y1 ) , ..., (xn , yn )}
con xi distintos, para i = 0, ..., n el Ajuste de Minmos Cuadrados o simplemente Minmos
Cuadrado, consiste en determinar una funcion:
f (x) =

m
X

aj fj (x) ,

j=0

que mejor ajuste a S, esto es reducir la suma total de errores cuadraticos, en cada observacion
Ek = f (xk ) yk
es decir,
n
X

Ek2 =

k=0

n
X

(f (xk ) yk )2

k=0

se minmo. De forma equivalente esto se pude mirar como minimizar una funcion de varias
variables, esto es:
!2
m
n
X
X
aj fj (xk ) yk
M (a0 , a1 , ..., am ) =
k=0

j=0

entonces para que M alcance su minmo en un punto, es necesario que cada derivada
para j = 0, ..., m. Lo que equivale a
n
m
X
X
aj fj (xk ) yk
k=0

!
fj (xk ) = 0, j = 0, ..., m.

j=0

Si estamos en el caso que


f (x) = Pm (x) = a0 + a1 x + ... + am xm ,
con m < n, entonces
Ek = Pm (xk ) yk
es decir,
n
X
k=0

Ek2

n
X

(Pm (xk ) yk )2

k=0

M
= 0,
aj

se minmo. De forma equivalente esto se pude mirar como minimizar una funcion de varias
variables, esto es:
!2
n
n
m
X
X
X
2
M (a0 , a1 , ..., am ) =
(a0 + a1 xk + ... + am xm
aj x j y k
k yk ) =
k=0

k=0

j=0

entonces para que M alcance su minmo en un punto, es necesario que cada derivada
para j = 0, ..., m. Lo que equivale a
n
m
X
X

!
aj xjk yk

xj = 0, j = 0, ..., n.

j=0

k=0

Ejemplo: Supongamos que tenemos n + 1 puntos


S = {(x0 , y0 ) , (x1 , y1 ) , ..., (xn , yn )}
y queremos determinar
f (x) = P2 (x) = a0 + a1 x + a2 x2 ,
que mejor ajuste a S, entonces debemos determinar a0 , a1 , a2. Formando
M (a0 , a1 , a2 ) =

n
X

a0 + a1 xk + a2 x2k yk

k=0

2

n
2
X
X
=
aj xj yk
k=0

j=0

tenemos el sistema de ecuaciones lineales

n
P
M

=
2
(a0 + a1 xk + a2 x2k yk ) (1) = 0

a
0
k=0

M
n
P
= 2 (a0 + a1 xk + a2 x2k yk ) (xk ) = 0
a1

k=0

P
M

=
2
(a0 + a1 xk + a2 x2k yk ) (x2k ) = 0

a2
k=0
esto es, un sistema de 3 3

n
n
n
P
P
P
2

(n
+
1)a
+
a
x
+
a
x
=
yk

0
1
k
2
k

k=0
k=0
k=0

P
n
n
n
n
P
P
P
a0 xk + a1 x2k + a2 x3k =
yk (xk )

k=0
k=0
k=0
k=0

n
n
n
n
P
P
P
P

a0 x2k + a1 x3k + a2 x4k =


yk (x2k )
k=0

k=0

k=0

k=0

Ejercicio: Determinar f (x) cuadratico por M.C. para los puntos


S = {(3, 3) , (0, 1) , (2, 1) , (4, 3)}
10

!2

M
= 0,
aj

Resp:
Sistema

353a2 + 45a1 + 29a0 = 79


45a2 + 29a1 + 3a0 = 5

29a2 + 3a1 + 4a0 = 8

585
353 45 29 79
1 0 0 3278
631
45 29 3 5 , row echelon form: 0 1 0 3278
1394
29 3 4 8
0 0 1 1639

Obs: Los minmos cuadrados se pueden usar tambien para aproximar S por funciones f (x)
exponenciales y alometricas por medio de la linealizacion.

11

Potrebbero piacerti anche