Parcial 1: Visualizacion del campo de una carga puntual

electrostatica-3

http://manza.space/wp-content/uploads/2026/01/electrostatica-3.pdf

import numpy as np
import matplotlib.pyplot as plt

# Posición de la carga (en el origen)
x_q = 0
y_q = 0

# Crear la figura
#plt.figure(figsize=(5, 5))

# Dibujar la carga
plt.scatter(x_q, y_q, s=100, marker='o',color='r')
#plt.text(x_q + 0.05, y_q + 0.05, 'q', fontsize=12)

# Configuración del plano
plt.axhline(0,color='k')   # eje x
plt.axvline(0,color='k')   # eje y
plt.xlim(-2, 2)
plt.ylim(-2, 2)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Carga puntual en el origen')

# Mantener proporciones iguales
plt.gca().set_aspect('equal')

# Guardar figura
plt.savefig('carga_puntual_origen.png', dpi=300, bbox_inches='tight')
plt.show()

plt.grid(True)
plt.show()
electrostatica-4

http://manza.space/wp-content/uploads/2026/01/electrostatica-4.pdf

import numpy as np
import matplotlib.pyplot as plt

# -----------------------------
# Parámetros físicos
# -----------------------------
k = 1.0
q = 1.0

# Posición de la carga
x_q = 0.0
y_q = 0.0

# -----------------------------
# Dominio espacial (Nx definido)
# -----------------------------
xmin = -2.0
xmax =  2.0
Nx   =  10

ymin = -2.0
ymax =  2.0
Ny   =  10

dx = (xmax - xmin) / (Nx - 1)
dy = (ymax - ymin) / (Ny - 1)

# -----------------------------
# Prealocar arreglos
# -----------------------------
X  = np.zeros(Nx * Ny)
Y  = np.zeros(Nx * Ny)

n = 0
for j in range(Ny):
    y = ymin + j * dy
    for i in range(Nx):
        x = xmin + i * dx


        X[n] = x
        Y[n] = y

        n = n+1
plt.scatter(X,Y)
plt.gca().set_aspect('equal')

# Guardar figura
plt.savefig('a6_01.png', dpi=300, bbox_inches='tight')
plt.show()

plt.grid()
electrostatica-5

http://manza.space/wp-content/uploads/2026/01/electrostatica-5.pdf

import numpy as np
import matplotlib.pyplot as plt

# -----------------------------
# Parámetros físicos
# -----------------------------
k = 1.0
q = 1.0

# Posición de la carga
x_q = 0.0
y_q = 0.0

# -----------------------------
# Dominio espacial (Nx definido)
# -----------------------------
xmin = -2.0
xmax =  2.0
Nx   =  10

ymin = -2.0
ymax =  2.0
Ny   =  10

dx = (xmax - xmin) / (Nx - 1)
dy = (ymax - ymin) / (Ny - 1)

# -----------------------------
# Prealocar arreglos
# -----------------------------
X  = np.zeros(Nx * Ny)
Y  = np.zeros(Nx * Ny)

n = 0
for j in range(Ny):
    y = ymin + j * dy
    for i in range(Nx):
        x = xmin + i * dx


        X[n] = x
        Y[n] = y

        n = n+1


Ex = np.zeros(Nx * Ny)
Ey = np.zeros(Nx * Ny)

# -----------------------------
# Cálculo punto a punto
# -----------------------------
n = 0
for j in range(Ny):
    y = ymin + j * dy
    for i in range(Nx):
        x = xmin + i * dx

        Rx = x - x_q
        Ry = y - y_q
        R  = np.sqrt(Rx*Rx + Ry*Ry)

        if R != 0.0:
            Ex[n] = k * q * Rx / (R*R*R)
            Ey[n] = k * q * Ry / (R*R*R)
        else:
            Ex[n] = 0.0
            Ey[n] = 0.0

        n =n+1

plt.quiver(X, Y, Ex, Ey)
plt.xlim(-3,3)
plt.ylim(-3,3)
plt.grid()


# Guardar figura
plt.savefig('a6_02.png', dpi=300, bbox_inches='tight')
plt.show()