import numpy as np
import matplotlib.pyplot as plt
# parametros
q = 1
k = 1
v = 0.8
x0 = -4
y0 = 0
# dominio
x = np.linspace(-5,5,120)
y = np.linspace(-5,5,120)
X,Y = np.meshgrid(x,y)
# tiempo
ti = 0
tf = 6
Nt = 98
dt = (tf-ti)/Nt
for i in range(Nt):
t = ti + i*dt
# posicion de la carga
xq = x0 + v*t
yq = y0
# potencial
R = np.sqrt((X-xq)**2 + (Y-yq)**2 + 0.05)
V = k*q/R
plt.figure()
plt.contourf(X,Y,V,40,cmap='plasma')
plt.plot(xq,yq,'wo') # posicion de la carga
plt.xlim(-5,5)
plt.ylim(-5,5)
plt.gca().set_aspect('equal')
plt.title("t = {:.2f}".format(t))
if i < 10:
plt.savefig("potencial0{}.png".format(i))
else:
plt.savefig("potencial{}.png".format(i))
plt.close()
parametros

import numpy as np
import matplotlib.pyplot as plt
# -----------------------
# parametros fisicos
# -----------------------
q = 1
k = 1
v = 0.8 # velocidad de la carga
x0 = -4 # posicion inicial
y0 = 0
# -----------------------
# dominio espacial
# -----------------------
x = np.linspace(-5,5,25)
y = np.linspace(-5,5,25)
X, Y = np.meshgrid(x,y)
# -----------------------
# parametros temporales
# -----------------------
ti = 0
tf = 6
Nt = 120
dt = (tf-ti)/Nt
# -----------------------
# loop temporal
# -----------------------
for i in range(Nt):
t = ti + i*dt
xq = x0 + v*t
yq = 0
Rx = X - xq
Ry = Y - yq
r2 = Rx**2 + Ry**2
r2[r2 < 0.05] = 0.05
r3 = r2**1.5
Ex = k*q*Rx/r3
Ey = k*q*Ry/r3
plt.figure()
plt.quiver(X,Y,Ex,Ey)
plt.plot(xq,yq,'ro')
plt.xlim(-5,5)
plt.ylim(-5,5)
plt.title("t = {:.2f}".format(t))
if i < 10:
plt.savefig("campo00{}.png".format(i))
elif i < 100:
plt.savefig("campo0{}.png".format(i))
else:
plt.savefig("campo{}.png".format(i))
plt.close()
q

= 1
k = 1
v = 0.8
x0 = -4
y0 = 0
dominio
x = np.linspace(-5,5,120)
y = np.linspace(-5,5,120)
X,Y = np.meshgrid(x,y)
tiempo
ti = 0
tf = 6
Nt = 98
dt = (tf-ti)/Nt
for i in range(Nt):