Método de Crank-Nicolson

En el campo del análisis numérico, el método de Crank-Nicolson es un método de diferencias finitas usado para la resolución numérica de ecuaciones en derivadas parciales, tales como la ecuación del calor.

El método fue desarrollado por John Crank y Phyllis Nicolson a mediados del siglo XX.

[2]​ Para ecuaciones difusivas (y para muchos otros tipos de ecuaciones), puede demostrarse que el método de Crank–Nicolson es incondicionalmente estable.

[3]​ Sin embargo, las soluciones aproximadas pueden aún contener algunas oscilaciones espurias (decrecientes) si el ratio entre el paso de tiempo y el cuadrado de la malla en espacio es grande (típicamente, mayor que 1/2).

Por este motivo, siempre que sean necesarios pasos de tiempo grande o pequeñas mallas espaciales, puede considerarse el uso del método de Euler implícito, que es a la vez estable e inmune a oscilaciones (aunque es de menor orden).

El método de Crank–Nicolson se basa en diferencias centrales en espacio y en la Regla del trapecio en tiempo, resultando así en un método con convergencia de segundo orden en tiempo.

Por ejemplo en una dimensión, si la ecuación en derivadas parciales es:

, la ecuación para el método de Crank–Nicolson es una combinación del método de Euler implícito y el método de Euler explícito en la etapa de tiempo n + 1 (obsérvese que, sin embargo, el método en sí no es simplemente la media de estos dos métodos, puesto que la ecuación depende implícitamente de la solución): La función F debe ser discretizada espacialmente mediante diferencias centrales.

Si la ecuación en derivadas parciales no es lineal, la discretización tampoco lo será, de forma que para avanzar en tiempo resultará necesario resolver un sistema de ecuaciones algebraicas no lineales, siendo necesario emplear para ello algún tipo de método numérico.

En muchos casos, especialmente en el de difusión lineal, el sistema de ecuaciones algebraicas tiene asociada una matriz tridiagonal y puede ser resuelto eficientemente mediante algoritmos adaptados a este tipo de matrices, que son de orden

El método de Crank–Nicolson se usa a menudo en problemas difusivos.

Por ejemplo, en el caso de difusión lineal, cuya discretización mediante Crank–Nicolson es: o, tomando

puede ser resuelto mediante métodos mucho más eficientes.

Sin embargo, si introducimos una ecuación no sea lineal como la siguiente (una ecuación cuasi-lineal): aun tratándose de un ejemplo minimalista y no general, éste conduce a un sistema de ecuaciones algebraicas no líneas que no puede ser resuelto tan fácilmente como el anterior.

Aun así, en algunos casos es posible "linealizar" el problema, usando el valor de

mediante un método explícito y, a la vez, mantener la estabilidad.

Cuando se extiende a dos dimensiones en una malla Cartesiana, el método se deduce de forma similar y el resultado conduce de nuevo a un sistema de ecuaciones algebraicas con matriz banda.

Por ejemplo, la ecuación del calor bidimensional: puede resolverse mediante una discretización de Crank–Nicolson: suponiendo que se usa una malla cuadrada en la que

Esquema de Crank–Nicolson para un problema 1D.