Método de manivela-Nicolson


En análisis numérico , el método de Crank-Nicolson es un método de diferencias finitas que se utiliza para resolver numéricamente la ecuación de calor y ecuaciones diferenciales parciales similares . [1] Es un método de segundo orden en el tiempo. Está implícito en el tiempo, puede escribirse como un método implícito de Runge-Kutta y es numéricamente estable . El método fue desarrollado por John Crank y Phyllis Nicolson a mediados del siglo XX. [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 pueden contener oscilaciones espurias (en desintegración) si la relación entre el paso de tiempo Δ t multiplicado por la difusividad térmica y el cuadrado del paso del espacio, Δ x 2 , es grande (normalmente, mayor que 1/2 por Análisis de estabilidad de Von Neumann ). Por esta razón, siempre que se necesitan grandes intervalos de tiempo o una alta resolución espacial, a menudo se utiliza el método de Euler hacia atrás menos preciso , que es estable e inmune a las oscilaciones. [ cita requerida ]

La plantilla Crank-Nicolson para un problema 1D

El método de Crank-Nicolson se basa en la regla trapezoidal , lo que proporciona una convergencia de segundo orden en el tiempo. Para las 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 implícito de Runge-Kutta de Gauss-Legendre , que también tiene la propiedad de ser un integrador geométrico . Por ejemplo, en una dimensión, suponga que la ecuación diferencial parcial es

Dejando y evaluado para y , la ecuación para el método de Crank-Nicolson es una combinación del método de Euler directo eny el método de Euler hacia atrás en n  + 1 (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 hacia atrás tiene una dependencia implícita de la solución):

Tenga en cuenta que este es un método implícito : para obtener el "siguiente" valor de u en el tiempo, se debe resolver un sistema de ecuaciones algebraicas. Si la ecuación diferencial parcial es no lineal, la discretización también será no lineal, por lo 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 en la difusión lineal, el problema algebraico es tridiagonal y puede resolverse eficientemente con el algoritmo de matriz tridiagonal , que da una rápida solución directa, a diferencia de la habitual para una matriz completa, en la que indica el tamaño de la matriz.

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

aplicando una discretización espacial de diferencias finitas para el lado derecho, la discretización de Crank-Nicolson se

o dejar ,

Dado que se conocen los términos del lado derecho de la ecuación, este es un problema tridiagonal , de modo quepuede resolverse de manera eficiente utilizando el algoritmo de matriz tridiagonal a favor de una 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 antes; Sin embargo, en algunos casos es posible linealizar el problema utilizando el valor anterior para, es decir, en vez de . Otras veces, es posible estimar utilizando un método explícito y mantener la estabilidad.

Esta es una solución que generalmente se emplea para muchos propósitos cuando existe un problema de contaminación en arroyos o ríos en condiciones de flujo constante, pero la información se proporciona en una sola dimensión. A menudo, el problema se puede simplificar en un problema unidimensional y aún así producir 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), una componente advectiva (lo que significa que el sistema está evolucionando en el espacio debido a un campo de velocidad), que elegimos como una constante Ux , y una interacción lateral entre canales longitudinales ( k ):

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

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

Ahora creamos las siguientes constantes para simplificar el álgebra:

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

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

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

Para resolver este sistema lineal de ecuaciones, ahora debemos ver 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 intervalo de tiempo actual,
: condición inicial del canal siguiente al analizado en el paso de tiempo actual.

Para la última celda de los canales ( z ), la condición más conveniente se convierte en adiabática, por lo que

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

Resolvamos este problema (en forma de matriz) para el caso de 3 canales y 5 nodos (incluida la condición de frontera inicial). Expresamos esto como un problema de sistema lineal:

dónde

Ahora debemos darnos cuenta de que AA y BB deben ser arreglos hechos de cuatro subarreglos 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 4 × 4 adicionales llenos de ceros. Tenga en cuenta que los tamaños de AA y BB son 12 × 12:

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

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

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

puede resolverse con la discretización de Crank-Nicolson de

asumiendo que se usa una cuadrícula cuadrada, de modo que . Esta ecuación se puede simplificar un poco reordenando los términos y usando el número CFL

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

Resolver un sistema lineal de este tipo no es práctico debido a la complejidad de tiempo extremadamente alta de resolver un sistema lineal por medio de la eliminación gaussiana o incluso el algoritmo de Strassen . Por tanto , se puede implementar un método implícito de dirección alterna para resolver el PDE numérico, mediante el cual una dimensión se trata implícitamente y otra dimensión explícitamente para la mitad del paso de tiempo asignado y, a la inversa, 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 verdadera solución de Crank-Nicolson y la solución aproximada de ADI tiene un orden de precisión dey por lo tanto puede ignorarse con un paso de tiempo suficientemente pequeño. [4]


Debido a que el método de Crank-Nicolson es implícito , generalmente es imposible resolver el futuro predicho cuando la ecuación diferencial no es lineal. En cambio, se debe utilizar una técnica iterativa para converger a la predicción. Una opción es utilizar el método de Newton para converger en 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 ser inviable calcular este jacobiano.

Una alternativa es definir un mapa, para el cual la predicción de Crank-Nicolson es un punto fijo. Las iteraciones inteligentes de este mapa podrían converger en una predicción válida. Tenga en cuenta que para los problemas no lineales, no se garantiza que la predicción exista o que sea única. Para tamaños de paso lo suficientemente pequeños, estas técnicas iterativas deberían tener éxito. Dejar dónde y . 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.

"> Reproducir medios
Una simulación dimensional de 128x128 de vórtices en una caja 2D, donde la integración numérica se realiza mediante Crank-Nicolson iterativo. Se necesitaron ~ 30 iteraciones en cada paso de tiempo para converger.

Debido a 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 valoración 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 valoración de opciones con el método de Crank-Nicolson.

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

  • Matemáticas financieras
  • Regla trapezoidal

  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. doi : 10.1017 / S0305004100023197 .
  3. ^ Thomas, JW (1995). Ecuaciones diferenciales parciales numéricas: métodos de diferencias finitas . Textos en Matemática Aplicada. 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 Informática . 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 del estudiante . Cambridge Univ. Prensa. ISBN 0-521-49789-2. Las matemáticas de los derivados financieros Wilmott.


  • Técnicas numéricas de PDE para científicos e ingenieros , conferencias de acceso abierto y códigos para PDE numéricas
  • Un ejemplo de cómo aplicar e implementar el método de Crank-Nicolson para la ecuación de Advección