多粒子問題一:單個粒子在電磁疊加場的運動仿真

序言

Precondition

A proton is placed in A uniform magnetic field B,with magnitude 1.2 *10^(-3) T,under combined influence of a uniform electric field of magnitude E = 1.65 * 10^6 N/C

Part 1

the simplest model-- Motion of the single particle

E = 0.3;    %決定粒子往x軸運動的情況
B = 0.65;   %決定粒子往y軸旋轉的情況
x = zeros(1,100);
y = zeros(1,100);
vx = zeros(1,100);
vy = zeros(1,100);
t = zeros(1,100);
vx(1) = 1;
%vy(1) = 1;
dt = 0.01;
i = 1;
kappa = 9.6;
while i<round(10/dt)     %保證變量時間t不超過10
    vx(i+1) = vx(i) + ...%歐拉迭代法先走半步,在中點處計算函數值
        dt*kappa*(E - (vy(i)+dt*0.5*kappa*vx(i)*B)*B);    
    vy(i+1) = vy(i) + ...
        dt*kappa*(vx(i) + dt*0.5*kappa*(E - vy(i)*B))*B; %同上
    x(i+1) = x(i) + dt*vx(i+1);
    y(i+1) = y(i) + dt*vy(i+1);
    t(i+1) = t(i) + dt;
    i = i + 1;
end

粒子的運動軌跡如下圖

粒子運動軌跡

Part2

單步法(Euler’s Method)

溫故而知新,簡單說明一下吧!
一般地,單步法可以有如下公式表示
yn+1=yn+hf(tn,yn) y_{n+1} = y_n+hf(t_n,y_n)
上述計算方法最大問題是無法進行誤差分析,也就是說通過調整步長hh來獲得需要的精度值

模擬中點法(midpoint analogue)

s1=f(tn,yn)s2=f(tn+h/2,yn+h/2s1)yn+1=yn+hs2 s_1 = f(t_n,y_n) \\s_2 = f(t_n+h/2,y_n+h/2s_1) \\y_{n+1} = y_n+hs_2

模擬梯形法(trapezoid analogue)

s1=f(tn,yn)s2=f(tn+h,yn+hs2)yn+1=yn+h(s2+s1)/2 s_1 = f(t_n,y_n) \\s_2 = f(t_n+h,y_n+hs_2) \\y_{n+1} = y_n+h(s_2+s_1)/2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章