带电粒子在匀强电场中的运动(忽略重力)

注:本BLOG用于水论文!!!

       请勿参考!!!

       请勿抄袭!!!

物理模型-理论推导-公式分析

首先,把小球轨迹参数方程(普适方程)列出:

x=vtcos(u)+eqt^2/2m

y=vtsin(u)

z=0

此时受力分析,力与加速度,加速度与位移这样一步一步的推导显得多么尴尬......

将基本前置库引用,定义普适:

import math
from math import pi
import numpy as np
def x(u,v,t):
    x = v*t * np.cos(u)+e*q*t*t/2/m
    return x
def y(u,v,t):
    y = v*t* np.sin(u)
    return y
def z(u,v,t):
    z = 0
    return z

我们要知道,在重力忽略的情况下,也有三种情况

1.带点粒子速度方向与电场方向平行:

带点粒子速度方向与电场方向平行

 带电粒子只受电场力的作用,将做匀加速直线运动,最终效果是这样的(因为blender和3Dsmax都没有学明白,就不丢人了):

2.带电粒子初速度与电场方向垂直:

带电粒子初速度与电场方向垂直

 带电粒子将受到电场力作用,带电粒子将做抛体运动,作用力由电场力提供。最终效果是这样的:

 3.带电粒子与场强方向几何位置不特殊(非平行垂直):

 带电粒子的初始速度方向与电场强度方向即不平行又不垂直,这时,可以把带电粒子入射电场的速度overrightarrow{v}分解为两个分速度,一个是与电场力相互平行的分速度overrightarrow{v_/_/} ,一个是与电场力相互垂直的分速度overrightarrow{v_perp },这样,在电场中,overrightarrow{v_/_/}是匀速加速直线, overrightarrow{v_perp }是匀速直线运动,合运动为类抛体运动。最终效果是这样的:

接下来对带点粒子的参数和磁场的属性做一下定义和规范:质量m=1,带电量q=1,场强e=10,初速度大小v=10,根据情况引入不同的入射角度u。因为使用到MATLAB,所以需要引入均分计算函数以产生两点间的N个行线性矢量(logspace也行但是显然脱裤子放屁),就用0-10,步进0.02吧,这样可以让图像更细节一些或许。

t = np.linspace(0,10,500)
m = 1
q = 1
v = 10
e = 10

是时候让精简,便易的Matplotlib显得多么优越,我个人看来它可以算个不错的前置,或者说是...matlab的简化包?不论如何,是时候利用它了hiahiahia(๑•̀ㅂ•́)و

刚好要用到:mpl_toolkits.mplot3d这个工具包,我就偷懒将他们解释在一起了,这时候先创建一张画像:

from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
#这回够高清了叭
fig = plt.figure(dpi=350,frameon=True)

需要创建一个3D项目,所以需要加上一行

ax1 = plt.axes(projection='3d')
plt.show()

如此一来,就生成了这样的图像:

 一看,这哪行啊,不说曲线没有,起码坐标轴得有叭,安排上:

#记得塞在PLT.SHOW()前面
ax1.set_zlabel('Z')
ax1.set_ylabel('Y')
ax1.set_xlabel('X')

 每临绝境 蜂回路又转~

 这样,X-Y-Z轴标识不就装上了么,接下来就是把角度带入普适了,这个操作一通带入就好了,所以我就不一一展示了。

当入射方向和电场方向平行时,我用蓝色呈现出来;

当入射方向和电场方向垂直时,我用绿色呈现出来;

当入射方向和电场方向无特殊几何关系(代码中用-30度表示)时,我用红色色呈现出来:

#当入射方向和电场方向平行时:
u1 = 0
xl = x(u1,v,t)
yl = y(u1,v,t)
zl = z(u1,v,t)
print(t)
print(xl)
print(yl)
print(zl)
ax1.plot3D(xl,yl,zl,"blue")

#当入射方向和电场方向垂直时:
u2 = pi/2
x2 = x(u2,v,t)
y2 = y(u2,v,t)
z2 = z(u2,v,t)
print(t)
print(x2)
print(y2)
print(z2)
ax1.plot3D(x2,y2,z2,"green")

#当入射方向和电场方向呈现-30度时:
u3=-pi/6
x3 = x(u3,v,t)
y3 = y(u3,v,t)
z3 = z(u3,v,t)
print(t)
print(x3)
print(y3)
print(z3)
ax1.plot3D(x3,y3,z3,"red")

 最后只需要改动代码位置顺序让它变得好看一点就可以了!!!(请确保先后关系,不要无脑易位)

然后,保存生成,就获得了它:

 结论

emmm...PS.再次强调请不要借鉴抄袭,本文学术成分很低,都是动动脚趾头就可以学明白的,不多献丑,仅供参考(还只是不受重力作用的)

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>