Dr. Ricardo Méndez Fragoso $\mathbb{R}i\vec c \hbar$.
En las notas de la tarea de la página del curso, se encontró que el potencial que satisface la ecuación de Laplace $\nabla ^2 V = 0$ con condiciones a la frontera $V(0,y)=0$ y $V(x,0)=V(x,L_y)=V(L_x,y)=V_0$ se puede escribir como:
$$ V(x,y) = \frac{4V_0}{\pi} \sum ^{\infty} _{n=0} \frac{ \left\{ \sinh \left(\frac{2n+1}{L_y}\pi y\right) - \sinh \left( (2n+1)\pi \left(\tfrac{y}{L_y} -1 \right) \right) \right\} \sin\left(\frac{2n+1}{L_x}\pi x\right) + \sinh \left(\frac{2n+1}{L_x}\pi x\right) \sin\left(\frac{2n+1}{L_y}\pi y\right) }{(2n+1)\sinh \left((2n+1)\pi\right)} $$Este potencial se encontró utilizando el principio de superposición para un potencial diferente de cero en cada una de las paredes a $V_0$. Para ilustrar el potencial anterior y el campo eléctrico que éste genera utilizaremos las siguientes bibliotecas:
from pylab import *
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
%config InlineBackend.figure_format = 'retina' # solo para pantallas de alta definicion
Con las siguientes funciones se puede generar el potencial anterior.
def V_xy( x , y , N_max=15):
V = 0
for i in range(N_max):
V += ( ( sinh((2*i+1)*pi*y) - sinh((2*i+1)*pi*(y-1)) )*sin((2*i+1)*pi*x) +
sinh((2*i+1)*pi*x)*sin((2*i+1)*pi*y) ) / ( (2*i+1)*sinh((2*i+1)*pi) )
return V*(4/pi)
def Potencial_3D(X,Y,Z):
# comandos para graficar
fig = figure(figsize=(10, 7))
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.coolwarm,linewidth=0, antialiased=False)
ax.set_zlim(0, 1.),ax.set_xlabel('Eje $x/L_x$'),ax.set_ylabel('Eje $y/L_y$'),ax.set_zlabel('$V(x,y) / V_0$')
fig.colorbar(surf, shrink=0.5, aspect=7, cmap=plt.cm.coolwarm)
ax.view_init(30,40)
show()
x,y = linspace(0, 1, 200),linspace(0, 1, 200)
X,Y = meshgrid(x, y)
Z = V_xy(X, Y,60)
Potencial_3D(X,Y,Z)
Las equipotenciales se generan con las siguientes líneas de código:
def equipotenciales(X,Y,Z):
fig = plt.figure(figsize=(7, 7))
niveles = arange(0.1,1,0.1)
ax = fig.add_subplot(111)
equipotenciales = ax.contour(X, Y, Z,niveles,cmap=cm.coolwarm,linewidths=2)
ax.clabel(equipotenciales, fontsize=9, inline=1)
title('Equipotenciales de $V(x,y) / V_0)$'),xlabel('Eje $x/L_x$'),ylabel('Eje $y/L_y$')
ax.set_aspect('equal')
show()
equipotenciales(X,Y,Z)
El campo eléctrico $\vec E$ que genera el potencial anterior se calcula de la siguiente manera:
def campo_E_V_xy_1(x,y,N_max=15):
Ex,Ey = 0,0
for i in range(N_max):
Ex += ( ( sinh((2*i+1)*pi*y) - sinh((2*i+1)*pi*(y-1)) )*cos((2*i+1)*pi*x) +
cosh((2*i+1)*pi*x)*sin((2*i+1)*pi*y) ) / sinh((2*i+1)*pi)
Ey += ( ( cosh((2*i+1)*pi*y) - cosh((2*i+1)*pi*(y-1)) )*sin((2*i+1)*pi*x) +
sinh((2*i+1)*pi*x)*cos((2*i+1)*pi*y) ) / sinh((2*i+1)*pi)
return -4*Ex,-4*Ey
def graf_campo_E(x,y,Ex,Ey):
fig = plt.figure(figsize=(7, 7))
ax = fig.add_subplot(111)
ax.streamplot(X, Y, Ex,Ey,density=[1, 1])
title(r'Campo $\vec{E}$'),xlabel('Eje $x/L$'),ylabel('Eje $y/L$')
xlim([0,1]),ylim([0,1])
ax.set_aspect('equal')
show()
Ex,Ey = campo_E_V_xy_1(X,Y,50)
graf_campo_E(X, Y, Ex,Ey)
Como se puede apreciar, el campo eléctrico, $\vec E$, es muy parecido al que se encuentra en el notebook de la Ecuación de Laplace en coordenadas cartesianas (parte 1).
Regresar a la página del curso
Se agradece el apoyo de los proyectos DGAPA-PAPIME: