想当爷爷的孙子 2020-05-05 15:24 采纳率: 66.7%
浏览 304
已采纳

洛伦兹公式的数值实验,用python的jupyterbook写

python
洛伦兹公式中。

(1)只有均匀磁场情况下,粒子运动轨迹。

(2)均匀电场和磁场(二者相互垂直),粒子运动轨迹。

电场,电荷分布,初始条件等等自己定。

比如每隔0.01秒,算一次加速度,一次速度,一次坐标,计算10秒的吧
(**能明显看出粒子运动轨迹的形状**)图片说明

看不懂问题可以问问,希望帮忙写写代码,我还不会自己写代码。

  • 写回答

2条回答 默认 最新

  • 吃鸡王者 2020-05-06 14:34
    关注
    import  numpy as np
    from matplotlib import pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    
    
    p0=np.array([0,0,0]) # 初始位置 m 
    v0=np.array([1,0,1])  #初速度    m/s
    m=1   #  粒子质量   kg
    e=np.array([0,1,0]) # 电场强度 N/c
    b=np.array([0,0,3])  # 磁感应强度 T
    q=1                 # 电荷量  C
    ts=0.01         # 步长 s
    t=10       #      总的模拟时间  s
    
    
    #  匀强电场和磁场  所以加速度和位置无关
    def step(p0,v0,e,b,q):
        global ts
    
        f=e*q+q*(np.cross(v0,b))
        a=f/m
        p=p0+v0*ts+a*ts**2/2
        v=v0+a*ts
    
        return  p,v
    
    
    res1=[]
    res1.append(p0.tolist())
    res2=[]
    res2.append(p0.tolist())
    
    p,v=p0,v0
    for i in  range(int(t/ts)):
        p,v=step(p,v,0,b,q)
        res1.append(p.tolist())
    
    res1=np.array(res1) 
    
    fig=plt.figure()
    ax1 = fig.add_subplot(121,projection='3d')
    ax1.scatter3D(res1[:,0],res1[:,1],res1[:,2])
    ax1.set_xlabel('x')
    ax1.set_ylabel('y')
    ax1.set_zlabel('z')
    ax1.set_title('1')
    
    p,v=p0,v0
    for i in  range(int(t/ts)):
        p,v=step(p,v,e,b,q)
        res2.append(p.tolist())
    res2=np.array(res2)
    ax2 = fig.add_subplot(122,projection='3d')
    ax2.scatter3D(res2[:,0],res2[:,1],res2[:,2])
    ax2.set_xlabel('x')
    ax2.set_ylabel('y')
    ax2.set_zlabel('z')
    ax2.set_title('2')
    plt.show()
    
    

    因为近视将每步长之间看成匀变速运动,所以模拟结果和理论结果又一定的偏差,但这是使用步长这种方法不可避免的,希望代码能帮助到你。
    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 像这种代码要怎么跑起来?
  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件