序言
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)
温故而知新,简单说明一下吧!
一般地,单步法可以有如下公式表示
y
n
+
1
=
y
n
+
h
f
(
t
n
,
y
n
)
y_{n+1} = y_n+hf(t_n,y_n)
yn+1=yn+hf(tn,yn)
上述计算方法最大问题是无法进行误差分析,也就是说通过调整步长
h
h
h来获得需要的精度值
模拟中点法(midpoint analogue)
s 1 = f ( t n , y n ) s 2 = f ( t n + h / 2 , y n + h / 2 s 1 ) y n + 1 = y n + h s 2 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 s1=f(tn,yn)s2=f(tn+h/2,yn+h/2s1)yn+1=yn+hs2
模拟梯形法(trapezoid analogue)
s 1 = f ( t n , y n ) s 2 = f ( t n + h , y n + h s 2 ) y n + 1 = y n + h ( s 2 + s 1 ) / 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 s1=f(tn,yn)s2=f(tn+h,yn+hs2)yn+1=yn+h(s2+s1)/2