绘图F= Kq1q2r3F=Kq1q2r3在蟒蛇

计算科学 Python 麻木的 电磁学 绘图
2021-12-09 05:29:58

我试图通过库仑定律绘制出氢原子中电子的位置, F=Kq1q2r3

这是mi代码

    import numpy as np
import matplotlib.pyplot as plt

def coulomb(re, v0):

    #Set parameters:
    N = 500      
    dt = 2.2222222 / N  # Time Step:

    #Create an array, for all variables, of size N with all entries equal to zero:
    xe = np.zeros((N,))
    ye = np.zeros((N,))
    vxe = np.zeros((N,))
    vye = np.zeros((N,))

    # Initial Conditions:
    xe[0] = re                   # (x0 = r, y0 = 0) 
    vye[0] = v0                    #units in m/s^2

    #Implement Verlet Algorithm:
    for k in range(0, N-1):
        re = (xe[k]*2+ye[k]*2)*0.5
        vxe[k+1] = vxe[k] - ((mu * xe[k]) / (re**3)) * dt 
        xe [k+1] = xe[k] + vxe[k+1]*dt
        vye[k+1] = vye[k] - ((mu * ye[k]) / (re**3)) * dt 
        ye [k+1] = ye[k] + vye[k+1]*dt

     #Plot:
    xi = plt.plot(xe, ye, 'go', markersize = 1)
    plt.plot(0,0,'yo')                  # yellow marker
    plt.plot(xe[0],0,'bo')  # dark blue marker
    plt.axis('equal')
    plt.xlabel ('x')
    plt.ylabel ('y')

    return xi, xe, ye


# average distance electron-nucleus in meter
r = 5.1e-11
k = 8.9e9
mu = r*3 * 4 * k *np.pi*2  # coulomb parameter 

coulomb(r, np.sqrt(mu / r));

这很好用,我尝试在 l 中更改 Permittivity 的值,但图表变成了只有 2 个点(xe 和 vye 的值保持不变)而不是圆形轨道,我不知道这是为什么?有时候是这样的

在此处输入图像描述

1个回答

开普勒定律,或的简单插入,说明对于中心场的圆形轨道角速度 这就是的方式。轨道周期为 插入作为编码给出您的采样率不够高。或者您需要将积分时间减少到大约以在两个周期内积分。z(t)=reiωtrz¨=μz|z|3ω

r3ω2=μ.
(0,μ/r)(r,0)
T=2πω=2πr3/μ.
μ=k·4π2·r3T=k1/2=1.06·1052.2·105


但最重要的是,在您使用要计算幂的运算符的任何地方检查您的代码和公式,**目前有很多地方只有一个乘号。

在此处输入图像描述

维修线路:

re = (xe[k]**2+ye[k]**2)**0.5
mu = k * r**3 * 4 * np.pi**2  # coulomb parameter