5 votos

Solución de la ecuación de Laplace para el potencial eléctrico

Estoy tratando de simular un rayo en un lenguaje de programación y empecé a leer cómo se puede hacer, y me pareció que podría llevarse a cabo mediante el Laplaciano de Crecimiento del Modelo. Mi experiencia con las matemáticas es limitado.

Creo que he entendido el algoritmo descrito aquí en la sección 4.1. Mi problema es que no sé cómo resolver la ecuación de Laplace para el rayo modelo visto en (b) un Rayo de configuración.

Traté de coger algo de aquí , pero que la configuración es un rectángulo y el rayo de configuración que parece un triángulo o tal vez un arco circular.

Sé que mis condiciones de frontera sería el potencial en el origen y el potencial en el suelo, pero yo realmente no sé cómo traducir esto en lenguaje matemático y cómo resolver el de laplace.

Me pueden ayudar con una solución (junto con una explicación) o un tutorial "para dummies"?

10voto

Jukka Dahlbom Puntos 1219

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\times 7$ cuadrícula, debemos establecer $$ M = \begin{bmatrix} 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix} $$ 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 = \begin{bmatrix} \mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1\\ \mathbf1 & \mathbf1 & 0 & 0 & 0 & \mathbf1 & \mathbf1\\ \mathbf1 & 0 & 0 & 0 & 0 & 0 & \mathbf1\\ \mathbf1 & 0 & 0 & \mathbf0 & 0 & 0 & \mathbf1\\ \mathbf1 & 0 & 0 & 0 & 0 & 0 & \mathbf1\\ \mathbf1 & \mathbf1 & 0 & 0 & 0 & \mathbf1 & \mathbf1\\ \mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 \end{bmatrix} $$ 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 = \begin{bmatrix} \mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1\\ \mathbf1 & \mathbf1 & 0.66 & 0.66 & 0.66 & \mathbf1 & \mathbf1\\ \mathbf1 & 0.66 & 0.33 & 0.33 & 0.33 & 0.66 & \mathbf1\\ \mathbf1 & 0.66 & 0.33 & \mathbf0 & 0.33 & 0.66 & \mathbf1\\ \mathbf1 & 0.66 & 0.33 & 0.33 & 0.33 & 0.66 & \mathbf1\\ \mathbf1 & \mathbf1 & 0.66 & 0.66 & 0.66 & \mathbf1 & \mathbf1\\ \mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 \end{bmatrix} $$

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 $2$D plano donde $\phi$ es una función de la satisfacción de $$ \nabla^2\phi=\frac{\partial^2\phi}{\partial x^2}+\frac{\partial^2\phi}{\partial y^2}=0 $$ el siguiente es aproximadamente verdadera: Supongamos que $\phi(x_0,y_0)=\phi_0$ Deje $\Delta x$ $\Delta y$ ser "suficientemente pequeño" y definir: $$ \phi_{x^+}=\phi(x_0+\Delta x,y_0)\\ \phi_{x^-}=\phi(x_0-\Delta x,y_0)\\ \phi_{y^+}=\phi(x_0,y_0+\Delta y)\\ \phi_{y^-}=\phi(x_0,y_0-\Delta y) $$ Entonces tenemos $$ \phi_0 \approx \frac14(\phi_{x^+}+\phi_{x^-}+\phi_{y^+}+\phi_{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.

$$ \begin{align} \phi_{2,3} &=\frac14(\phi_{2,4}+\phi_{2,1}+\phi_{1,3}+\phi_{3,3}) \\&= 0.25\cdot(0.66 + 1 + 1 + 0.33) \\&= 0.7475 \end{align} $$

La nueva matriz

$$ M = \begin{bmatrix} \mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1\\ \mathbf1 & \mathbf1 & 0.7475 & 0.66 & 0.66 & \mathbf1 & \mathbf1\\ \mathbf1 & 0.66 & 0.33 & 0.33 & 0.33 & 0.66 & \mathbf1\\ \mathbf1 & 0.66 & 0.33 & \mathbf0 & 0.33 & 0.66 & \mathbf1\\ \mathbf1 & 0.66 & 0.33 & 0.33 & 0.33 & 0.66 & \mathbf1\\ \mathbf1 & \mathbf1 & 0.66 & 0.66 & 0.66 & \mathbf1 & \mathbf1\\ \mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 \end{bmatrix} $$ 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 = \begin{bmatrix} \mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1\\ \mathbf1 & \mathbf1 & 0.7475 & 0.66 & 0.7475 & \mathbf1 & \mathbf1\\ \mathbf1 & 0.7475 & 0.33 & 0.33 & 0.33 & 0.7475 & \mathbf1\\ \mathbf1 & 0.66 & 0.33 & \mathbf0 & 0.33 & 0.66 & \mathbf1\\ \mathbf1 & 0.7475 & 0.33 & 0.33 & 0.33 & 0.7475 & \mathbf1\\ \mathbf1 & \mathbf1 & 0.7475 & 0.66 & 0.7475 & \mathbf1 & \mathbf1\\ \mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 \end{bmatrix} $$

Podríamos continuar con el siguiente punto $$ \phi_{2,4}=0.25\cdot(0.7475+0.7475+1+0.33)= 0.5194 $$ Y actualización de la matriz en consecuencia

$$ M = \begin{bmatrix} \mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1\\ \mathbf1 & \mathbf1 & 0.7475 & 0.5194 & 0.7475 & \mathbf1 & \mathbf1\\ \mathbf1 & 0.7475 & 0.33 & 0.33 & 0.33 & 0.7475 & \mathbf1\\ \mathbf1 & 0.5194 & 0.33 & \mathbf0 & 0.33 & 0.5194 & \mathbf1\\ \mathbf1 & 0.7475 & 0.33 & 0.33 & 0.33 & 0.7475 & \mathbf1\\ \mathbf1 & \mathbf1 & 0.7475 & 0.5194 & 0.7475 & \mathbf1 & \mathbf1\\ \mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 &\mathbf1 \end{bmatrix} $$

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.

3voto

mathreadler Puntos 3517

Hmm.. tal vez soy yo 2 años tarde a la fiesta, pero qué diablos.

También se puede plantear esto como un Global de Optimización Lineal. La configuración de una matriz de $L_2$ norma problema de minimización: $$\min({\bf v})\left\{{\bf C}\|{\bf v}\|_2 + \|{\bf L(v+d)}\|_2\right\}$$ where $\bf C$ contains a binary diagonal matrix mask like the one nomnom called "boundary condition", the $\bf d$ is a vectorization of boundary condition values. So $\bf v+d$ is the result, and the $\bf L$ es una representación de la matriz del operador laplaciano, normalmente algunos adecuado discretos filtro. Primer término castiga a los cambios de las condiciones de contorno. En segundo término castiga laplaciano de resultado de las diferentes de 0.


Así que ¿por qué molestarse en hacer todo esto, en lugar de simplemente tomar el primer esquema numérico podemos encontrar? Esto es debido a que es muy conveniente en el marco de si queremos ataque más grande y más que involucren problemas. No hay límite en cuanto a cómo muchos de los términos podemos tener y podemos tener ningún tipo de limitaciones que nos gusta tanto como podemos expresarlas como matriz de las operaciones sobre los datos. También como existen tantos métodos numéricos para resolver lineal optimizaciones que no están restringidas a un determinado método numérico, pero se puede utilizar todo el arsenal de la linealidad de las técnicas de resolución.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X