Lente magnética
La forma de la sección del solenoide se representa mediante una línea negra cuyo interior es de color rosa. Consta de tres segmentos, una línea horizontal de longitud H en la parte inferior, otra vertical en la parte derecha y la función y=f(x) a determinar a la izquierda.
La intensidad de la corriente que recorre el solenoide se indica mediante flechas en la figura, el campo magnético es perpendicular al plano de la espira y apunta hacia el lector de acuerdo con la regla de la mano derecha

Para representar parte de la figura, se ha empleado el código
yp=0.5;
xp=1.5;
H=1;
r=1.75;
f=@(x) yp-r+sqrt(r^2-(H-x).^2)-(H-x)*(xp-H)./sqrt(r^2-(H-x).^2);
xx=linspace(0,H,50);
yy=f(xx);
hold on
fill([xx,H,H],[yy,f(H),f(0)],[1 0.5 0.8])
x=0.2;
y=f(x);
line([-0.5,x],[y,y],'color','k')
phi=asin((H-x)/r);
fplot(@(t) x+r*sin(t), @(t) y-r*cos(t)+r,[0,phi], 'k')
fplot(@(t) x+r*sin(t), @(t) y-r*cos(t)+r,[-phi-pi/24,phi+pi/6], 'k',
'lineStyle','--')
plot(x,y+r,'bo','markersize',3,'markerfacecolor','b')
y_H=y+r-sqrt(r^2-(H-x)^2);
m=(H-x)/sqrt(r^2-(H-x)^2);
g=@(x) m*(x-H)+y_H;
fplot(g,[H,xp],'k')
plot(xp,yp,'ro','markersize',3,'markerfacecolor','r') %centro
hold off
% xlim([0,1.5])
xlabel('x')
ylabel('y')
title('Lente magnética')
axis equal
Cuando la partícula de masa m y carga q entra en el solenoide en la posición x1, f( x1) expriementa una fuerza , que la hace describir un movimiento circular uniforme de radio r

Aplicando la dinámica del movimiento circular uniforme
La partÃcula sale del solenoide en la posición (H, yH) con la misma velocidad siguiendo una línea recta tangente a la circunferencia en dicho punto y llega al punto (xP, yP). Con estos datos, vamos a determinar la función y=f(x).
La ecuación de la circunferencia de radio r y centro en (x1, r+f(x1)) es
con 0<x1<H
La carga abandona el solenoide en la posición (H, yH) que es el otro extremo del arco de circunferencia de radio r
Como yH<f(x1)+r, elegimos la solución con el signo negativo
Cuando deja el solenoide la partícula se mueve a lo largo de una línea recta tangente a la circunferencia en el punto (H, yH), la pendiente es
Alternativamente, el ángulo φ del arco de circunferencia es
La ecuación de la línea recta es
Sabiendo que esta recta pasa por el punto P (xP, yP) despejamos f(x1)
0<x1<H es la abscisa genérica x del segmento horizontal, luego la función f(x) buscada es
Las partículas tienen carga negativa, el campo magnético apunta hacia el lector
yp=0.5; %foco
xp=1.5;
H=1;
r=1.75; %radio
f=@(x) yp-r+sqrt(r^2-(H-x).^2)-(H-x)*(xp-H)./sqrt(r^2-(H-x).^2);
xx=linspace(0,H,50);
yy=f(xx);
hold on
fill([xx,H,H],[yy,f(H),f(0)],[1 0.5 0.8])
for x=[0.15,0.35, 0.65]
y=f(x);
line([0,x],[y,y],'color','k')
phi=asin((H-x)/r);
fplot(@(t) x+r*sin(t), @(t) y-r*cos(t)+r,[0,phi], 'k')
y_H=y+r-sqrt(r^2-(H-x)^2);
m=(H-x)/sqrt(r^2-(H-x)^2);
g=@(x) m*(x-H)+y_H;
fplot(g,[H,xp],'k')
end
plot(xp,yp,'ro','markersize',3,'markerfacecolor','r')
hold off
xlabel('x')
ylabel('y')
title('Lente magnética')
axis equal

Las partículas tienen carga positiva, el campo magnético apunta hacia el lector
yp=0.5; %foco
xp=1.5;
H=1;
r=1.75; %radio
f=@(x) yp-r+sqrt(r^2-(H-x).^2)-(H-x)*(xp-H)./sqrt(r^2-(H-x).^2);
xx=linspace(0,H,50);
yy=f(xx);
hold on
fill([xx,H,H],[yy,f(H),f(0)],[1 0.5 0.8])
for x=[0.2,0.45, 0.65]
y=f(x);
line([0,x],[y,y],'color','k')
phi=asin((H-x)/r);
fplot(@(t) x+r*sin(t), @(t) y+r*cos(t)-r,[0,phi], 'k')
y_H=y-r+sqrt(r^2-(H-x)^2);
m=(H-x)/sqrt(r^2-(H-x)^2);
g=@(x) -m*(x-H)+y_H;
fplot(g,[H,xp],'k')
end
plot(xp,yp,'ro','markersize',3,'markerfacecolor','r')
hold off
xlabel('x')
ylabel('y')
title('Lente magnética')
axis equal

Para obtener las mismas trayectorias para las partículas que tienen carga positiva, el campo magnético apunta en sentido contrario (la corriente en el solenoide cambia de sentido)

Espectrómetro de masas
Los iones de distinta masa (isótopos) con la misma velocidad, describen trayectorias circulares de radios distintos en el seno de un campo magnético constante
yp=0.5; %foco
xp=1.5;
H=1;
r=1.75;
f=@(x) yp-r+sqrt(r^2-(H-x).^2)-(H-x)*(xp-H)./sqrt(r^2-(H-x).^2);
xx=linspace(0,H,50);
yy=f(xx);
hold on
fill([xx,H,H],[yy,f(H),f(0)],[0 1 1])
x=0.2;
for r=[1.75, 1.5,1] %radios de las trayectorias circulares
y=f(x);
line([-0.5,x],[y,y],'color','k')
phi=asin((H-x)/r);
fplot(@(t) x+r*sin(t), @(t) y-r*cos(t)+r,[0,phi], 'k')
y_H=y+r-sqrt(r^2-(H-x)^2);
m=(H-x)/sqrt(r^2-(H-x)^2);
g=@(x) m*(x-H)+y_H;
fplot(g,[H,xp],'k')
end
plot(xp,yp,'ro','markersize',3,'markerfacecolor','r')
hold off
xlabel('x')
ylabel('y')
title('Lente magnética')
axis equal

Un ión de masa m describe un arco de circunferencia de radio r, a continuación, una trayectoria rectilínea que llega al punto P
Para que otro ión de masa m' llegue al mismo punto P se cambia el campo magnético de B a B' de modo que el radio r sea el mismo
El cambio del campo magnético en el interior del solenoide es tan sencillo como modificar la corriente i que lo recorre
Conocida la masa m del ión obtenemos la masa m' de otro isótopo mediante la relación
El campo magnético en el interior de un solenoide es constante e igual a B=μ0ni, n es el número de espiras por unidad de longitud. La relación entre masas es
Referencias
Ardi Khalifah, Riri Murniati, Mikrajuddin Abdullah. Magnetic Lens Made of a Single Solenoid for Controlling Bending of Two-Dimensional Ion Beam. https://arxiv.org/pdf/2302.08319