多粒子问题一:单个粒子在电磁叠加场的运动仿真

序言

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值