¿Cuál es una explicación introductoria del método de diferencias finitas y cómo se puede usar para resolver la ecuación de calor 1D?

En el cálculo, aprendimos que [matemáticas] \ frac {\ partial u} {\ partial x} [/ matemáticas] es el cambio en u, ([matemáticas] \ Delta u [/ matemáticas]) dividido por el cambio en x ([ matemática] \ Delta x [/ matemática]) tomada bajo un límite de [matemática] \ Delta x [/ matemática] pequeña. En el método de diferencia finita, utilizamos varias técnicas para calcular [math] \ Delta u [/ math] y [math] \ Delta x [/ math] en términos de valores de u y x que ya conocemos.

Suponga que desea calcular la distribución de temperatura de una varilla con el tiempo. Comience con su ecuación diferencial. Usaré una ecuación de onda.
[matemáticas] \ frac {\ partial u} {\ partial t} = \ frac {\ partial u} {\ partial x} [/ matemática]
Haz la aproximación de diferencia finita. Divide el dominio en algunos puntos. Usar más puntos teóricamente dará resultados más precisos.
[matemáticas] \ frac {\ Delta u} {\ Delta t} \ approx \ frac {\ Delta u} {\ Delta x} [/ matemáticas]
Supongamos que estamos tratando de resolver la ecuación en el tiempo t y la ubicación x. Conocemos la temperatura en todas partes en la barra en el momento t. (Por ejemplo, podríamos tener [math] t = 0 [/ math] en cuyo caso la distribución de temperatura es solo la condición inicial). Para esta demostración, sustituiré en los valores [math] \ Delta u [/ math] con derivación. Los coeficientes se forman usando interpolaciones polinómicas (como la serie de Taylor) de la función u y algo de álgebra. Obtener estos coeficientes en general es un tema en sí mismo.
[matemáticas] \ frac {u (x, t + \ Delta t) -u (x, t)} {\ Delta t} = \ frac {u (x + \ Delta x, t) -u (x, t)} { \ Delta x} [/ matemáticas]
Defina [matemáticas] D = \ frac {u (x + \ Delta x, t) -u (x, t)} {\ Delta x} [/ matemáticas].
Con algunos cambios podemos obtener
[matemáticas] u (x, t + \ Delta t) = u (x, t) + \ Delta t D [/ matemáticas]
Como sabemos exactamente u como una función de x para el tiempo t, podemos obtener directamente [math] u (x, t + \ Delta t) [/ math]. Repita esto en cada ubicación x para obtener un valor actualizado de u en cada punto.

¿Qué sucede si queremos saber la temperatura en otro momento como [math] t + 2 \ Delta t [/ math]? Simplemente aplique el mismo proceso de forma iterativa. Por ejemplo, deje que [math] t2 = t + \ Delta t [/ math]. Use el método anterior para resolver la temperatura durante el tiempo t2. Podemos ver que [math] t + 2 \ Delta t [/ math] es equivalente a [math] t2 + \ Delta t [/ math]. Ya tenemos un método para resolver la temperatura en un momento [matemático] \ Delta t [/ matemático] posterior al tiempo conocido, por lo que podemos repetir el método anterior usando t2 en lugar de t.

ediciones: limpiaron algunas de las ecuaciones

Utilicé esta respuesta en otra pregunta pero:

la ecuación de calor en 1 dimensión se puede escribir: u_t = u_xx (en el que u es una función de xyt y x es algún subconjunto de la línea real y t es típicamente los reales positivos) por (u (t + dt) – u (t)) / dt = (u (x + dx, t) + u (x-dx, t) -2u (x, t)) / dx ^ 2 que se puede reorganizar como:
u (x, t + dt) = u (x, t) + [dt / dx ^ 2] (u (x + dx, t) + u (x-dx, t) -2u (x, t))

donde ahora se entiende que x y t toman valores discretos en alguna cuadrícula.
Para resolverlo en función del tiempo, simplemente itera.

El siguiente es un pseudocódigo razonable:

Bucle con el tiempo

Haz esto por todo lo que yo:
unew (i) = uold (i) + [dt / dx ^ 2] (uold (i + 1) + uold (i-1) -2 uold (i))
uold = desigual

bucle final

donde ahora “i” está indexando el espacio y desigual y uold dan las soluciones (aproximadas) en dos puntos de tiempo vecinos.

Para que la ecuación anterior sea “estable” es necesario que dt / dx ^ 2 <1/2.
Las condiciones de contorno y los valores iniciales también deben especificarse.

La aproximación de diferencia finita da una aproximación u_approx (x, t) a la solución verdadera que puede converger a la solución verdadera como dx y dt -> 0 siempre que dx ^ 2 / dt <1/2.