stringtranslate.com

Método de Crank-Nicolson

En el análisis numérico , el método de Crank-Nicolson es un método de diferencias finitas utilizado para resolver numéricamente la ecuación del calor y ecuaciones diferenciales parciales similares . [1] Es un método de segundo orden en el tiempo. Es implícito en el tiempo, se puede escribir como un método Runge-Kutta implícito y es numéricamente estable . El método fue desarrollado por John Crank y Phyllis Nicolson en la década de 1940. [2]

Para las ecuaciones de difusión (y muchas otras ecuaciones), se puede demostrar que el método de Crank-Nicolson es incondicionalmente estable . [3] Sin embargo, las soluciones aproximadas aún pueden contener oscilaciones espurias (en descomposición) si la relación entre el paso de tiempo por la difusividad térmica y el cuadrado del paso de espacio, , es grande (normalmente, mayor que 1/2 según el análisis de estabilidad de Von Neumann ). Por esta razón, siempre que se necesitan pasos de tiempo grandes o una alta resolución espacial, a menudo se utiliza el método de Euler inverso menos preciso , que es estable e inmune a las oscilaciones. [ cita requerida ]

Principio

La plantilla de Crank-Nicolson para un problema 1D

El método de Crank-Nicolson se basa en la regla trapezoidal , que proporciona una convergencia de segundo orden en el tiempo. Para ecuaciones lineales, la regla trapezoidal es equivalente al método del punto medio implícito [ cita requerida ] —el ejemplo más simple de un método de Runge-Kutta implícito de Gauss-Legendre— que también tiene la propiedad de ser un integrador geométrico . Por ejemplo, en una dimensión, supongamos que la ecuación diferencial parcial es

Si se evalúa para y , la ecuación para el método de Crank-Nicolson es una combinación del método de Euler directo en y del método de Euler inverso en (tenga en cuenta, sin embargo, que el método en sí no es simplemente el promedio de esos dos métodos, ya que la ecuación de Euler inverso tiene una dependencia implícita de la solución):

Obsérvese que este es un método implícito : para obtener el "próximo" valor de en el tiempo, se debe resolver un sistema de ecuaciones algebraicas. Si la ecuación diferencial parcial no es lineal, la discretización también será no lineal, de modo que avanzar en el tiempo implicará la solución de un sistema de ecuaciones algebraicas no lineales, aunque las linealizaciones son posibles. En muchos problemas, especialmente la difusión lineal, el problema algebraico es tridiagonal y puede resolverse de manera eficiente con el algoritmo de matriz tridiagonal , que proporciona una solución directa rápida , a diferencia de la habitual para una matriz completa, en la que indica el tamaño de la matriz.

Ejemplo: difusión 1D

El método de Crank-Nicolson se aplica a menudo a problemas de difusión . Por ejemplo, para la difusión lineal,

Aplicando una discretización espacial de diferencias finitas para el lado derecho, la discretización de Crank-Nicolson es entonces

o, dejando ,

Dado que se conocen los términos del lado derecho de la ecuación, este es un problema tridiagonal , por lo que puede resolverse de manera eficiente utilizando el algoritmo de matriz tridiagonal en lugar de la inversión de matriz mucho más costosa .

Una ecuación cuasilineal, como (este es un ejemplo minimalista y no general)

conduciría a un sistema no lineal de ecuaciones algebraicas, que no podría resolverse fácilmente como se indicó anteriormente; sin embargo, en algunos casos es posible linealizar el problema utilizando el valor antiguo de , es decir, en lugar de . En otras ocasiones, puede ser posible realizar una estimación utilizando un método explícito y mantener la estabilidad.

Ejemplo: difusión 1D con advección para flujo constante, con conexiones de múltiples canales

Esta es una solución que se suele emplear para muchos propósitos cuando existe un problema de contaminación en arroyos o ríos en condiciones de caudal constante, pero la información se proporciona solo en una dimensión. A menudo, el problema se puede simplificar a un problema unidimensional y aun así proporcionar información útil.

Aquí modelamos la concentración de un contaminante soluto en el agua. Este problema se compone de tres partes: la ecuación de difusión conocida ( elegida como constante), un componente advectivo (que significa que el sistema está evolucionando en el espacio debido a un campo de velocidad), que elegimos como constante , y una interacción lateral entre canales longitudinales ( ):

donde es la concentración del contaminante, y los subíndices y corresponden al canal anterior y siguiente .

El método Crank-Nicolson (donde representa la posición y el tiempo) transforma cada componente de la EDP en lo siguiente:

Ahora creamos las siguientes constantes para simplificar el álgebra:

y sustituimos ( 2 ), ( 3 ), ( 4 ), ( 5 ), ( 6 ), ( 7 ), y en ( 1 ). Luego colocamos los nuevos términos de tiempo a la izquierda ( ) y los términos de tiempo presente a la derecha ( ) para obtener

Para modelar el primer canal, nos damos cuenta que solo puede estar en contacto con el siguiente canal ( ), por lo que la expresión se simplifica a

De la misma manera, para modelar el último canal, nos damos cuenta que solo puede estar en contacto con el canal anterior ( ), por lo que la expresión se simplifica a

Para resolver este sistema lineal de ecuaciones, debemos ver ahora que las condiciones de contorno deben darse primero al comienzo de los canales:

: condición inicial para el canal en el paso de tiempo actual,
: condición inicial para el canal en el siguiente paso de tiempo,
: condición inicial del canal anterior al analizado en el paso de tiempo actual,
: condición inicial para el canal siguiente al analizado en el paso de tiempo actual.

Para la última celda de los canales ( ), la condición más conveniente pasa a ser adiabática, por lo que

Esta condición se cumple si y solo si (independientemente de un valor nulo)

Resolvamos este problema (en forma matricial) para el caso de 3 canales y 5 nodos (incluida la condición de contorno inicial). Lo expresamos como un problema de sistema lineal:

dónde

Ahora debemos darnos cuenta de que AA y BB deben ser matrices compuestas de cuatro submatrices diferentes (recuerde que solo se consideran tres canales para este ejemplo, pero cubre la parte principal discutida anteriormente):

donde los elementos mencionados anteriormente corresponden a las siguientes matrices y un 4×4 adicional lleno de ceros. Tenga en cuenta que los tamaños de AA y BB son 12×12:

El vector d se utiliza aquí para contener las condiciones de contorno. En este ejemplo, es un vector 12×1:

Para encontrar la concentración en cualquier momento, se debe iterar la siguiente ecuación:

Ejemplo: difusión 2D

Al extenderse a dos dimensiones en una cuadrícula cartesiana uniforme , la derivación es similar y los resultados pueden conducir a un sistema de ecuaciones de banda diagonal en lugar de tridiagonales . La ecuación de calor bidimensional

se puede resolver con la discretización de Crank-Nicolson de

Suponiendo que se utiliza una cuadrícula, de modo que . Esta ecuación se puede simplificar un poco reorganizando los términos y utilizando el número CFL

En el esquema numérico de Crank-Nicolson, no se requiere un número CFL bajo para la estabilidad, pero sí para la precisión numérica. Ahora podemos escribir el esquema como

Resolver un sistema lineal de este tipo es costoso. Por lo tanto, se puede implementar un método implícito de dirección alternada para resolver la EDP numérica, mediante el cual una dimensión se trata implícitamente y la otra dimensión explícitamente para la mitad del paso de tiempo asignado y viceversa para la mitad restante del paso de tiempo. El beneficio de esta estrategia es que el solucionador implícito solo requiere un algoritmo de matriz tridiagonal para ser resuelto. La diferencia entre la solución verdadera de Crank-Nicolson y la solución aproximada de ADI tiene un orden de precisión de y, por lo tanto, se puede ignorar con un paso de tiempo suficientemente pequeño. [4]

Crank-Nicolson para problemas no lineales

Debido a que el método de Crank-Nicolson es implícito , generalmente es imposible resolverlo con exactitud. En cambio, se debe utilizar una técnica iterativa para converger a la solución. Una opción es utilizar el método de Newton para converger a la predicción, pero esto requiere el cálculo del jacobiano . Para un sistema de alta dimensión como los de la dinámica de fluidos computacional o la relatividad numérica , puede que no sea factible calcular este jacobiano.

Una alternativa libre de jacobianos es la iteración de punto fijo . Si es la velocidad del sistema, entonces la predicción de Crank-Nicolson será un punto fijo del mapa. Si la iteración del mapa no converge, el mapa parametrizado , con , puede comportarse mejor. En forma expandida, la fórmula de actualización es

donde es la estimación actual y es el paso de tiempo anterior.

Incluso para sistemas de alta dimensión, la iteración de este mapa puede converger sorprendentemente rápido.

Solución numérica de las ecuaciones de Navier-Stokes en forma de vorticidad. En este caso, era necesaria la iteración de punto fijo de Crank-Nicolson para que convergiera.

Aplicación en matemáticas financieras

Dado que se pueden modelar varios otros fenómenos con la ecuación de calor (a menudo llamada ecuación de difusión en matemáticas financieras ), el método de Crank-Nicolson también se ha aplicado a esas áreas. [5] En particular, la ecuación diferencial del modelo de fijación de precios de opciones de Black-Scholes se puede transformar en la ecuación de calor y, por lo tanto, se pueden obtener soluciones numéricas para la fijación de precios de opciones con el método de Crank-Nicolson.

La importancia de esto para las finanzas es que los problemas de fijación de precios de opciones, cuando se extienden más allá de los supuestos estándar (por ejemplo, incorporando dividendos cambiantes), no se pueden resolver en forma cerrada, pero se pueden resolver utilizando este método. Sin embargo, tenga en cuenta que para las condiciones finales no suaves (que ocurren para la mayoría de los instrumentos financieros), el método de Crank-Nicolson no es satisfactorio ya que las oscilaciones numéricas no se amortiguan. Para las opciones vainilla , esto da como resultado una oscilación en el valor gamma alrededor del precio de ejercicio . Por lo tanto, son necesarios pasos especiales de inicialización de amortiguación (por ejemplo, el método de diferencia finita completamente implícito).

Véase también

Referencias

  1. ^ Tuncer Cebeci (2002). Transferencia de calor por convección. Saltador. ISBN 0-9668461-4-1.
  2. ^ Crank, J.; Nicolson, P. (1947). "Un método práctico para la evaluación numérica de soluciones de ecuaciones diferenciales parciales del tipo de conducción de calor". Proc. Camb. Phil. Soc . 43 (1): 50–67. Bibcode :1947PCPS...43...50C. doi :10.1017/S0305004100023197. S2CID  16676040.
  3. ^ Thomas, JW (1995). Ecuaciones diferenciales parciales numéricas: métodos de diferencias finitas . Textos de matemáticas aplicadas. Vol. 22. Berlín, Nueva York: Springer-Verlag . ISBN. 978-0-387-97999-1.El ejemplo 3.3.2 muestra que Crank-Nicolson es incondicionalmente estable cuando se aplica a .
  4. ^ "Problemas parabólicos multidimensionales" (PDF) . Departamento de Ciencias de la Computación . RPI . Consultado el 29 de mayo de 2016 .
  5. ^ Wilmott, P.; Howison, S.; Dewynne, J. (1995). Las matemáticas de los derivados financieros: una introducción para estudiantes . Cambridge Univ. Press. ISBN 0-521-49789-2. Las matemáticas de los derivados financieros Wilmott.


Enlaces externos