我试图将积分计算为点的总和。这是我的代码的重要部分:
我定义了一个数组:
x = np.arange(-3,3,0.0223)
对于这个数组,我想定义一个函数shell_charge,它将我定义为shell的内部位的值相加为r< = x
def piecew(x):
inside_shell = np.where(r <= x)
shell_charge = np.sum(dq[inside_shell])
^^这就是我想要理解和解决的问题
conds = [x == 0, (x >= -0.5) & (x <= 0.5), (x > 0.5) & (x < -0.5)]
funcs = [lambda x: 0.0, lambda x: k * shell_charge * (x)**-2,
lambda x: k * total_charge * (x+0.5)**-2.]
return np.piecewise(x, conds, funcs)
xx = np.linspace(-3, 3, 1000)
plt.plot(xx,piecew(xx))
plt.title("electric field along the x-axis")
plt.xlabel("x position [m]")
plt.ylabel("mag(E) [N/C]")
plt.show()
我对使用数组非常陌生,我不知道如何做到这一点,我真的很感激任何帮助。