亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SciPy ODE 求解器忽略函數

SciPy ODE 求解器忽略函數

墨色風雨 2022-07-26 10:18:45
我正在嘗試讓 Scipy 的 ODE 求解器求解洛倫茲力微分方程。它不能用 B 場分量正確求解方程,因為無論我做多大的 E 場,它都會完全忽略它(這也是我知道它忽略它的原因)。為什么是這樣?我也已經嘗試過修改 E-field 功能上的標志。代碼:import numpy as npimport pylabfrom scipy.integrate import odeintimport matplotlib.pyplot as plt#import randomimport mpl_toolkits.mplot3d.axes3d as p3#Mirroring Angle to RecreateThetaMirror = 40TStep = 1TFinal = 10P0 = [0.,0.02,0.]V0 = [1,0,0]t = np.linspace(0,TFinal,num=(TFinal/TStep))#Physical/Natural Constantsq_e = -1m_e = 1QeMe = q_e/m_eu0 = 1#MathICs = np.concatenate((P0,V0),axis=0)def BField(x,y,z):    Bx = 0    By = 0    Bz = 1    BVec = np.array([Bx,By,Bz])    return BVecdef EField(x,y,z):    Ex = 0    Ey = 0    Ez = 2.8E8*z**4    EVec = np.array([Ex,Ey,Ez])    return EVecdef LorentzForce(PosVel,t,Constants):    x,y,z,vx,vy,vz = PosVel    Ex,Ey,Ez,Bx,By,Bz,QeMe = Constants    EFInput = np.array([Ex,Ey,Ez])    BFInput = np.array([Bx,By,Bz])    VelInput = np.array([vx,vy,vz])    Accel = QeMe * (EFInput + np.cross(VelInput, BFInput))       LFEqs = np.concatenate((VelInput, Accel), axis = 0)    return LFEqsEx,Ey,Ez = EField(P0[0],P0[1],P0[2])Bx,By,Bz = BField(P0[0],P0[1],P0[2])#Ex = Ey = Ez = 0AllConstantInputs = [Ex,Ey,Ez,Bx,By,Bz,QeMe]ParticleTrajectory = odeint(LorentzForce, ICs, t, args=(AllConstantInputs,))print(ParticleTrajectory)print(Bz)fig = plt.figure()particleplot = fig.add_subplot(111,projection='3d')particleplot.plot(ParticleTrajectory[:, 0],ParticleTrajectory[:, 1],ParticleTrajectory[:, 2],'b')particleplot.set_xlabel('x axis')particleplot.set_ylabel('y axis')particleplot.set_zlabel('z axis')particleplot.legend(loc='best')particleplot.grid()plt.show()
查看完整描述

1 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

你定義P0[2] = 0.. 電場函數計算Ez = 2.8E8*z**4。因此,python 沒有忽略 E-field 函數,您自己將其 z 分量置零:z = P0[2] = 0.



查看完整回答
反對 回復 2022-07-26
  • 1 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號