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