Interpolacion

Anuncio
Diferenciacion e Interpolacion
1/8
Diferenciacion e Interpolacion numerica.
Diferencias finitas
Dadas las abscisas Xi uniformemente espaciadas Xk+1 = Xk + h, a las que corresponde valores
de funcion f(x): f(Xk) se definen las primeras diferencias finitas (“Hacia delante”) como:
∆ f k = f k +1 − f k
Analogamente pueden definirse las segundas diferencias como:
2
∆ f k = ∆ f k +1 − ∆ f k = f k + 2 − 2 f k +1 + f k
y en general las diferencias finitas hacia delante de orden n:
n
n −1
n −1
∆ f k = ∆ f k +1 − ∆ f k
n
i  n
n
;
∆ f k = ∑ (−1)   f
i
i =0
  k + n −i
 n
n!
  =
 i  i!(n − i )!
Una “tabla de diferencias” es un arreglo de la forma:
k
0
1
2
3
4
5
6
7
8
f k ∆ f k ∆ 2 f k ∆3 f k
0
0
0
0
1
0
0
0
0
0
0
0
1
-1
0
0
0
0
0
1
-2
1
0
0
0
1
-3
3
-1
0
8
∆ fk
1
-4
6
-4
1
-5
10
-10
5
15
-20
15
-35
35
70
Esta tabla tambien muestra como un error pequeño en las f k puede ampliarse en las diferencias
altas (esto puede ser util para estudiar posibles errores en una tabla de f(v, x).
Las diferencias finitas tienen ciertas propiedades analogas a las derivadas. Así, por ejemplo:
∆(c1u k + c 2 v k ) = c1 ∆ u k + c 2 ∆ v k
∆(u k v k ) = u k ∆ v k + v k ∆ u k


∆ u k  = v k ∆u k − u k ∆v k
 vk 
Diferenciacion e Interpolacion
2/8
En forma similar pueden definirse diferencias finitas hacia atrás:
∇ f k = f k − f k −1
n
n −1
n −1
∇ f k = ∇ f k − ∇ f k −1
k
fk
0
0
1
0
2
0
3
0
4
1
5
0
6
0
7
0
8
0
∇ f k ∇2 f k
0
0
0
1
-1
0
0
0
0
0
1
-2
1
0
0
8
∇ fk
0
1
-3
3
-1
0
1
-4
6
-4
1
-5
10
-10
5
15
-20
15
-35
35
70
y diferencias centrales:
δ fk= f
− f k −1 / 2
δ 2 f k = δ f k +1 / 2 − δ f k −1 / 2 = f k +1 − 2 f k + f k −1
δ 3 f k = δ 2 f k +1 / 2 − δ 2 f k −1 / 2 = δ f k +1 − 2δ f k + δ f k −1
δ 4 f k = δ 3 f k +1 / 2 − δ 3 f k −1 / 2 = δ 2 f k +1 − 2 δ 2 f k + δ 2 f k −1
k
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
6
6.5
7
7.5
8
k +1 / 2
fk
δ f
k
δ2 f k δ3 f k
δ8 f k
0
0
0
0
0
0
0
1
0
0
1
-3
3
-1
0
0
0
0
70
35
15
5
1
0
0
-10
-1
0
-35
-20
-4
1
0
15
10
6
-2
0
-5
-4
1
1
0
1
0
Diferenciacion e Interpolacion
3/8
δ n f k = δ n −1 f k +1 / 2 − δ n −1 f k −1 / 2
puede entonces escribirse:
∆ f k = ∇ f k = δ f k +1 / 2
y en general:
n
n
n
∆ f k = ∇ f k +n = δ f k +n / 2
Para puntos con espaciamientos no uniformes pueden calcularse las “diferencias divididas”
{x0 , x1} =
f ( x 0) − f ( x1)
= {x1, x 0}
x0 − x1
{x0 , x1, x2} = {x0 , x1}− {x1, x2}
(x 0 − x 2 )
{x0 , x1, x2 ,..., xn} = {x0 , x1, x2 ,..., x n −1}− {x1, x 2 ,..., xn}
(x 0 − x n )
por ejemplo:
k
Xk
{xk , xk +1} {xk , xk +1, xk + 2}
fk
0
0
-5
1
1
1
{x k , x k +1 ,..., x k + n}
6
2
12
2
3
1
25
6
30
3
4
55
4
6
181
5
7
289
0
1
11
63
0
0
1
15
108
Para el caso de puntos con espaciamiento uniforme h, las diferencias divididas pueden
relacionares con diferencias finitas hacia delante:
{xi , xi +1,..., xi + n} = ∆
n
fi
n!hn
y en forma similar con diferencias hacia atrás o diferencias centrales.
Si f(x) es un polinomio de grado “n”, las diferencias finitas de orden (n+1) o superior obtenidas
con los f k = f (x k) son cero ( F(x) para el ejemplo anterior es un polinomio de tercer grado ).
Diferenciacion e Interpolacion
4/8
Interpolación
Supongase que se tiene una tabla de valores tal como:
Xk
0.0
0.1
0.2
0.3
0.4
0.5
f (X k)
1.000000
0.995004
0.980067
0.955336
0.921061
0.877582
Y se requiere calcular f(0.25) para ello, f(x) puede aproximarse por una funcion relativamente
simple, g(x), tal que g(xk)=f(xk), con frecuencia:
g ( x) = a 0 + a1 x + a 2 x 2 + ... + a n x n
Pero tambien son frecuentes aoroximaciones con funciones trigonometricas o exponenciales,
v.g.:
g ( x) = a 0 + a1 cos( x) + a 2 cos(2 x) + ... + b1 sen( x) + b 2 sen(2 x) + ...
En lo que sigue se hace enfasis en interpolaciones polinomicas. Dado (n+1) puntos x k, f (x k)
Solo un polinomio de grado n, Pn(x), satisface las condiciones Pn(x k ) = f(x k ) para todo k.
Sus coeficientes. ai podrian obtenerse resolviendo:
 1 x x2
0
0

1
x1 x12

2
1
x2 x2

... ... ...
x30 ... a 0  f ( x0) 
  

x13 ... =  a1  =  f ( x1) 
3
x 2 ... a 2  f ( x 2)
...
...
 ... 
 ... 
Pero esto no es practico. Procesos mas eficientes se revisan a continuacion.
4.2.1 Formulas sobre interpolación de Newton
Para puntos uniformemente espaciados hacia adelante
α (α −1)(α − 2)...(α − j + 1) j
f (x0 + αh) = f 0 + ∑∞
j =1
∆ f0
j!
Esta expresión es fácil de obtener considerando un operador como E tal que E f k = f
n
decir E = 1 + ∆. Como E fk = fk+n
k+1,
es
Diferenciacion e Interpolacion
5/8
α
α
Puede escribirse: f (x 0 + α h ) = E f 0 = ( 1 + ∆ ) f 0.
Generalmente se considera solo algunos términos de esta serie; por ejemplo despreciando
diferencias de orden 3 o superior:
f ( xk + αh) = f k + α∆ f k + 1 α (α −1)∆ 2 f k
2
f (xk + αh) = (α −1)(α − 2) f k + α (2 − α ) f k +1 + α (α − 1) f k +2
2
2
Considerando los valores numericos:
k
xk
fk
2
3
4
0.2
0.3
0.4
0.980067
0.955336
0.921061
Espaciamiento h=0.1, el valor de f(0.25) podria obtenerse con α = 0.5
f (x 2 + 0.5 h ) = ½ (-0.5 )(-1.5 )( 0.980067 ) + (0.5) (1.5 )( 0.955336) + ½ (0.5)(-0.5)( 0.921061)
f(0.25) = 0.9688945
(el valor exacto es 0.9689124….)
Similarmente puede escribirse la formula de Newton con diferencias hacia atrás.
α (α + 1)(α + 2)...(α + j −1) j
f (xn + αh) = f n + ∑∞
j =1
∇ fn
j!
Para algunos terminos de la serie
f ( xn + αh) = f n + α∇ f n + 1 α (α + 1)∇2 f n
2
De igual forma se puede expresar todo en terminos de “f” .
Tambien se puede utilizar diferencias centrales para realizar interpolacion para espaciamientos
iguales, formulas de Gauss:
1
1
f ( x k + αh) = f k + αδ f k +1 / 2 + α (α − 1)δ 2 f k + α (α − 1)(α + 1)δ 3 f k +1 / 2 + ...
2
6
1
1
f (x k + αh ) = f k + αδ f k −1 / 2 + α (α + 1)δ 2 f k + α (α − 1)(α + 1)δ 3 f k −1 / 2 + ...
2
6
Diferenciacion e Interpolacion
6/8
Promediando las dos expresiones se obtiene la formula de Stirling (1880):
α
(
)
2
f (x k + αh ) = f k + δ f k +1 / 2 + δ f k −1 / 2 + α
2
2
δ2fk+
(
) (δ 3 f
α α 2 −1
12
k +1 / 2
)
+ δ 3 f k −1 / 2 + ...
Ejemplo:
k
2
2.5
3
3.5
4
xk
δ f
fk
k
δ2fk
0.2 0.980067
-0.024731
0.3 0.955336
-0.009544
-0.034275
0.4 0.921061
Como se tiene hasta la segunda diferencia central, se tomaria solo 3 terminos de la serie del
método de Stirling:
α
(
)
2
f (x k + αh ) = f k + δ f k +1 / 2 + δ f k −1 / 2 + α
2
2
δ2fk
Hallar f(0.25), k=3, α = -0.5, h=1
f(0.25) = 0.955336 + (-0.5/2) (-0.034275 -0.024731) + (-0.5)² (-0.009544)/2
f(0.25) = 0.9688945
Para el caso de espaciamientos diferentes, se utiliza las diferencias divididas.
f ( x) = f 0 + {x 0 , x1}( x − x 0 ) + {x 0 , x1 , x 2}( x − x 0 )( x − x1) + ... + {x 0 , x1 , x 2 ,..., x k }( x − x 0 )( x − x1)...( x − x k −1)
k
0
xk
0
{x k , x k +1} {x k , x k +1 , x k + 2}
fk
1
-0.099665
1
0.2
0.980067
-0.49215
-0.24731
2
0.3
0.955336
3
0.4
0.921061
0.037375
-0.4772
-0.34275
0.06070833
-0.4529167
-0.478625
4
0.6
0.825336
0.7
0.764842
-0.0013889
0.03791667
0.07966667
-0.42105
-0.60494
5
0.03888889
Diferenciacion e Interpolacion
7/8
f(0.25) = 0.980067 + (-0.24731 )( 0.25 – 0.2) + ( -0.4772 ) ( 0.25 – 0.2) ( 0.25 – 0.3) +
+ ( 0.06070833 ) ( 0.25 – 0.2 )( 0.25 -0.3) ( 0.25 – 0.4 ) +
+ ( 0.03791667 ) ( 0.25 – 0.2 )( 0.25 -0.3) ( 0.25 – 0.4 ) (0.25 – 0.6)
f(0.25) = 0.9689123 ( con 5 terminos)
con menos terminos se tendra una aproximación mas lejana:
Resumen de las aproximaciones para la aproximación de f(0.25):
Terminos Aproximacion
Error Abs
cifras signf.
1
0.980067
0.11 x 10-1
1
2
0.9677015
0.9688945
0.9689173
0.9689123
0.12 x 10-2
2
0.18 x 10-4
4
0.48 x 10-5
5
0.13 x 10-7
7
3
4
5
Ejercicios:
1. Hallar varias aproximaciones de f(0.25) siguiendo otras trayectoria,
2. Construir los programas de interpolacion por los diferentes métodos hasta tres terminos
de la serie aproximada de newton para los tres casos (Diferencias finitas hacia delante,
atrás, centrales y divididas)
Formulas de Interpolacion de Lagrange.
Esta formula es mas adecuada para analisis teorico que para el computo practico. El polinomio
de interpolacion se obtiene como:
m
P( x) = ∑ g i ( x) f i
i =0
Donde,
m
g i ( x) = ∏
( x − x j)
j =0 (xi −
x j)
j≠i
;
El siguiente ejemplo es ilustrativo:
k
xk
fk
0
1
2
0
1
3
-5
1
25
Diferenciacion e Interpolacion
g 0 ( x) =
( x − 1)( x − 3) 1 2
= ( x − 4 x + 3)
(0 − 1)(0 − 3) 3
g 1 ( x) =
( x − 0)( x − 3) 1
= (− x 2 + 3x)
(1 − 0)(1 − 3) 2
g 2 ( x) =
( x − 0)( x − 1) 1 2
= ( x − x)
(3 − 0)(3 − 1) 6
8/8
2
P( x) = ∑ g i ( x) f i = 2 x 2 + 4 x − 5
i =0
Interpolación Inversa
En la solución de f(x) = 0 puede obtenerse aproximaciones a una raiz x*, por interpolación de
una función inversa con ordenadas xk para absisas de espaciamiento no uniforme, f(xk) . Por
ejemplo:
xk
fk
1
2
3
4
1.76
0.41
-0.16
-0.32
Descargar