dt = 1e-2;
mass = 1.0;
charge = 1.0;
n = 500;
v = [0, 1, 0];
x = [0, 0, 0];
B = [0, 0, 10];
E = [0, 0, 0];
omega = (charge .*B(3)) ./mass;
rL = v(2) ./omega;
fprintf('Cyclotron frequency is %4.2f \n',omega);
fprintf('Larmor radius is %4.2f \n',rL);
X = zeros(n,3);
V = zeros(n,3);
for time = 1:1:n
t = (charge./mass) .*(B .*0.5 .*dt);
s = (2 .*t) ./(1+ t.*t);
v_minus = v + (charge./mass) .*(E .*0.5 .*dt);
v_prime = v_minus + cross(v_minus,t);
v_plus = v_minus + cross(v_prime,s);
v = v_plus + (charge./mass) .*(E .*0.5 .*dt);
x = x + v .*dt;
X(time,:) = x;
V(time,:) = v;
end
figure;
plot(X(:,1),X(:,2),'k','Linewidth',2); hold on;
set(gca,'TickLabelInterpreter','Latex','Fontsize',14)
ylabel('$ y / d_{\rm p} $','Interpreter','Latex','Fontsize',14);
xlabel('$ x / d_{\rm p} $','Interpreter','Latex','Fontsize',14);