
はじめに
一様な電磁場空間中の荷電子にはどのような力が働くのだろうか?それは、電場からの力と磁場からの力である。今回は両方の力が働いた場合、荷電子はどのような運動をするのか以下の記事と同様な方法を用いることで、シミュレーションしてみる。
運動方程式
一様な電磁場空間にはたらく力は、電場Eと磁場Bによって表せるので、質量m、電荷qの荷電子の運動方程式は以下のように表すことができる。
ゆえに、加速度ベクトルaは以下のように表すことができる。
これによって、速度ベクトルvと位置ベクトルxを求めることができるか考察する。
荷電子の位置と速度
次に、加速度ベクトルと速度ベクトル、位置ベクトルの関係について考察する。以下時刻tにおいて微小時間⊿tが経過した場合のそれぞれのパラメータの変化について考察すると以下のようになる。
(ただし、微小区間では、速度と加速度の変化は無視できるほど小さいものとする)
位置の変化
速度の変化
この操作をt=0からt=tの時まで繰り返し行うことによってシミュレーションが可能となるはずである。
プログラム
さて、以上のことから、三次元空間での荷電子の運動をシミュレーションするPythonプログラムは以下のようになる。
import numpy as np import matplotlib.pyplot as plt #パラメータ B=np.array([0,0,1]) E=np.array([0,1,0]) q=1.0 m=1.0 #初期条件 (x,v,a)=(位置,速度,加速度) x=np.array([1,0,0]) #斜め上に発射 v=np.array([0,1,1]) #a=np.array([-1,0,0]) #3次元のグラフ(散布図)を描くための設定 fig = plt.figure() ax = fig.add_subplot(projection='3d') #初期時間 t=0 #微小時間の時間間隔(小さくするほど精度は上がるが計算時間が比例して増大する) delta_t=0.01 while(t<10): #ローレンツ力によって生じる加速度,cross(v,B)はvとBの外積である a=-(q/m)*np.cross(v, B)+q*E/m #速度の微小変化 v=v+a*delta_t #位置の微小変化 x=x+v*delta_t #時間の更新 t=t+delta_t #print(x) #粒子の位置を記録 ax.scatter(x[0], x[1], x[2], color='blue') #グラフを保存する plt.savefig("rasen-houbutusen.png") #グラフの表示 plt.show()
これを実行すると以下のような画像が出力されるはずである。
これは、なんとも複雑な軌跡である。このような複雑な軌跡をイメージすることは人間の頭では難しいのでコンピュータの力を借りるという手もあることを覚えておこう。話は変わるが、数学の四色問題もコンピュータの力を借りて証明したらしい。
まとめ
コンピュータの力を借りることによって、三次元の電磁場空間中の荷電子の運動についてシミュレーションすることができるか試みた。その結果、らせん運動と放物線運動を合わせたような複雑な運動をすることが分かった。このような複雑な運動を調べるために、人間は1つずつ項を固定しないと考えることができないが、コンピュータの力を借りることによって、計算量は跳ね上がるがシミュレーションが可能である場合も存在するということが分かった。ただし、このような一つの荷電子のシミュレーションでさえ数分の時間を要するので、複数の粒子や分子を扱う際には、ある程度の近似計算をコンピュータに対しても使用しないと現実的な計算時間に収まらなくなってしまうという問題も出てくるであろう。
コメント