Temario - redmexsu

Anuncio
INTRODUCCIÓN A LA MODELACIÓN NUMÉRICA DE FLUIDOS
GEOFÍSICOS
Juan H. Gaviño Rodríguez
Aspectos preliminares Numéricos
Estos apuntes tratan sobre las bases necesarias para comprender los procedimientos
involucrados en el diseño y programación de modelos hidrodinámico-numéricos para la
simulación de flujos geofísicos. Se hace referencia a cierto material del análisis numérico
del que se hará uso frecuente en el desarrollo de los métodos que se utilizarán.
Algo de nomenclatura
Es importante comprender que es necesario familiarizarse con esta nomenclatura para
entender rápidamente los enunciados matemáticos que se van a desarrollar.
= función de la variable x o el valor de la función f en el punto x .
f (x)
f ' , f ' ' , f (m ) = primera, segunda y enésima derivada de la función f también se usan las
expresiones Df , D 2 f , D ( n) f .
xk
= un punto específico, (a veces x k = x0 + kh , donde, k entero, x0 es un punto fijo a
partir del cual se seleccionan puntos apartados por múltiplos del incremento
h ; en otras x k ,es el valor de la variable x en la iteración k , también hace
referencia a cualesquiera de un conjunto determinado de puntos).
f k = f (x k )
Errores
Si x * es una aproximación de x y si x − x* = xδ es el error que hay en x* considerando
la magnitud de x, entonces se puede decir que el valor exacto es igual a una
aproximación más un error x = x * (1 + δ ) , o también se puede proceder en el sentido
que el valor aproximado es igual al exacto más un error x* = x[1 + (−δ )] , en ocasiones es
conveniente usar la expresión equivalente x* = x / (1 + δ ) como en una computadora un
número de punto flotante (número real) no se puede representar con un número infinito
de dígitos, al realizar esta asignación o una operación ω de punto flotante se comete en
general un error de precisión (redondeo) , lo que se puede expresar x* = x (1 + δ ) ,
xω * y = ( xωy)(1 + δ ) . Con lo cual se puede efectuar un análisis de errores para tener una
idea, de como se están cometiendo errores al hacer un cálculo, así por ejemplo
Si se quiere realizar la operación
n
∑x
k
= x0 + x1 + ... + x n , el análisis de error sería,
k =0
usando la notación (1 + δ m ) [i: j ] = (1 + δ i )(1 + δ i +1 )...(1 + δ j )
s 0 = x0
s1 = s0 + x1 = ( x0 + x1 )(1 + δ1 )
s 2 = s1 + x2 = ( x0 + x1 )(1 + δ1 )(1 + δ 2 ) + x2 (1 + δ 2 )
s k = s k −1 + x k = ( x0 + x1 )(1 + δ m )[1:k ] + x 2 (1 + δ m ) [ 2:k ] + ... + xi (1 + δ m ) [i:k ] + ... + x k (1 + δ k )
si δ = max{| δ1 |,..., | δ k |}
s k = s k −1 + x k ≤ ( x0 + x1 )(1 + δ) k + x 2 (1 + δ) k −1 + ... + xi (1 + δ) k +1−i + ... + x k (1 + δ)
De esta expresión se deduce que es en los primeros términos donde el error se
manifestaría más intensamente, por lo que una buena estrategia para sumar, consistiría
en ordenar de manera creciente en amplitud los sumandos
x − x∗
| y representa el
x
error tomando en cuenta la magnitud de x , da idea sobre el número de dígitos con que
se esta aproximando x .
en un proceso computacional en cada operación con números flotantes se puede producir
un error, el cual una vez generado puede amplificarse o amortiguarse en las
subsiguientes operaciones, por lo cual es importante el concepto de estabilidad.
ε
| f ( x) − f ( x ∗ ) | / | f ( x) |
La estabilidad de una operación se define como s =| f |=
y da una
εx
| x − x∗ | / | x |
idea del orden de magnitud del error en la función respecto a un error en la variable, así
un valor de 1 indica que el error en la función es del mismo orden que el de la variable, un
valor mayor a 1 que el error de la función se amplifica y menor a uno que se amortigua
respecto al de la variable . Para calcular la estabilidad por lo general se considera que los
errores en la variable son pequeños, con lo que se obtendría utilizando límites
| f ʹ′( x) | | x |
| f ( x) − f ( x ∗ ) | | x |
=
s{ f ( x)} = lim
x∗ → x
| f ( x) |
| f ( x) |
| x − x∗ |
El error relativo en x* como aproximación de de x se expresa ε x =|
Ejemplos
|x|
como se ve esta expresión puede ser muy
| x−a|
grande si x → a , que es cuando se produce la llamada aniquilación de dígitos.
| a || x |
| x −2 || x |
| nx n −1 || x |
n
También se obtienen s{ax} =
;
= 1 ; s{x −1 } =
=
1
s
{
x
}
=
=| n | ., es
| ax |
| x −1 |
| xn |
Si f ( x) = x − a , entonces s{x − a} =
decir la multiplicación y división son estables, en el sentido que un error en la variable
ocasiona un error del mismo orden de magnitud en la función. La potenciación ocasiona
un error del orden de la potencia, que se puede interpretar (caso n entero >1) que en
cada multiplicación se produce un error y el error total es la suma de estos (n-1) errores,
mas el que ya tenía la variable.
La estabilidad de una función se debe evaluar por la estabilidad de los pasos que la
componen, pues por ejemplo
s{( x + 1)
1/ 2
1/ 2
−x }=
1
2
| ( x + 1) −1 / 2 − x −1 / 2 || x | 1
|x|
1
= 2 1/ 2
≈
1/ 2
1/ 2
1/ 2
| ( x + 1) − x |
| x ( x + 1) | 2
(si x>>0) que da la impresión de ser estable, lo cual se logra si el cálculo se realiza
multiplicando
y
dividiendo
por
ya
que
entonces
[(x + 1)1 / 2 + x1 / 2 ] ,
f = ( x + 1)1 / 2 − x1 / 2 = 1 /[( x + 1)1 / 2 + x1 / 2 ] y las operaciones a efectuar serían
y1 = ( x + 1)1 / 2 ;
y 2 = x1 / 2 ; f1 = 1/( y1 + y2 ) , y como y1 y y2 son variables positivas, su suma es estable y
la división también. Sin embargo si | x |>> 1 entonces y1 y y2 se diferencian poco una de
la otra y si la forma de evaluarla es f 2 = y1 − y2 , entonces la resta es inestable
Este hecho se utiliza al obtener la solución de la ecuación cuadrática a x 2 + b x + c = 0
pues las soluciones
x1, 2 = [−b ± (b 2 − 4ac)1 / 2 ] /(2a ) al tener una de ellas una resta
podría en ciertos casos ( b 2 >> 4 | ac | ) producir errores grandes, una forma de evitarlo es
calculándolas de la siguiente manera (teniendo en cuenta que x1 x2 = 2 c )
x1 = [−b − sgn(b) (b 2 − 4ac)1 / 2 ] /(2a ) (sgn(b)=signo de b) que es estable pues se suman
números del mismo signo y en x2 = 2 c / x1 la división es estable.
Diferencias Finitas
Se considerará una partición homogénea de la recta, es decir los puntos x k a considerar
cumplen una relación de la forma x k = x0 + kh , siendo k entero, x0 un punto fijo
seleccionado como origen y h el espaciamiento entre puntos vecinos. Bajo estos
términos se utilizará la notación f k = f ( xk )
El operador traslación o desplazamiento E se define como:
Ef (x ) = f (x + h) = exp(hD ) f (x ) ≡ e hD f (x )
o equivalentemente
Ef k = f k +1 siendo h precisamente el desplazamiento y D el
operador derivada, la segunda igualdad se debe a que si se cumplen las condiciones de
Taylor
f ( x + h) = f ( x) + hf ʹ′( x) + 21! h 2 f ʹ′ʹ′( x) + 31! h 2 f (3) ( x) + ... + n1! h n f ( n ) ( x) + ... = Σ ∞k =0 k1! h k f ( k ) ( x)
= {1 + hD + 21! (hD ) 2 + 31! (hD ) 3 + ...} f ( x) = Σ ∞k =0 k1! (hD ) k f ( x) = e hD f (x)
por lo que se puede hacer la asignación E = exp(hD) ≡ e hD .
El operador inverso E −1 de E es tal que E −1 E = EE −1 = I ∴ E −1 f ( x) = f ( x − h) o
equivalentemente E −1 f k = f k −1 y en general se cumple E α f ( x) = f ( x + αh) , E α f k = f k +α .
Este operador es lineal, es decir E (αf + βg ) = αEf + βEg lo cual es una consecuencia de
la definición de combinación lineal de funciones (αf + βg )( x) = αf ( x) + βg ( x) , por lo que
E (αf + βg ) = (αf + βg )( x + h) = αf ( x + h) + βg ( x + h) = αEf + βEg
El operador diferencia adelantada Δ se define como
Δf ( x) = f ( x + h) − f ( x) = ( E − 1) f ( x) = (exp(hD) − 1) f ( x) = (e hD − 1) f ( x)
Nótese que Δf k = f k +1 − f k
En donde se hizo uso de la definición y propiedades del operador desplazamiento E , en
consecuencia Δ = exp(hD ) − 1 = e hD − 1; por lo que
D = h −1 log (1 + Δ) = h −1 (Δ − 12 Δ2 + 13 Δ3 − 14 Δ4 + ...) = h −1Σ ∞k =1 (−1) ( k +1) k −1 Δk
x
(Lo anterior ya que d log(1 + x) = d (1 + x) /(1 + x) por lo que log(1 + x) = ∫ (1 + u ) −1 du
0
x
x
log(1 + x) = ∫ (1 + u ) du = ∫ (1 − u + u − u + u − ...) du = x − 12 x + 13 x − 14 x 4 + ... )
0
−1
2
3
2
4
3
0
Df = h −1{ [ f k +1 − f k ] − 12 [ f k + 2 − 2 f k +1 + f k ] + 13 [ f k +3 − 3 f k + 2 + 3 f k +1 − f k ] + ...}
El operador diferencia centrada δ es tal que
1
2
− 12
δ f ( x) = f ( x + 12 h) − f ( x − 12 h) = ( E − E ) f ( x ) = (e
1
hD
2
−e
− 12 hD
) f ( x ) = 2 sinh( 12 hD) f ( x )
Nótese que δf k = f k +1 / 2 − f k −1 / 2
En consecuencia D = (2 h) arc sinh(δ 2)
D2 =
1
h2
[δ 2 − 141 δ 4 + 901 δ 6 − ...]
3
5
D = 1h [δ − 241 δ 3 + 640
δ 5 − 7168
δ 7 + ...]
x
( lo anterior ya que d arcSh( x) = (1 + x 2 ) −1 / 2 dx por lo que arcSh ( x) = ∫ (1 + u 2 ) −1 / 2 du
0
y como
[1 + a]−1 / 2 = 1 − 12 a + 12⋅32 21! a 2 − 1⋅233⋅5 31! a 3 + 12⋅34⋅54⋅!7 a 4 − = Σ ∞k =0 {(−1) k [a k / k!]Π km=1 (m − 12 )}
arcSh( x) = Σ ∞k =0 {(−1) k [ ( 2k +11) k! x 2k +1 ]Π km=1 (m − 12 )} = Σ ∞k =0 {(−1) k [ ( 2k1+1) x 2k +1 ]Π km=1 (1 − 21m )}
= x − 12
x3
3
+ 12 34
x5
5
− 12 34 56
x7
7
+ 12 34 56 78
x9
9
3
− = 12 [2 x − x3 + 34
x5
5
x7
7
− 34 56
+ 34 56 78
x9
9
−] )
Df = h −1{ [ f k + s − f k − s ] − 12 [ f k +1 − 2 f k + f k −1 ] + 13 [ f k +3s − 3 f k + s + 3 f k − s − f k −3s ] + ...} ; s =
1
2
Como Δ = E − 1 = E 1 / 2 [ E 1 / 2 − E −1 / 2 ] = E 1 / 2δ , o también δ = E −1 / 2 Δ , basta con conocer la
aplicación de uno de los operadores para obtener el resultado que daría el otro por medio
de éstas formulas
El hecho que E α f k = f k +α y las equivalencias Δ = E − 1 y δ = E 1 2 − E −1 2 permite obtener
fácilmente aplicaciones repetidas de estos operadores, ya que (por teorema del binomio)
Δn = ( E − 1) n = Σ nk =0 (−1) k ( n2 ) E n − k = E n − n [1] E n −1 + 21! n [ 2 ] E n − 2 + ... + (−1) k
1
k!
n [ k ] E n − k + ... + (−1) n
( ( nk +1 ) = n [ k +1] = n (n − 1)...(n − k ) )
Así por ejemplo Δ2 f k = ΔΔf k = Δ( f k +1 − f k ) = Δf k +1 − Δf k = f k + 2 − 2 f k +1 + f k , o mejor
Δ2 f k = ( E − 1) 2 f k = ( E 2 − 2 E + 1) f k = f k + 2 − 2 f k + f k
Δ4 f k = ( E − 1) 4 f k = ( E 4 − 4 E 3 + 6 E 2 − 4 E + 1) f k = f k + 4 − 4 f k +3 + 6 f k + 2 − 4 f k +1 + f k
análogamente
δ 2 f k = δδf k = δ( f k + 1 − f k − 1 ) = δf k + 1 − δf k − 1 = f k +1 − 2 f k + f k −1 ,
2
2
2
o mejor
2
δ 2 f k = ( E 1 2 − E −1 2 ) 2 f k = ( E 1 − 2 + E −1 ) f k = f k +1 − 2 f k + f k −1
δ 4 f k = ( E 1 / 2 − E −1 / 2 ) 4 f k = ( E 2 − 4 E 1 + 6 − 4 E −1 + E −2 ) f k = f k + 2 − 4 f k +1 + 6 f k − 4 f k −1 + f k −2
Nótese δ 4 = ( E −1 / 2 Δ) 4 = E −2 Δ4
Véase la semejanza con las operaciones con derivadas , por ejemplo
por una parte
δ ( f k g k ) = f k +1 / 2 g k +1 / 2 − f k −1 / 2 g k −1 / 2 = f k +1 / 2 ( g k +1 / 2 − g k −1 / 2 ) + g k −1 / 2 ( f k +1 / 2 − f k −1 / 2 )
análogamente
δ ( f k g k ) = g k +1 / 2 ( f k +1 / 2 − f k −1 / 2 ) + f k −1 / 2 ( g k −1 / 2 − g k −1 / 2 )
y haciendo un promedio entre los dos resultados se obtiene
δ ( f k g k ) = ~f k Δ g k + g~k Δ f k
con
~ 1
f k = 2 ( f k +1 / 2 + f k −1 / 2 ) ; g~k = 12 ( g k +1 / 2 + g k −1 / 2 )
que es muy parecido a D( f g ) = f D g + g Df
También
δ ( f / g ) k = ( f / g ) k + − ( f / g ) k − = ( f k + g k − − g k + f k − ) /( g k + g k − )
δ ( f / g ) k = {( g k + + g k − ) f k + − g k + ( f k + + f k − )} / ( g k + g k − )
δ ( f / g ) k = {( f k + + f k − ) g k − − f k − ( g k + + g k − )} / ( g k + g k − )
y un promedio de los dos resultados da
δ ( f / g ) k = {g~k δ f k − ~f k δ g k } / ( g k + g k − )
que es muy parecido a
D( f / g ) = ( g Df − f D g ) / g 2 .
Ejemplos de aplicación a algunas funciones:
δ e ax = e a ( x + h / 2) − e a ( x − h / 2) = e ax [e ah / 2 − e − ah / 2 ] = 2 sinh( 12 ah ) e ax
de aquí se obtiene
δ {sinh(ax), cosh(ax)} = sinh( 12 ah) {cosh(ax) , sinh(ax)}
o también
Δe ax = E 1 / 2δ e ax = E 1 / 2 2 sinh ( 12 ah )e ax = 2 sinh ( 12 ah )e a ( x + h / 2 )
Si se tiene en cuenta la fórmula de Euler, e ix = C x + iS x , se llega a que
δ e i a x = δ cos( ax ) + iδ sen(ax ) = 2 sinh( i 12 ah ) e iax = 2 i sen( 12 ah )[cos( ax ) + i sin( ax )]
por lo que al igualar partes reales e imaginarias
δ cos(ax) = −2 sen( 12 ah) sen(ax) ; δ sen(ax) = 2 sen( 12 ah) cos(ax) ,
por lo que
Δ cos(ax) = −2 sen( 12 ah) sen(a[ x + 12 h]) ; Δ sin( ax) = 2 sen( 12 ah) cos(a[ x + 12 h])
Estas expresiones muestran gran semejanza con las fórmulas de derivación
correspondientes
sinh( 1 ah) a x
Δe ax
δe ax
De ax = ae ax = lim
= lim
= a lim 1 2
e
h →0
h →0 h
h →0
h
( 2 ah)
sin( 1 ah)
Δ sin(ax)
δ sin(ax)
D sin(ax) = a cos(ax) = lim
= lim
= a lim 1 2
cos(ax)
h→0
h→0
h→0 ( ah)
h
h
2
sen( 12 ah)
Δ cos(ax)
δ cos(ax)
D cos(ax) = −asen(ax) = lim
= lim
= −a lim 1
sen(ax)
h→0
h→0
h→0
h
h
( 2 ah)
Las tablas de diferencias se basan en el hecho de que
δ n +1 f k = δ n (δ f k ) = δ n f k +1 / 2 − δ n f k −1 / 2 )
que es otra forma de obtener las diferencias de órdenes superiores a 1
f0
δ f1 / 2
δ 2 f1
f1
δ 3 f3/ 2
δ f3/ 2
δ 2 f2
f2
δ f5/ 2
f3
Polinomios factoriales.
El polinomio factorial (grado) m + 1 de x se define
[m ]
x [m+1] = x(x − h )(x − h )...(x − mh ) = x(x − h )
= x [m ] (x − mh )
donde la segunda igualdad agrupa los últimos y la tercera igualdad los primeros m
términos y se vuelve a hacer uso de la definición de polinomio factorial. Como se ve es un
polinomio de grado m + 1 . Su nombre proviene del hecho que si ( h = 1 ) n un entero
positivo entonces n [n ] = n! y en consecuencia n [m ] = 0 si m > n, h = 1. Si se define a
x [ 0] = 1,(ya que 0!= 1) y formalmente en x [m+1] = x [m ] (x − mh ), se hace m = −1 se obtiene
x [ −1] = 1 /( x + h) , prosiguiendo de manera análoga se establece
x [ − m] = 1 /[( x + h)( x + 2h)....( x + mh)]
Teniendo en cuenta lo anterior se obtiene
[m ]
Δx [m ] = (x + h )
− x [m ] = (x + h )x [m −1] − x [m −1] (x − (m − 1)h ) = m x [m −1] h
que muestra gran semejanza con la derivada de la potencia m de x : Dx m = mx m −1
x 2 = x [ 2] + x [1] h ya que de la definición x [ 2] = x 2 − xh
x 3 = x( x [ 2] + x[1] h) = ( x − 2h + 2h) x[ 2] + ( x − h + h) x [1] h = x [3] + 3hx [ 2] + h 2 x [1]
x 4 = x( x [3] + 3hx [ 2] + h 2 x [1] ) = x [ 4] + 6hx [3] + 7h 2 x [ 2] + h 3 x [1]
La forma normal de un polinomio de grado n es:
p(x ) = a0 + a1 x1 + a 2 x 2 + ... + a n x n = ∑ 0n a k x k
y sus derivadas se pueden expresar como
p ʹ′(x ) = a1 + a 2 2[1] x1 + a3 3[1] x 2 + ... + a n n [1] x n −1 = ∑1n a k k [1] x k −1
p ʹ′ʹ′(x ) = 2[ 2 ] a 2 + a3 3[ 2] x1 + ... + a m m[ 2 ] x m − 2 + ... + a n n [ 2] x n − 2 = Σ n2 a k k [ 2] x k − 2
p ( k ) (x ) = k [ k ] a k + a k +1 (k + 1) [ k ] x1 + ... + a m m[ k ] x m − k + ... + a n n [ k ] x n − k = ∑ nm = k a m m [ k ] x m − k
La forma óptima de evaluar un polinomio en el punto x = y es por multiplicación anidada
n −1
k
21
1
2
k
n −1
p ( y) = [ ... [ ... [ [ an y + an−1 ] y + an−2 ] y + ... + an−k ] y + ... + a1 ] y + a0
que algorítmicamente se puede expresar como
bn = an ; bk = bk +1 y + ak k = n − 1, n − 2,..., 2, 1, 0
así p( y) = b0
que equivale a dividir el polinomio p entre (x-y) ya que se debe de cumplir
pn ( x) = ( x − y)qn−1 ( x) + b0
Σ nk =0 a k x k = ( x − y )Σ nk −=10 bk +1 x k + b0
= Σ nk −=10 bk +1 x k +1 − yΣ nk −=10 bk +1 x k + b0
= Σ in=1bi x i − yΣ in=−01bi +1 x i + b0
a n x n + Σ in=−01 ai x i = bn x n + Σ in=−11 (bi − ybi +1 ) x i − yb1 + b0
que son las mismas recurrencias de la multiplicación anidada, es decir las bk son los
coeficientes del polinomio que resulta de dividir a pn(x) con (x-y) y el residuo es el valor
del polinomio p(y)
además como
pn ( x) = ( x − y) pn−1 ( x) + p( y)
Dpn ( y) = pn−1 ( y)
Dpn ( x) = ( x − y) Dpn−1 ( x) + pn−1 ( x)
La forma mas general de expresar un polinomio de grado n es por medio del polinomio
de Newton con n centros que se define como
p ( x) = a0 + a1 ( x − c0 ) + a2 ( x − c0 )(x − c1 ) + ... + an ( x − c0 )(x − c1 )...( x − cn−1 )
que con la ayuda de la expresión
( x − c) [0:n ] = ( x − c0 )( x − c1 )...( x − c n ) = ~
x0 ~
x1 ~
x 2 ...~
xn = ~
x[ 0:n ]
se puede escribir como
p( x) = ∑ 0n ak ( x − c) [0:k −1] = ∑ 0n ak ~
x0 ...~
xk −1 = ∑0 ak ~
x[0:k −1]
n
y en forma anidada
n −1
k
1
1
n −1
k k −1 1
k
n −1
p(z ) = [ ... [ ...[ an ( z − cn−1 ) + an−1 ]( z − cn−2 ) + ... + an−k ]( z − cn−k −1 ) + ... + a1 ] ( z − c0 ) + a0
1
k −1
k
n −1
p(z ) = [ ... [ . [ ..[ an ~
z n−1 + an−1 ] ~
z n−2 + ... ] ~
z n−k + an−k ] ~
z n−k −1 + ... + a1 ] ~
z 0 + a0
que corresponde a las siguientes recurrencias
qn = pn ;
qn−1 = pn−1 + qn ( z − cn−1 ) ;
qk = pk + qk +1 ( z − ck )
;
q 0 = p( z )
El significado de los coeficientes qk = pk + qk +1 ( z − ck ).. k = n, n − 1,...,0 así obtenidos es el
siguiente
como pk = qk − qk +1 (z − ck ) se tiene que
p(x ) = ∑ 0n pk ( x − c) [0;k −1] = ∑ 0n [qk − qk +1 ( z − ck )]( x − c) [0;k −1]
= ∑ 0n qk ( x − c) [0;k −1] − ∑ 0n qk +1 ( z − ck )(x − c) [0;k −1]
= ∑ 0n qi ( x − c) [0;i −1] − ∑1n+1 qi ( z − ci −1 )(x − c) [0;i −2]
= q0 + ∑1n qi ( x − ci −1 )(x − c) [0;i −2] − ∑1n+1 qi ( z − ci −1 )(x − c) [0;i −2]
= q0 + ∑1n qi ( x − z)(x − c) [0;i −2] = q0 + ( x − z) ∑1n qi ( x − c) [0;i −2]
p(x ) = q0 + q1 ( x − z ) + q2 ( x − z )(x − c0 ) + ... + qn ( x − z )(x − c0 )..( x − cn−2 )
es decir los q k k = 0,...n son coeficientes del mismo polinomio de grado n pero con
centros desplazados z, c0 , c1 ,...., cn−2
Interpolación
n
Si se quiere encontrar un polinomio de grado n Pn ( x) = ∑0 ak x k que pase por n+1 puntos
dados del plano (x0 , y0 ), (x1 , y1 ),...(xn , yn ),las a k , k = 0,1,..., n se pueden determinar
resolviendo el sistema Pn ( xk ) = y k , k = 0,1,..., n , que en forma matricial se escribe
⎡ Pn ( x0 ) ⎤ ⎡1 x01
⎢ P ( x ) ⎥ ⎢
1
⎢ n 1 ⎥ = ⎢1 x1
⎢ ... ⎥ ⎢ ...
⎢
⎥ ⎢
1
⎣ Pn ( x n )⎦ ⎢⎣1 x n
x02 ... x0n ⎤ ⎡ a0 ⎤ ⎡ y 0 ⎤
⎥ ⎢ ⎥ ⎢ ⎥
x12 ... x1n ⎥ ⎢ a1 ⎥ ⎢ y1 ⎥
, este mismo problema se puede resolver por
=
⎥ ⎢ ... ⎥ ⎢ ... ⎥
⎥ ⎢ ⎥ ⎢ ⎥
x n2 x nn ⎥⎦ ⎣a n ⎦ ⎣ y n ⎦
Lagrange de la siguiente manera , se propone una solución de la forma
n
Pn ( x) = ∑0 y k Lk ( x) donde las Lk (x) los polinomios de Lagrange son funciones de soporte
puntual es decir son tales que se cumple
⎧1 sik = m
,(valen uno en el punto de apuntalamiento y cero en los
Lk ( x m ) = δ mk = δ k ,m = ⎨
⎩0 sik ≠ m
vecinos explícitos) y se expresan de una forma muy ilustrativa
Lk ( x) =
n
(x-x0 )(x-x1 )...(x-xk −1 )(x-xk +1 )...(x-xn )
Lk ( x) = ∏ ( x − xm )
(xk -x0 )(xk -x1 )...(xk -xk −1 )(xk -xk +1 )...(xk -xn )
m =0, m ≠ k
n
∏(x
k
− xm )
m =0, m ≠ k
Lk ( x ) = ~
x[ 0:n ]≠ k /( x k − x m ) m[ 0:n ]≠ k , y como se ve Pn ( xm ) = ∑0 y k Lk ( xm ) = ∑0 y k δ k ,m = y m , si se
n
n
define λ k = 1 /( x k − x m ) m[ 0:n ]≠ k ,y µ k = λ k /( x − xk ) la forma de Lagrange se puede expresar
n
n
n
como Pn ( x) = ∑0 y k Lk ( x) = ( x − xk )[ 0:n ] ∑0 y k λ k /( x − xk ) = ( x − xk )[ 0:n ] ∑0 y k µ k , teniendo en
cuenta que tanto λ k como µ k son independientes de las ordenadas y k , sus valores
deben entonces ser iguales para cualquier polinomio con las mismas abscisas x k , en
particular para el polinomio uno, es decir
(
n
)
n
Pn ( x) = 1 = ( x − xk )[ 0:n ] ∑0 µ k que conduce a
n
n
n
( x − xk )[ 0:n ] = 1 / ∑0 µ k que permite escribir Pn ( x) = ∑0 y k Lk ( x) = ∑0 y k µ k / ∑0 µ k . Como el
coeficiente de grado n de polinomio uno es cero se obtiene
n
∑λ
0
k
= 0 , es decir
n −1
λ n = ∑0 λ k
x0
x1
λ0 = 1 λ0 = λ0 / x01
λ1 = −λ0
x2
x3
λ0 = λ0 / x02
λ1 = λ1 / x12
λ2 = −(λ0 + λ1 )
λ0 = λ0 / x03
λ1 = λ1 / x13
λ2 = λ2 / x 23
λ3 = −(λ0 + λ1 + λ2 )
µ k = λk /( z − xk )
Pn ( z ) = µ yˆ / Σ k µ k
otra solución al problema son los polinomios de Newton con centros x0 , x1 ,..., xn−1 , ( xn ) ,
n
Pn ( x) = ∑0 pk ( x − xm )[0 :k −1] en este caso las condiciones Pn ( xk ) = y k , k = 0,1,..., n ,conducen
al sistema de ecuaciones
Pn ( x0 ) = y 0 = p0
Pn ( x1 ) = y1 = p0 + p1 x01
que son del tipo triangular inferior y en
Pn ( x 2 ) = y 2 = p0 + p1 x02 + p 2 x02 x12
Pn ( x k ) = y k = p0 + p1 x0 k + p 2 x0 k x k 2 + ... + p k x0 k ... x k −1,k
consecuencia se resuelven explícitamente empezando por p 0 y así sucesivamente ¿
consecutivamente hasta p n , los coeficientes obtenidos se llaman diferencias divididas y
se escriben p k = p012...k , de las ecuaciones arriba se ve que p1 = p01 = ( y1 − y0 ) /( x1 − x0 )
p2 = p012 = [( y 2 − y0 ) / x02 − p01 ] /( x2 − x1 ) = ( p02 − p01 ) / x12 continuando de esta manera se
encontraría p k = p 012...k = ( p012...k − 2,k − p 012...k −1 ) / x k −1,k ,Una forma más usada de encontrar
estas diferencias es suponiendo que se tienen 2 polinomios uno Pa[ 0:n −1] ( x) que pasa por
los puntos x0 , x1 ,..., x n −1 y el otro
Pb[1:n ] ( x ) por los puntos x1 , x2 ,..., xn ,, entonces(usando
Lagrange) el polinomio Pn ( x) = Pa[ 0:n −1] ( x)[( x − x n ) / x n 0 ] + Pb[1:n ] ( x)[( x − x0 ) / x0 n ] , pasa por
(ya
x0 , x1 ,..., xn
Pn ( x0 ) = Pa[ 0:n −1] ( x0 ) = y 0 , Pn ( x n ) = Pb[1:n ] ( x n ) = y n ,
que
Pn ( x k ) = Pa[ 0:n −1] ( x k )[ x nk / x n 0 ] + Pb[1:n ] ( x k )[ x0 k / x0 n ] = y k [ x0 k − x nk ] / x0 n = y k )
por lo que igualando el coeficiente de la potencia n en el polinomio así construido se tiene
p n = p 012...n = ( p12,,,n − p 01...n −1 ) / x0 n
x0 y 0
p01
x1 y1
p12
x2 y 2
p 23
x3 y 3
p34
x4 y 4
= y 01 / x01
p012 = ( p12 − p01 ) / x02
= y12 / x12
p
= ( p123 − p 012 ) / x03
p123 = ( p 23 − p12 ) / x13 0123
p 01234 = ( p1234 − p 0123 ) / x04
= y 23 / x 23
p1234 = ( p 234 − p123 ) / x14
p 234 = ( p34 − p 23 ) / x 24
= y 34 / x34
x0 y 0
x0 y 0
p 01
p 012
x1 y1
p12
p
p123 0123 p 01234
x2 y 2
p 23
p
p 234 1234
x3 y 3
p34
x4 y 4
Δy 0 2
Δ y0
x1 y1
Δy1 2 Δ3 y 0 4
Δ y1
Δ y0
x2 y 2
Δy 2 2 Δ3 y1
Δ y2
x3 y 3
Δy 3
x4 y 4
k
Como p12...k = ∑m=1 y m /( xlm ) l[1:k ]≠ m Se observa que p12...k = p1ʹ′ 2ʹ′...k ʹ′ donde 1ʹ′ 2ʹ′...k ʹ′ hacen
referencia a una permutación de 12...k , es decir las diferencias divididas son
independientes del orden de los subíndices y en conseuencia del orden en que los puntos
se vayan considerando.
(por inducción p12 = y12 / x12 = y21 / x21 = p21 = y1 / x21 + y2 / x12 por lo que si se cumple,
p12...k = y1 /( x 21 x31 ... x k1 ) + ... y m /( x1m ... x m −1,m x m +1,m ... x km ) + ... + y k /( x1k x 2 k ... x k −1,k ) se tiene que
k +1
k +1
k
k
p12...k ,k +1 = ( p 2...k ,k +1 − p12...k ) / x1,k +1 = (∑m =2 y m / ∏l =2,≠ m xlm − ∑m =1 y m / ∏l =1,≠ m xlm ) / x1,k +1
k
= y k +1 /( xlk +1 ) l[1:k ] + ∑m=2 y m / x1k +1 ( xlm ) l[ 2:k ] (1 / xk +1m − 1 / x1m ) + y1 /( xl1 ) l[ 2:k +1]
k
k +1
= y k +1 /( xlk +1 ) l[1:k ] + ∑m=2 y m /( xlm ) l[1:k +1] + y1 /( xl1 ) l[ 2:k +1] = ∑m=1 y m /( xlm ) l[1:k +1]≠ m
si las abscisas de interpolación están espaciadas homogéneamente es decir si
x± k = x0 ± kh siendo h el espaciamiento , las diferencias divididas se pueden expresar en
~k y (lo que se puede
términos de diferencias adelantadas como p
= Δk y /(k!h k ) = Δ
1ʹ′ 2ʹ′...k ʹ′
1ʹ′
1ʹ′
demostrar por inducción) donde 1ʹ′ 2ʹ′...k ʹ′ hacen referencia a los índices de k puntos
consecutivos ordenados de menor a mayor.
Dependiendo de la manera del orden en que los puntos de interpolación se van
incorporando se van generando distintas expresiones, las cuales en teoría representan al
mismo polinomio (si los mismos puntos) , [numéricamente se prefieren aquellas donde los
puntos a interpolar quedan centrados]
Newton adelantado
P( x) = y0 + p01 ~
x0 + p012 ~
x0 ~
x1 + p0123 ~
x0 ~
x1 ~
x2 + ... + p01...n ~
x0 ~
x1 ...~
xn−1
~
~
~
~
2
3
n
P( x) = y 0 + Δy 0 ~
x0 + Δ y 0 ~
x0 ~
x1 + Δ y 0 ~
x0 ~
x1 ~
x 2 + ... + Δ y 0 ~
x0 ~
x1 ...~
x n −1
Newton atrasado
P( x) = y n + pnn−1 ~
xn + pnn−1n−2 ~
xn ~
xn−1 + pnn−1n−2n−3 ~
xn ~
xn−1 ~
xn−2 + ... + pnn−1...0 ~
xn ~
xn−1 ...~
x1
~y ~
~2 y ~
~3 y ~
~n y ~
P( x) = y + Δ
x +Δ
x ~
x +Δ
x ~
x ~
x + ... + Δ
x ~
x ...~
x
n
n −1
n
n−2
n
n −1
n −3
n
n −1 n − 2
0
n
n −1
1
Gauss 1
P( x) = y 0 + p01 ~
x0 + p01−1 ~
x0 ~
x1 + p01−12 ~
x0 ~
x1 ~
x −1 + ... + p01−12− 23−3...n ~
x0 ~
x1 ~
x −1 ~
x2 ~
x − 2 ...~
x −( n −1)
~y ~
~2 ~ ~ ~3 ~ ~ ~
~n
~ ~~ ~ ~ ~
P( x) = y0 + Δ
0 x0 + Δ y −1 x0 x1 + Δ y −1 x0 x1 x−1 + ... + Δ y −( n −1) x0 x1 x−1 x2 x− 2 ... x−( n −1)
Gauss 2
P( x) = y 0 + p 0−1 ~
x0 + p0−11 ~
x0 ~
x −1 + p0−11− 2 ~
x0 ~
x −1 ~
x1 + ... + p 0−11− 22−33...− n ~
x0 ~
x −1 ~
x1 ~
x−2 ~
x 2 ...~
x( n −1)
~
~
~
~
2
3
n
P( x) = y + Δy ~
x +Δ y ~
x~
x +Δ y ~
x~
x ~
x + ... + Δ y ~
x~
x ~
x~
x ~
x ...~
x
0
−1
0
−1
0 −1
−2
0 −1 1
−n
0 −1 1 −2 2
( n −1)
en la primera expresión se utiliza notación en diferencias divididas, pues ésta es mas
ilustrativa ya que hace referencia explícita al orden en que los puntos de interpolación se
van involucrando en la construcción del polinomio. La segunda solo muestra la
equivalencia en diferencias adelantadas
Sistemas de ecuaciones lineales
⎡ a1 ⎤
Se usará la siguiente notación aˆ = ⎢ ...a2 ⎥ = [a1 ; a2 ;...; an ] (notense los ";") es un vector
⎢⎣ an ⎥⎦
columna, su dimensión (número de elementos) viene dada por dim(aˆ ) = n ×1, y aˆ n×1 hace
referencia explícita a que el vector tiene n renglones y 1 columna, o a una columna con n
elementos y correspondientemente a = [a1 , a2 ,..., an ] es un vector renglón. con dimensión
dim(a ) = 1 × n y aˆ1×n hace referencia explícita que el vector tiene n columnas y un renglón
o a que tiene un renglón con n elementos. Una matriz rectangular Ak ×m indica que tiene k
renglones y m columnas, Ak ×m = [aˆ1 ,..., aˆ m ] o Ak ×m = [a1ʹ′; ,...; a kʹ′ ] ( dim(aˆ ) = k × 1 y
dim(a ʹ′) = 1 × m ) (las ' hacen hincapié a que aˆ y a ' aún cuando tuvieran la misma
dimensión, en general tendrían elementos diferentes). El operador transpuesta t es tal
que al aplicarse a una matriz o vector, intercambia renglones por columnas y viceversa,
así es equivalente escribir a = aˆ t , o aˆ = a t , si As×n = [aˆ1 ,..., aˆ n ] es la matriz que consiste en
los n vectores columna aˆ k , k = 1 : n , entonces Ant ×s = [aˆ1 ,..., aˆ n ]t = [a1 ;...; a n ] es la matriz que
consiste de los n vectores renglón ak , k = 1 : n . El producto escalar de 2 vectores
a = [a1 ,..., a n ] y bˆ = [b1 ; b2 ;...; bn ] se escribe a bˆ = a b t = a1 b1 + ... + an bn . El producto de una
matriz Ak ×m = [aˆ1 ,..., aˆ m ] = [a1ʹ′; ,...; a kʹ′ ]con un vector bˆm×1 = [b1 , b2 ,..., bm ]t , se puede escribir
A bˆ = aˆ1b1 + ... + aˆ m bm (una combinación lineal de las columnas )o como Abˆ = [a1ʹ′bˆ;...; akʹ′bˆ](el
elemento k es el producto escalar del renglón k de la matriz con el vector)
Nótese que uno puede referirse a un renglón o a una columna o a partes de una matriz
A , en términos de sus elementos como por ejemplo Ak ,1: j = [ Ak ,1 , Ak , 2 ,..., Ak , j ] (elementos
del 1 al j del renglón k) o A1: j , k = [ A1,k , A 2, k ,..., A j , k ]ʹ′ (elementos del 1 al j de la columna k)
Los métodos más comunes para resolver sistemas de ecuaciones lineales Ax = b
siendo A una matriz no singular, x el vector solución y b un vector dado consisten en
realizar una serie de transformaciones que convierten al sistema en uno triangular
superior o inferior cuya solución es entonces obvia, es decir si A = LU con L triangular
inferior y U triangular superior, la solución de Ax = b , que se escribe LUx = b , se
resuelve en dos pasos obvios L y = b (sustitución hacia adelante) y Ux = y (sustitución
hacia atrás). El método de Gauss es uno de los mas usados y consiste en utilizar
transformaciones elementales (agregan a un renglón una combinación lineal de los
demás renglones o intercambian renglones) que van haciendo ceros los elementos
debajo de la diagonal columna por columna (sustitución hacia adelante). Es decir con
I k , l la transformación elemental permutación, que intercambia los renglones k y l de una
matriz cuando la multiplica por la izquierda y las matrices M k , que a todos los renglones
de la matriz debajo de la diagonal k, les sustrae un múltiplo del renglón k, tal que el
elemento en la columna k de esos renglones se hace cero, la sustitución hacia adelante
del método de Gaus se escribe
M n−1 I n−1,(n−1) ,...M 2 I 2, 2 , M 1 I1,1 , (Ax = b) → U!x! = bˆʹ′
con pivoteo parcial, es decir encontrando el máximo en valor absoluto de la diagonal
pivote hacia abajo y haciendo el intercambio de los renglones respectivos, las matrices de
permutación no afectan a las matrices elementales M subsecuentes, es decir , la
expresión arriba se puede escribir con M = M n−1 M n−2 ... M 2 M 1 y P = I n −1,( n −1)' ...I 2 I 1 , como
M PA xˆ = MPbˆ , que se convierte en o tiene la forma Ux = b' , por lo que PA = M −1U = LU
L = M −1 = M 1−1 M 2−1 ...M n−−11 (acordarse que la inversa de un producto de matrices
( M 1 M 2 ...M n ) −1 = M n−1 ...M 2−1 M 1−1 ),y por lo tanto M = L−1 si se conoce PA = LU entonces
para la solución de Ax = b , por motivos de estabilidad numérica y existencia de la
factorización LU (por ejemplo si el primer elemento del primer renglón es cero), se
realizan permutaciones a la matriz PAx = Pb ≡ b' , que se resuelve entonces con LUx = b'
y se puede resolver L y = b' o y = L−1b' = M n−1 ...M 2 M 1b' y Ux = y
a1
⎡ 1
⎤
⎡ a1 ⎤ ⎡
⎤
⎢− m
⎥
⎢a ⎥ ⎢a − m a ⎥
1
21
2 ⎥
2
21 1 ⎥
⎢
⎥
⎢
⎢
M1 =
M1
=
⎢ ...
⎢ a3 ⎥ ⎢ a3 − m31a1 ⎥
... ⎥
⎢
⎥
⎢ ⎥ ⎢
⎥
1⎦
⎣a 4 ⎦ ⎣a 4 − m41a1 ⎦
⎣− mn1
...
⎡...
⎤
⎡...
⎤
⎡ ... ⎤ ⎡
⎢
⎥
⎢
⎥
⎢ a ⎥ ⎢
1
1
ak
⎢
⎥
⎢
⎥
⎢ k ⎥ ⎢
−1
⎥ , M k = ⎢
− mk +1 k 1
mk +1 k
M k ⎢a k +1 ⎥ = ⎢a k +1 − mk +1,k a k ⎥ M k = ⎢
⎢
⎥
⎢
⎥
⎢
⎥ ⎢
...
... ⎥
...
...
⎢
⎢
⎥
⎢ ... ⎥ ⎢
⎢
⎢
⎢⎣ a n ⎥⎦ ⎢⎣ a n − mn,k a k ⎥⎦
− mn k
1⎥⎦
mn k
⎣
⎣
L = M −1
⎡ 1
⎢ m
⎢ 21
⎢
⎢
= ⎢ mk1
⎢
⎢
⎢mn −11
⎢ m
⎣ n1
1
...
mk 2
...
1
...
mn −1 2
mn −1 k
mn 2
mn k
1
... mn n −1
⎤
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
1⎥⎦
⎤
⎥
⎥
⎥
1
⎥
... ⎥
1⎥⎦
donde
I k ,k ,
es la transformación que intercambia los renglones k y k' en caso que la
magnitud del elemento
renglón pivote,
Mk
ak ,k
con
k' > k
sea la máxima, que pasa entonces a ser el
es la transformación que a cada renglón
m>k
le agrega
un
a m , k , del renglón m, U es
Ux = b' se resuelve entonces por
múltiplo del renglón pivote k para hacer cero el elemento
entonces una matriz triangular superior. El sistema
sustitución hacia atrás, es decir empezando por la última componente.
La solución de un sistema lineal de ecuaciones Axˆ = bˆ en el caso de una matriz diagonal
n
n
dominante, es decir, una que cumple con ∑k =1,k ≠l a kl < all , ∑l =1,l ≠ k a kl < a kk , se puede
realizar utilizando la descomposición A = L + D + U , con D la diagonal, L y U las partes
triangulares estrictamente inferior y superior de A . El esquema se basa en el siguiente
razonamiento si x̂0 es una aproximación de la solución x̂ , y si xˆ1 = xˆ 0 + hˆ fuera la
solución se tendría de Axˆ = bˆ que hˆ = A−1 (bˆ − Axˆ ) y en consecuencia
1
0
xˆ1 = xˆ 0 + A (bˆ − Axˆ 0 ) , como la determinación de A −1 es una tarea frecuentemente más
laboriosa que la solución del sistema original, además que equivale a conocer la solución
del sistema ( xˆ = A−1bˆ y en consecuencia no hay necesidad de aproximaciones),se utilizan
aproximaciones
a
es
decir
se
propone
A −1 ,
m +1
m
m
j
k
m
xˆ
= xˆ + Q(bˆ − ( L + D + U )xˆ ) = xˆ + Q(bˆ − Lxˆ − Dxˆ − Uxˆ ) , donde Q es una matriz que
trataría de ser lo más cercano a A −1 , obviamente si Q = A −1 se garantiza la solución en
un solo paso y equivale a ya conocer la solución del sistema. Como se está suponiendo
que el sistema es diagonal dominante se puede proponer Q = ωD −1 ≈ A −1 , (w es una
constante que se le denomina parámetro de relajación) con lo cual se tendría
xˆ ( k +1) = (1 − ω ) xˆ ( k ) + ω D −1 (bˆ − Lxˆ ( m ) − Uxˆ ( k ) ) , si m = k , el sistema se está resolviendo por el
método Jacobi si ω = 1 , o si ω ≠ 1 por Jacobi con relajación JOR, y si m = k + 1 por el
método de Gauss- Seidel si ω = 1 , o si ω ≠ 1 por sobre relajación sucesiva SOR.
−1
Gauss x k = x k + w(bk − Ak , 1:n xˆ ) / Ak ,k k = 1 : n
Jacobi xˆ = xˆ + w D −1 (bˆ − Axˆ )
La solución ( L + D) xˆ = bˆ y
( D + U ) xˆ = bˆ con L , U matrices triangulares estrictamente
inferior y superior respectivamente es explícita, pues xˆ = D −1 ( bˆ − Lxˆ ) xˆ = D −1 ( bˆ − Uxˆ ) y
así x k = (bk − Lk ,1:k −1 xˆ1:k −1 ) / d k k = 1 : n x k = (bk − U k , k +1: n xˆ k +1::n ) / d k k = n : −1 : 1
En el caso de una matriz tridiagonal T xˆ = dˆ , con diagonal dominante , se puede
demostrar que no se producen intercambios de renglones, por lo que si la relación de
recurrencia es
,
k = 1,..., n ( a1 = cn = 0 )
ak xk −1 + bk xk + ck xk +1 = d k
el método de Gauss la convertiría en triangular superior U xˆ = dˆ ʹ′ con relación de
recurrencia
bkʹ′ xk + ckʹ′ xk +1 = d kʹ′ , es decir xk −1 = (d kʹ′ −1 − ckʹ′ −1 xk ) / bkʹ′ −1 (que es el esquema para la
sustitución hacia atrás k = n + 1 : −1 : 2 ) al sustituir en el sistema original , se llega a
(bk − ckʹ′ −1ak / bkʹ′ −1 ) xk + ck xk +1 = d k − d kʹ′ −1ak / bkʹ′ −1
que al comparar con el sistema triangular superior, conduce a relaciones
bkʹ′ = bk − ckʹ′ −1ak / bkʹ′ −1 ; ckʹ′ = ck ; d kʹ′ = d k − d kʹ′ −1ak / bkʹ′ −1
(con b1ʹ′ = b1 , d1ʹ′ = d1 k = 2 : 1 : n es la sustitución hacia adelante)
Ejemplo sencillo de una solución numérica
Un cuerpo sujeto a fricción proporcional a la velocidad. La ecuación diferencial que
determina el movimiento es
dt u = − r u
con condición inicial u( t =0 ) = u0 , su solución analítica es u(t ) = u0 e − r t
La discretización para resolverla numéricamente podría ser de las siguientes maneras
ut +1 = (1 − rΔt ) ut ; ut + k = (1 − rΔt ) k ut
b) Δ t ut = − r Δt ut +1 ; ut +1 = ut /(1 + rΔt ) ; ut + k = ut /(1 + rΔt ) k
c)
;
Δ t ut = − r Δt (α ut +1 + βut )
ut +1 = (1 − β rΔt )ut /(1 + α rΔt )
ut +k = (1 − β rΔt ) k ut /(1 + α rΔt ) k con α + β = 1
a) Δ t ut = − rΔt ut
;
;
En general una discretización como en a) se le llama explícita, como en b) y c) implícita
Los criterios de estabilidad se utilizan para tener una idea de cómo un error se
propagaría en el tiempo (con cada iteración), para lo cual es común hacer la asignación
u t + k = u 0 γ k , en esta ecuación los valores se amplifican, permanecen iguales o
amortiguan dependiendo si γ > 1 ; γ = 1 ; γ < 1, por lo que se dice que un proceso iterativo
es estable si es posible lograr que 0 ≤| γ |≤ 1 ( − 1 ≤ γ ≤ 1 ). Al sustituir la expresión en las
ecuaciones de diferencias se obtiene
a) γ = (1 − rΔt )
b) γ = 1 /(1 + rΔt )
c) γ = (1 − β r Δt ) /(1 + α rΔt )
En estas expresiones en general el valor que se puede variar es el incremento temporal
Δt . Con b =1 , para las siguientes desigualdades el criterio para obtener estabilidad
conduce a
a) − b ≤ γ = (1 − rΔt ) ≤1
la desigualdad a la derecha siempre se satisface, la de la
izquierda conduce a Δt ≤ (1 + b) / r
b) − b ≤ γ = 1/(1 + rΔt ) ≤ 1 que como se ve siempre se satisface
c) − b ≤ γ = (1 − β r Δt ) /(1 + α rΔt ) ≤ 1
izquierda conduce a
la desigualdad a la derecha se satisface, la de la
[1 − (1 + b)α )] r Δt ≤ 2 por lo que si [1 − (1 + b)α ] > 0 entonces Δt ≤ 2 /{[1 − (1 + b)α ] r} y
si [1 − (1 + b)α ] ≤ 0 siempre se satisface
Las condiciones así obtenidas son numéricamente estables, en el sentido que un error
inicial no se amplifica, sin embargo la solución analítica que corresponde al
comportamiento físico del sistema, expresa que el movimiento se mantiene en su
dirección inicial y con el tiempo solo disminuye en magnitud hasta llegar al estado de
reposo o no movimiento, sin embargo si en la solución numérica gama llega a ser
negativo, implicaría que la fricción ocasiona oscilaciones de positivo a negativo respecto
de su dirección inicial con cada paso de tiempo, lo que contradice la física del
movimiento. Es decir, en este caso para no violar la física del sistema gama debe ser
siempre positivo, lo que equivale a hacer b=0 en los análisis anteriores, con lo cual para
estabilidad en a) Δt ≤ 1 / r , b) permanece igual, es decir siempre se satisface y en c)
Δt ≤ 2 /{[1 − α ] r}
En ocasiones la fricción tiene una expresión como la siguiente
dt u = − r | u n | u
Como la ecuación a resolver es d t u = − r u n +1 , si condición inicial u( t =0 ) = u0 , la solución
analítica ( n ≠ 0 ) sería
u(t ) = u0 /(1 + r n | u0n | t )1/ n
~ u0 [1 − r | u0n | t +
n +1
2
(r | u0n | t ) 2 − ... ]
Generalmente las discretizaciones correspondientes a las de arriba se realizan de la
siguiente manera
a) ut +1 = (1 − r | utn | Δt ) ut
b)
ut +1 = ut /(1 + r | utn | Δt )
~ ut [1 − r | utn | Δt + (r | utn | Δt ) 2 − ... ]
c) ut +1 = (1 − β r | utn | Δt ) ut /(1 + α r | utn | Δt )
y los análisis son idénticos a los anteriores pero ahora r → r | u tn |
El método de operadores para
conocer ut + Δt y por Taylor
d t u = − r u , con r=cte. Como dado ut
se quiere
ut + Δt = e Δt dt ut = (1 + Δt d t + 21! (Δtdt ) 2 + ...)ut
De la ecuación original se puede hacer la asignación d t = − r , entonces ut + Δt = e − r Δt ut
que en este caso es la ecuación analítica.
Si la ecuación hubiera sido d t u = − r | u n | u se podría pensar que en un paso de tiempo
n
pequeño se puede hacer la asignación d t = − r | u n | que conduciría a ut + Δt = e − r Δt |u| ut ,
si el exponente no es muy grande una aproximación de la exponencial es
e − x = 1− x + 21! x 2 − ..... ~ 1 /(1 + x) = 1 − x + x 2 − ... que produciría
ut + Δt = ut /[1 + rΔt | utn |] , que
en este caso coincide con la discretización b)
3
5
D = 1h [δ − 241 δ 3 + 640
δ 5 − 7168
δ 7 + ...]
D 2 = h12 [δ 2 − 121 δ 4 + 901 δ 6 − ...]
Ecuaciones parabólicas
Con el método de operadores
∂t T = L T
Caso unidmensional (1d)
Si el operador L es
L = a∂ 2x
se obtiene la ecuación unidimensional de difusión
2
x
∂ t T = a∂ T
a)-.- Un método explícito (1d) sería
T t +Δt = e Δt ∂t T = e Δt LT = (1 + Δt L + 21! (Δt L) 2 + ...)T
T t + Δt = {1 + Δt a∂ 2x + 21! Δt 2 a∂ 2x (a∂ 2x ) + ...}T
T t + Δt = {1 + Δt a∂ 2x + 21! Δt 2 a∂ 2x (a∂ 2x ) + ...}T
con r = a Δt / Δx 2 se discretizaría
T t + Δt = {1 + r[δ 2 − 121 δ 4 + ...] + 21! r 2 [δ 4 − 16 δ 6 + ...] + ...}T
T t + Δt = {1 + rδ 2 + 12 r (r − 121 )δ 4 + ...}T
a.1)-- generalmente se restringe a la primera aproximación T t +Δt = {1 + rδ 2 }T
Tkt + Δt = {1 + rδ 2 }Tkt
= Tk + r (Tk −1 − 2Tk + Tk +1 )
a.2)--Para análisis de estabilidad el método de Von Neuman, supone que la variable
discretizada se puede expresar en términos de una serie de Fourier de la forma
Tkt++sj Δt = ΣT γ s ei (α j ) , al sustituir uno de los términos se tendría
teniendo en cuenta que δ 2 → −4Sα2 / 2 ya que
δ 2T = Tk +1 − 2T + Tk −1 = (e i α − 2 + e −iα )T = 2(Cα − 1)T = −4Sα2 / 2T
γ = 1 − 4 r Sα2 / 2 )
La condición de estabilidad
− 1 ≤ γ = 1 − 4rS α2 / 2 ≤ 1
La desigualdad a la derecha se satisface, la de la izquierda solo si r ≤ 1 /(2 Sα2 / 2 ) ≤
1
2
b)-- Un método implícito (1d) sería
con α + β = 1
e −α Δt LT t +Δt = e β Δt LT
2
1
(1 − αΔt L + 2! (αΔt L) + ...)T t = (1 + βΔt L + 21! ( βΔt L) 2 + ...)T
{1 − αr[δ 2 − 121 δ 4 + ...] + 21! (αr ) 2 [δ 4 − 16 δ 6 + ...] + ...}T t = {1 + β r[δ 2 − 121 δ 4 + ...] + 21! ( β r ) 2 [δ 4 − 16 δ 6 + ...] + ...}T
{1 − αrδ 2 + 12 αr (αr + 121 )δ 4 + ...}T t = {1 + β rδ 2 + 12 β r ( β r − 121 )δ 4 + ...}T
b.1)-- Restricción a primera aproximación
{1 − αrδ 2 }T t = {1 + β rδ 2 }T
Tkt − α r (Tkt+1 − 2Tkt + Tkt−1 ) = Tk + β r (Tk +1 − 2Tk + Tk −1 )
(−α r ) Tkt+1 + (1 + 2α r )Tkt + (−α r ) Tkt−1 = Tk + β r (Tk +1 − 2Tk + Tk −1 )
Como se ve, conduce a la solución de un sistema tridiagonal
b.2)-- El análisis de estabilidad
γ [1 − α r (−4Sθ2/ 2 )] = [1 + β r (−4Sθ2/ 2 )]
El criterio de estabilidad: − 1 ≤ γ = [1 − 4β r Sθ2/ 2 ] /[1 + 4α r Sθ2 / 2 ] ≤ 1
la desigualdad de la izquierda conduce a
2 r Sθ2/ 2 [1 − 2α ] ≤ 1
si [1 − 2α ] > 0 r ≤ 1 /[2(1 − 2α ) Sθ2/ 2 ] ≤ 1 /[2(1 − 2α )]
si [1 − 2α ] ≤ 0 siempre se satisface ( → α ≥ 12 )
( →α ≤
1
2
)
b1.1) se puede obtener una aproximación implícita (1d) de 4orden de la siguiente
manera, como D 2 = h12 [δ 2 − 121 δ 4 + 901 δ 6 − ...] se propone para
e −α Δt LT t +Δt = e β Δt LT
(1 − αΔt L)T t = (1 + βΔt L)T
{1 − αr[δ 2 − 121 δ 4 ]}T t = {1 + β r[δ 2 − 121 δ 4 }T
{1 − αrδ 2 /(1 + 121 δ 2 )}T t = {1 + β rδ 2 /(1 + 121 δ 2 )}T
{1 − (αr − 121 ) δ 2 }T t = {1 + ( β r + 121 )δ 2 }T
T t − (αr − 121 )(Tk −1 − 2T + Tk +1 ) t = T + ( β r + 121 )(Tk −1 − 2T + Tk +1 )
− (αr − 121 )Tkt−1 + [1 + 2(αr − 121 )]T t − (αr − 121 )Tkt−1 = ( β r + 121 )Tk −1 + [1 − 2( β r + 121 )](Tk −1 + ( β r + 121 )Tk +1 )
Que es tridiagonal dominante si
(αr − 121 ) ≥ 0
b1.2) análisis de estabilidad
[1 + 4(αr − 121 ) Sθ2/ 2 ]γ = [1 − 4( β r + 121 ) Sθ2/ 2 ]
El criterio de estabilidad:
− 1 ≤ γ = [1 − 4( β r + 121 ) Sθ2/ 2 ] /[1 + 4(αr − 121 ) Sθ2/ 2 ] ≤ 1
La desigualdad a la izquierda
2rS θ2 / 2 (1 − 2α ) + 13 Sθ2 / 2 ≤ 1
si [1 − 2α ] > 0 r ≤ 1/[3(1 − 2α )]
( → α ≤ 12 )
si [1 − 2α ] ≤ 0 siempre se satisface ( → α ≥ 12 )
r (1 − 2α ) ≤ 13
Caso bidimensional
∂t T = L T
∂ t T = a (∂ 2x + ∂ 2y )T
a1)—Método explícito (2d)
Δt ( ∂ 2 + ∂ 2 )
= e x y T = {1 + Δt a(∂ 2x + ∂ 2y ) + 21! [Δta(∂ 2x + ∂ 2y )]2 + ...}T
T t +Δt = e Δt LT
a1.1)-- Restricción a primera aproximación
Tkt,+l Δt = {1 + r (δ x2 + δ y2 )}Tktl = Tk ,l + r (Tk −1,l − 2Tk ,l + Tk +1,l ) + r (Tk ,l −1 − 2Tk ,l + Tk ,l +1 )
Utilizando la notación donde solo se escribe el índice diferente a k ,l ,o t pero para
Δt → t , la ecuación anterior queda
T t = T + r (Tk −1 − 2T + Tk +1 ) + r (Tl −1 − 2T + Tl +1 )
a1.2)-- Análisis de estabilidad, suponiendo que
Tkt++is,lΔ+t j = ΣT γ s ei (θ i+σ j )
Recordando que δ 2 → −4Sα2 / 2 al sustituir en la ecuación discretizada se obtiene (se
esta suponiendo que Δy = Δx , rx = a Δt / Δx 2 = ry = a Δt / Δy 2 )
γ = 1 − 4r ( Sθ2/ 2 + Sσ2 / 2 )
− 1 ≤ γ = 1 − 4r ( Sθ2 / 2 + Sσ2 / 2 ) ≤ 1
El criterio de estabilidad
r ≤ 1 /[2( Sθ2/ 2 + Sσ2 / 2 )] ≤
1
4
a2) Método explícito(2d)
2
T t = e Δt ∂ x e
Δt ∂ 2y
conduce a que
(por propiedad de la exponencial se puede escribir )
T = [1 + Δta∂ 2x + 12 (Δta∂ 2x ) 2 + ...][1 + Δta∂ 2y + 12 (Δta∂ 2y ) 2 + ...]T
a2.1)-- Restricción a primera aproximación
Tkt,l = [1 + rδ x2 ][1 + rδ y2 ]Tk ,l = [1 + r (δ x2 + δ x2 ) + r 2δ x2δ y2 ]T
= [1 + r (δ x2 + δ y2 )T + r 2δ x2 (Tl −1 − 2T + Tl +1 )] = T + r (δ x2 + δ y2 )T + r 2 Σ1m=−1 (Tk −1 − 2T + Tk +1 ) l +m
= T + r (Tk −1 − 2T + Tk +1 ) + r (Tl −1 − 2T + Tl +1 ) + r 2 (Tk −1,l −1 + Tk +1,l −1 + Tk −1,l +1 + Tk +1,l +1 ) − 2r 2 (Tl −1 + Tl +1 + Tk −1 + Tk +1 − 2T )
= (1 − 4r + 4r 2 )T + (r − 2r 2 )(Tk −1 + Tk +1 + Tl −1 + Tl +1 ) + r 2 (Tk −1,l −1 + Tk +1,l −1 + Tk −1,l +1 + Tk +1,l +1 )
a2.2)—Estabilidad
Al sustituir una
onda
de
Fourier
en
Tkt +Δt = [1 + rδ x2 ][1 + δ y2 ]Tktl
se
obtiene
γ = [1 − 4rS θ2/ 2 ][1 − 4rS σ2 / 2 ]
El criterio de estabilidad es 0 ≤| [1 − 4r ]2 |≤| γ = [1 − 4rS θ2 / 2 ][1 − 4rS σ2 / 2 ]|≤ 1
− 1 ≤ 1 − 4r ≤ 1 o sea
Por lo que
r ≤ 12
Nótese que se puede hacer las iteraciones en 2 pasos es decir de
T t = [1 + rδ x2 ][1 + rδ y2 ]T
Se hace la asignación en el primer paso
T t * = [1 + rδ y2 ]T
y en el segundo
T t = [1 + rδ x2 ]T t *
Método implícito (2d)
a) De
T t +Δt = e Δt LT
se puede escribir
e
−α Δt ( ∂ 2x + ∂ 2y )
Tt = e
β Δt ( ∂ 2x + ∂ 2y )
T=
α + β =1
{1 − αΔt a(∂ 2x + ∂ 2y ) + 21! [αΔta(∂ 2x + ∂ 2y )]2 + ...}T t = {1 + βΔt a(∂ 2x + ∂ 2y ) + 21! [βΔta(∂ 2x + ∂ 2y )]2 + ...}T
a.1)—Restricción a primera aproximación
{1 − αΔt a(∂ 2x + ∂ 2y )}T t = {1 + βΔt a(∂ 2x + ∂ 2y )}T
{1 − α r (δ x2 + δ y2 )}T t = {1 + βr (δ x2 + δ y2 )}T
T t − αr (Tk −1 − 2T + Tk +1 ) t − αr (Tl −1 − 2T + Tl +1 ) t
= T + β r (Tk −1 − 2T + Tk +1 ) + β r (Tl −1 − 2T + Tl +1 )
(1 + 4αr )T t − αr (Tk −1 + Tk +1 ) t − αr (Tl −1 + Tl +1 ) t = (1 − 4βr )T t + βr (Tk −1 + Tk +1 ) t + βr (Tl −1 + Tl +1 ) t
Que es una matriz diagonal dominante
a.2)—Estabilidad
{1 + α r 4( Sθ2/ 2 + Sθ2/ 2 )}γ = {1 − β r 4( Sθ2/ 2 + Sθ2/ 2 )}
− 1 ≤ γ = [1 − β r 4( Sθ2 / 2 + Sθ2/ 2 )] /[1 + α r 4( Sθ2/ 2 + Sθ2/ 2 )] ≤ 1
Siguiendo el procedimiento análogo al caso unidimensional se llega a que se debe
cumplir
2 r ( Sθ2/ 2 + Sθ2/ 2 )[1 − 2 α ] ≤ 1
si [1 − 2α ] > 0
r ≤ 1 /[2 ( Sθ2/ 2 + Sθ2/ 2 )(1 − 2 α )] ≤ 1 /[4 [1 − 2 α ]]
si [1 − 2α ] ≤ 0 siempre se satisface ( α ≥ 12 )
a2)
puede
escribir
Lado
(1 + 4r + 4r 2 )T t − (r + 2r 2 )(Tk −1 + Tk +1 + Tl −1 + Tl +1 )t + r 2 (Tk −1,l −1 + Tk +1,l −1 + Tk −1,l +1 + Tk +1,l +1 )t
izq..
e −α
Como
Δt ∂ 2x
e
−α
Δt ∂ 2y
utilizando
T t = eβ
Δt ∂ 2x
e
β
Δt ∂ 2y
propiedad
de
la
exponencial
se
T
a2.1)-- Restricción a primera aproximación
[1 − α rδ x2 ][1 − α rδ y2 ]T t = [1 + β rδ x2 ][1 + β rδ y2 ]T
[1 − α r (δ x2 + δ x2 ) + α 2 r 2δ x2δ y2 ]T t = [1 + β r (δ x2 + δ x2 ) + β 2 r 2δ x2δ y2 ]T
No es diagonal dominante
Lado
(1 − 4r + 4r 2 )T + (r − 2r 2 )(Tk −1 + Tk +1 + Tl −1 + Tl +1 ) + r 2 (Tk −1,l −1 + Tk +1,l −1 + Tk −1,l +1 + Tk +1,l +1 )
a2)—Estabilidad
[1 + α r 4Sθ2/ 2 ][1 + α r 4Sσ2 / 2 ]γ = [1 − β r 4Sθ2 / 2 ][1 − β r 4Sσ2 / 2 ]
der.
La condición de estabilidad
0 ≤ |γ = [1 − β r 4Sθ2 / 2 ][1 − β r 4Sσ2 / 2 ] /{[1 + α r 4Sθ2/ 2 ][1 + α r 4Sσ2 / 2 ]}| ≤ 1
2r ( Sθ2/ 2 + Sσ2 / 2 )(1 − 2α ) − 16r 2 Sθ2/ 2 Sσ2 / 2 [(1 − α ) 2 + α 2 ] ≤ 1
Si se trataran por separado cada multiplicación se llegaría a
si [1 − 2α ] > 0
r ≤ 1 /[2 ( Sθ2/ 2 + Sθ2/ 2 )(1 − 2 α )] ≤ 1 /[4 [1 − 2 α ]]
si [1 − 2α ] ≤ 0 siempre se satisface ( α ≥ 12 )
direcciones alternas (2d)
a2)
Como
Δt ∂ 2x
utilizando
−α Δt ∂ 2y
propiedad
de
la
exponencial
se
puede
β Δt ∂ 2y
Δt ∂ 2x
e −α e
T t = eβ e
T
a2.1)-- Restricción a primera aproximación
[1 − α rδ x2 ][1 − α rδ y2 ]T t = [1 + β rδ x2 ][1 + β rδ y2 ]T
Se puede intentar resolverla de la siguiente manera (Peaceman-Rachford )
[1 − α rδ x2 ]T t * = [1 + β rδ y2 ]T
[1 − α rδ y2 ]T t = [1 + β rδ x2 ]T t *
si ∂ 2 → δ 2 /(1 + 121 δ 2 ) las formulas correspondientes hubieran sido
{1 − (αr − 121 ) δ x2 }T t * = {1 + (β r + 121 )δ y2 }T
{1 − (αr − 121 ) δ y2 }T t = {1 + (β r + 121 )δ x2 }T t *
Se puede también hacer la asignación
[1 − α rδ x2 ]T t * = [1 + β rδ x2 ][1 + β rδ y2 ]T
[1 − α rδ y2 ]T t = T t *
Localmente unidimensionales (2d)
( α∂ tT = a∂ 2xT
β ∂ tT = a∂ 2yT
α = β = 12 )
[1 − α rδ x2 ][1 − α rδ y2 ]T t = [1 + β rδ x2 ][1 + β rδ y2 ]T
[1 − α rδ x2 ]T t * = [1 + β rδ x2 ]T
[1 − α rδ y2 ]T t = [1 + β rδ y2 ]T t *
escribir
si se le asigna la letra V en vez de T
[1 − α rδ x2 ]V t * = [1 + β rδ x2 ]V
[1 − α rδ y2 ]V t = [1 + β rδ y2 ]V t *
sustituyendo
Vt *
[1 − α rδ y2 ]V t = [1 + β rδ y2 ][1 − α rδ x2 ]−1[1 + β rδ x2 ]V
[1 − α rδ y2 ]V t = [1 + β rδ y2 ][1 + β rδ x2 ]{[1 − α rδ x2 ]−1V = T }
2
x
V = [1 − α rδ ]T
[1 − α rδ y2 ][1 − α rδ x2 ]T t = [1 + β rδ y2 ][1 + β rδ x2 ]T
Que es la expresión del caso de direcciones alternas
es
decir
Descargar