Escribir la matriz de diferencia finita de la ecuación de Poisson con condiciones de contorno de Neumann

15

Estoy interesado en resolver la ecuación de Poisson utilizando el enfoque de diferencias finitas. Me gustaría entender mejor cómo escribir la ecuación matricial con las condiciones de contorno de Neumann. ¿Alguien revisaría lo siguiente, es correcto?

La matriz de diferencia finita

La ecuación de Poisson,

2tu(X)X2=re(X)

se puede aproximar mediante una ecuación matricial de diferencia finita,

1(ΔX)2METROtu^=re^

donde es un n × n matriz y u y d son 1 × n (columna) vectores,METROnorte×nortetu^re^1×norte

Matriz de diferencia finita de la ecuación de Poisson

Agregar una condición límite de Neumann

Una condición de límite de Neumann impone un flujo conocido en el límite (aquí lo aplicamos en el lado izquierdo donde el límite está en ),X=0 0

escribiendo esta condición límite como una diferencia finita centrada,

tu(X=0 0)X=σ

Error en la ecuación NÓTESE BIEN. Originalmente cometí un error aquí, firmé un error y no lo dividí por 2. Lo siguiente ha sido corregido.

tu2-tu0 02ΔX=σ

Tenga en cuenta la introducción de un punto de malla fuera del dominio original ( ). Este término puede eliminarse introduciendo la segunda ecuación, u 0 - 2 u 1 + u 2tu0 0

tu0 0-2tu1+tu2(ΔX)2=re1

La ecuación surge de tener más información debido a la introducción del nuevo punto de malla. Nos permite escribir la derivada doble de como el límite en términos de u 0 usando una diferencia finita centrada.tu1tu0 0

La parte de la que no estoy seguro

Combinando estas dos ecuaciones puede ser eliminado. Para mostrar el funcionamiento, primero reorganicemos lo desconocido,tu0 0

tu0 0=-2σΔX+tu2tu0 0=(ΔX)2re1+2tu1-tu2

Luego se ponen iguales y se reorganizan en la forma,

tu2-tu1(ΔX)2=re12+σΔX

tu(ΔX)2

Finalmente, usando esta ecuación como la primera fila de la matriz,

Ecuación de Poisson con una condición de contorno de Neumann en el lado izquierdo (corregida)

Algunas reflexiones finales

  1. ¿Es correcta esta matriz final?
  2. ¿Podría haber usado un mejor enfoque?
  3. ¿Hay una forma estándar de escribir esta matriz?
boyfarrell
fuente
2
2ΔXtu0 0=-σΔX+tu2
3
Esto se resuelve bastante bien en el texto de diferencias finitas de LeVeque , capítulo 2.
David Ketcheson
1
Estos problemas también están bien explicados en scientificpython.net/1/post/2013/01/…
Evgeni Sergeev
¿podría ver esto scicomp.stackexchange.com/questions/14306/…
usumdelphini

Respuestas:

1

tu0 0

Da un paso atrás y piensa en el problema por un segundo. Al especificar una ecuación de Laplace se afirma fundamentalmente que cada punto es el promedio de sus vecinos. Esto se visualiza comúnmente como una lámina de goma y me ayuda a pensar en estas cosas. (Poisson es similar con más o menos puntos elásticos)

Cuando especifica el valor de la superficie de la solución en los bordes más externos, está "fijando" la hoja en el espacio en esos puntos. Cuando especifica la hoja por su derivada en los bordes, hay varias soluciones que cumplen la ecuación que son traslaciones de la hoja en el espacio, manteniendo la misma forma real y, por lo tanto, derivadas.

tu0 0=0 0

meawoppl
fuente
1
Entonces, en general, la ecuación de Poisson se resuelve con al menos una condición límite de Dirichlet, de modo que se pueda encontrar una solución única. Supongo que tiene sentido que las condiciones de contorno de Neumann solo tengan sentido cuando se incluyen la fuente y los sumideros, de lo contrario, hay un número infinito de soluciones. Sin embargo, si tomo la ecuación de difusión, en algún momento se requieren condiciones de contorno de Neumann para la física correcta (por ejemplo, no hay flujo de la cantidad a través de un límite cuando du / dx = 0). Esto es lo que realmente me interesa. ¿Es el método anterior el enfoque correcto para aplicar BC Neumann?
boyfarrell
1
No puede aplicar BC Neumann en todos los lados de su documento. Si lo hace, no tendrá una solución única. Debe fijarse al menos en un lado.
vanCompute
@meawoppl: ¿Cómo se especifica el punto fijo al mismo tiempo que se resuelve una matriz directa?
jvriesem
Por lo general, solo asigna un punto a una constante, mediante el establecimiento de solo un término en una fila a 1, el resto a cero y un valor en el RHS que corresponde al plano de solución que desea ver.
meawoppl