I have to simulate the motion of particle in an electromagnetic device which deflects particle using electric and magnetic field.(adsbygoogle = window.adsbygoogle || []).push({});

Those field are arranged in such a way that the electric field is inside the magnetic one. Moreover the electrodes begin at the center of the magnetic field ad their end is a bit outside the coils.

The motion equations are:

1) d^2x(z)/dz^2 = qE/mv^2

2) d^2y(z)/dz^2 = qB/mv

The problem is that MatLab cannot solve second order differential equation, thus I have tried to use the code:

For the drift after the field I have calculated the derivative of the trajectory and used it as initial condition for solving the eqaution of motion in the drift sector.Code (Text):

%%Initial drift

rhsE1=@(z,x)[x(2); 0];

[zaE1, xaE1] = ode45(rhsE1, [0 69], [0 0]);

%%inside E field

E=1;

rhsE =@(z,x)[x(2); (q/m)*(E/v^2)];

[zaE, xaE] = ode45(rhsE, [70 130], [0 0]);

I have also write a similar code for the magnetic field.

The problem is that solving the equation separately doesn't seem to me correct because one solution could be longer than the other...

I have also tryed to solve the lorentz force using the code:

and some "while" loop like:Code (Text):

%%%%

f = @(t,y) [y(4:6); (q_over_m).*cross(y(4:6),B)+(q_over_m).*E];

[t,y] = ode23t(f,tspan,y0);

%%%

and so on...Code (Text):

%%%

while (z>= length at which B begins || z<= length atwhich the electric field begins)

B=[1 0 0]';

E = [0 0 0]';

solve the equation

z=y(end,3);

end

%%%%%

The problem is that the code is incredibly slow and sometimes, I think, it cannot get out of a loop.

I think I have used bad approaches to solve the problem, someone can give me a clue?

**Physics Forums | Science Articles, Homework Help, Discussion**

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# [MatLab] Motion of Particle in a spatially varying electromagnetic field

**Physics Forums | Science Articles, Homework Help, Discussion**