Craga en movimiento

electrostatica-4
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

electrostatica-7
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):