He aquí una descripción de cómo resolver la ecuación de laplace para una arbitraria 2-D cuadrícula con las condiciones de contorno mediante el llamado "método de iteración":
Inicialización:
Crear una matriz de M que representa cada punto de la cuadrícula, con una entrada por cada "pixel". Así, por ejemplo, para trabajar con un 7×7 cuadrícula, debemos establecer
M=[0000000000000000000000000000000000000000000000000]
Nosotros, a continuación, establezca permanente de las condiciones de contorno que no se cambien a medida que mejoramos nuestra aproximación. Para obtener algún tipo de circular, podríamos establecer
M=[1111111110001110000011000001100000111000111111111]
La negrita entradas permanecen constantes, mientras que el resto se actualizará a medida que mejoramos nuestra aproximación.
Nosotros, a continuación, normalmente se pone en algunos distinto de cero valor inicial para cada punto del terreno, con solo una aproximación. Por ejemplo, en este caso se podría poner
M=[1111111110.660.660.661110.660.330.330.330.66110.660.3300.330.66110.660.330.330.330.661110.660.660.66111111111]
Ahora estamos listos para comenzar el proceso iterativo
Iteración:
Lo que tenemos ahora (y justificará más adelante, tal vez) es el hecho de que en un 2D plano donde ϕ es una función de la satisfacción de
∇2ϕ=∂2ϕ∂x2+∂2ϕ∂y2=0
el siguiente es aproximadamente verdadera:
Supongamos que ϕ(x0,y0)=ϕ0
Deje Δx Δy ser "suficientemente pequeño" y definir:
ϕx+=ϕ(x0+Δx,y0)ϕx−=ϕ(x0−Δx,y0)ϕy+=ϕ(x0,y0+Δy)ϕy−=ϕ(x0,y0−Δy)
Entonces tenemos
ϕ0≈14(ϕx++ϕx−+ϕy++ϕy−)
En otras palabras, podríamos calcular el potencial en un punto por el promedio de los potenciales de las vecinas cuatro puntos. Nosotros hacemos exactamente que, mediante la mejora de los valores a medida que se vaya.
Para nuestra matriz M, vamos a empezar con la primera cambiante punto en la esquina superior izquierda.
ϕ2,3=14(ϕ2,4+ϕ2,1+ϕ1,3+ϕ3,3)=0.25⋅(0.66+1+1+0.33)=0.7475
La nueva matriz
M=[1111111110.74750.660.661110.660.330.330.330.66110.660.3300.330.66110.660.330.330.330.661110.660.660.66111111111]
De hecho, si sabemos que vamos a estar utilizando una configuración simétrica, podemos hacer las cosas más eficientes mediante la actualización de todos los puntos que tienen el mismo resultado. Es decir, que podríamos actualización de M para obtener
M=[1111111110.74750.660.74751110.74750.330.330.330.7475110.660.3300.330.66110.74750.330.330.330.74751110.74750.660.7475111111111]
Podríamos continuar con el siguiente punto
ϕ2,4=0.25⋅(0.7475+0.7475+1+0.33)=0.5194
Y actualización de la matriz en consecuencia
M=[1111111110.74750.51940.74751110.74750.330.330.330.7475110.51940.3300.330.5194110.74750.330.330.330.74751110.74750.51940.7475111111111]
Proceder de tal manera, hasta que cada valor cambiable se actualiza una vez (en este caso, que se llevará a 4 pasos si usted toma ventaja de la simetría, 20 si no hacen estas simplificaciones), a continuación, repita. Hacer esto lo suficiente, y, finalmente, las actualizaciones no cambia significativamente el valor. Cuando eso sucede, usted ha llegado a la final de la aproximación y puede detener el proceso. Ahora usted tiene una solución aproximada a la ecuación de Laplace, dadas las condiciones de contorno de su matriz.
Un método similar a este es el método de relajación, que es más rápido para sistemas con relativamente pocos píxeles y un poco más precisa.
EDITAR:
He encontrado esta derivación de la iteración del método (al parecer, también conocido como el método de diferencias finitas) si desea una justificación matemática para el proceso.