6.5. Problemas

Anuncio
221
6.5.
Problemas
~ 0 = B0 zb (B0 = 0, 1 T ), en la posición ~r = ~0 y en la di6-1. En el seno de un campo B
rección del eje x, se inyectan un electrón y un protón, ambos con la misma energı́a
de 1 KeV . Haga un esquema de las trayectorias, determine las ecuaciones de las
mismas y calcule los radios de giro y las frecuencias ciclotrónicas correspondientes.
6-2. En la figuara 6.13 se representa a un magnetrón de placas paralelas de cuya placa
inferior se desprenden electrones a velocidad despreciable. Éstos se mueven bajo
~ 0 = B0 zb y de un campo eléctrico E
~0
la acción de un campo magnético uniforme B
regulable mediante el potencial V0 . Halle el valor de este último potencial para el
cual el amperı́metro empieza a detectar el paso de corriente y deduzca del resultado
la relación de carga a masa del electrón. Haga uso de las integrales de energı́a y
cantidad de movimiento para resolver el problema.
x
A
z x max
E0
B0
+
d
-
V0
y
Figura 6.13:
6-3. La ionosfera es un plasma neutro, con la misma densidad n de iones monoionizados y de electrones. Ambas especies están sometidas al campo gravitatorio y
al magnético terrestre. Prescindiendo de la componente perpendicular del campo
magnético, calcule la densidad de corriente ionosférica. Haga un análisis paralelo
al realizado para determinar la deriva ambipolar. Tome para la densidad el valor
n = 1011 m− 3, para la masa del ión M = 30 mp , donde mp es la masa del protón
y B = 30 µT .
6-4. Un dipolo magnético forma inicialmente un ángulo θ0 con el eje z. En t = 0 se
~
introduce un campo magnético B(t)
= B(t) zb lentamente variable (despreciamos
el. campo eléctrico generado). Calcule el ángulo polar θ(t) y la velocidad angular
ϕ (t) en el plano z = 0.
222
6.6.
6.6.1.
Ejemplos con Mathematica
Compresión de órbitas. movimiento − cargas − EpB.nb
~ = B0 (t) zb que puede
Condideraremos un campo magnético dependiente del tiempo B
variar brusca o gradualmente y en el que está atrapada una carga que gira alrededor de
~ = E0 zb
una de sus lı́neas. Según el caso, superponemos un campo eléctrico constante E
paralelo al anterior.
En general, las ecuaciones del movimiento son
q ~
q
~
E + ~v ∧ B
m
m
que, descompuesta en componentes y empleando la notación
~a =
q
q
E0 = A ,
B0 = B
m
m
toman la forma
d2 x
d t2
d2 y
d t2
d2 z
d t2
dy
dt
dz
= −B
dt
= B
= A
Las cargas partirán del origen con una velocidad inicial determinada.
Remove[”Global‘ ∗ ”]; Off [General :: ”spell1”];
$TextStyle = {FontFamily → ”Courier”, FontSize → 12};
Para realizar las gráficas pueden adoptarse dos modalidades:
- Si modalidad = 1, B aumenta bruscamente en magnitud para t = 15. El campo
eléctrico es nulo, por lo que vz = cte.
t2
- Si modalidad = 0, B aumenta gradualmente según la ley B = 1 +
. Se super100
pone un campo eléctrico constante que acelera a la carga uniformemente en la dirección
z. La velocidad inicial vz0 la tomamos como nula.
modalidad = 1;
Which[modalidad == 1, { vz0 = 0.1, A = 0, B = If [t < 15, 1, 8]},
t2
modalidad == 0, { vz0 = 0, A = 0.07, B = 1 +
}];
100
223
Resolvemos el sistema de eucaciones diferenciales de forma numérica haciendo uso
de la orden NDSolve 8 . Esta orden tiene como primer argumento una lista que contiene
las ecuaciones a resolver y las condiciones iniciales. Para mayor claridad, realizaremos
esta operación en tres etapas: escritura de las ecuaciones, escritura de las condiciones
iniciales y unión de ambas listas. Preste atención al formato en que se escriben estas
listas.
ecuaciones = {x′′ [t] == B ∗ y′ [t], y′′ [t] == −B ∗ x′ [t], z′′ [t] == A};
ciniciales = {x′ [0] == 1, y′ [0] == 1, z′ [0] == vz0, x[0] == 0, y[0] == 0, z[0] == 0};
ecuaciones = Join[ecuaciones, ciniciales];
El segundo argumento es la lista de las variables incógnitas {x, y, z} y, el tercero,
la lista {t, 0, 30} de la variable independiente y los lı́mites del intervalo de la misma en
que se quiere obtener la solución.
solucion = NDSolve[ecuaciones, {x, y, z}, {t, 0, 30}];
El resultado es la lista que hemos denominado solucion cuyos elementos son funciones interpolantes 9 . Dichas funciones están especificadas por un conjunto de
datos que permiten, en su caso, aproximar a la solución correspondiente en el intervalo
especificado.
Para poder representarlas gráficamente es necesario hacer uso de la función
Evaluate 10 .
fx = Evaluate[x[t]/.solucion]; fy = Evaluate[y[t]/.solucion];
fz = Evaluate[z[t]/.solucion];
Si quitamos el (; ) de la última expresión veremos que f z es una lista con una sola
componente, la función interpolante de z(t).
Primero hacemos una representación bidimensional de las funciones
{x(t), y(t), z(t)} en función del tiempo.
Plot[{fx, fy, fz}, {t, 0, 30}, PlotRange → All,
PlotStyle → {RGBColor[1, 0, 0], RGBColor[0, 1, 0], RGBColor[0, 0, 1]},
PlotLabel → {”x = rojo, y = verde, z = azul”}, AxesLabel → {”t”, None}];
En la modalidad 1, en la que se da el cambio brusco de B, el radio de giro se comprime instantáneamente y el centro de giro cambia de lı́nea de campo. En la modalidad
224
8x=rojo,y=verde,z=azul<
3
2
1
t
5
10
15
20
25
30
-1
-2
Figura 6.14:
0 la compresion de la órbita es gradual y el centro de giro se mantiene posicionado en
la misma lı́nea. La figura 6.14 corresponde a la modalidad 1.
Por último, se representan las trayectorias en un gráfico paramétrico tridimensional.
ParametricPlot3D[fz[[1]], fx[[1]], fy[[1]], t, 0, 30,
PlotStyle → {RGBColor[1, 0, 0], RGBColor[0, 1, 0], RGBColor[0, 0, 1]},
PlotPoints → 1000, PlotRange → All, Boxed → False, AspectRatio → 1,
PlotStyle → {RGBColor[1, 0, 0], RGBColor[0, 1, 0], RGBColor[0, 0, 1]},
AxesLabel → ”t”, ”x”, ”y”, AxesStyle → RGBColor[0, 1, 1], Thickness[0,01],
PlotStyle → {RGBColor[1, 0, 0], RGBColor[0, 1, 0], RGBColor[0, 0, 1]},
DefaultColor → RGBColor[1, 0, 0], BoxRatios → 2, 1, 1];
La figura 6.15 también corresponde a la modalidad 1.
6.6.2.
Enfoque electromagnético. enf oque EpB.nb
Este programa ilustra el enfoque de cargas en campos eléctrico y magnético paralelos,
constantes y uniformes. Las trayectorias son hélices cuyo paso aumenta uniformemente.
Se representan las trayectorias de partı́culas mono energéticas que parten del origen
con unas velocidades iniciales vx0 = v0 sen θ, vy0 = 0, vz0 = v0 cos θ, cada una de
ellas con distinto θ de pequeña magnitud.
El movimiento en la dirección del eje z es uniformemente acelerado. Dado que z(0) =
0
z = vz0 t +
8
Véase la ayuda de Mathematica.
Véase la ayuda de Mathematica.
10
Véase la ayuda de Mathematica.
9
1 2
q
at , a =
E
2
m
225
0
-1 y
-2
0
2
1
1
t
x
2
0
3
Figura 6.15:
La solución del movimiento transversal, compatible con las condiciones iniciales,
viene dada por las expresiónes 1.35
x = ρ sen Ωt
y = ρ (1 − cos Ωt)
siendo ρ el radio de giro y Ω la frecuencia ciclotrónica que, en adelante tomaremos como
Ω = 1 ⇒ ρ = vx0 .
Remove[”Global‘ ∗ ”]; Off [General :: ”spell1”];
$TextStyle = {FontFamily → ”Courier”, FontSize → 12};
Especificamos el valor de A = 12 a, los valores iniciales de las velocidades y las
ecuaciones paramétricas de las trayectorias.
A = 0.08;
vz0 = Cos[θ]; vx0 = Sin[θ];
z = vz0 t + A t2 ; x = vx0 Sin[t]; y = vx0 (1 − Cos[t]);
226
A continuación confeccionamos una lista, lista[[i, j]], j = x, y, z que contiene las
ecuaciones de las trayectorias de las partı́culas i = 1. · · · , 5.
lista = {{z, x, y}/.θ → 0, {z, x, y}/.θ → 0.15,
{z, x, y}/.θ → −0.15, {z, x, y}/.θ → 0.3, {z, x, y}/.θ → −0.3};
En enfoquep se almacenarán las gráficas paramétricas tridimensionales de cada
una de las trayectorias.
enfoquep = {0, 0, 0, 0, 0};
Do[enfoquep[[i]] = ParametricPlot3D[lista[[i]], {t, 0, 2Pi},
Boxed → True, DisplayFunction → Identity, AxesLabel → {”z”, ”x”, ”y”},
DefaultColor → RGBColor[0, 0, 1], AxesStyle → {RGBColor[0, 1, 1], Thickness[0.01]},
BoxRatios → {2, 0.5, 0.5}, PlotPoints → 500], {i, 1, 5}];
enfoque = Show[enfoquep, DisplayFunction → $DisplayFunction];
0
2
4
z
6
8
0.5
0.25
0 y
-0.25
-0.5
0.2
0 x
-0.2
Figura 6.16:
La figura 6.16 es una representación tridimensional de las trayectorias. Si ampliáramos la parte final de la gráfica verı́amos claramente que el efoque tiene aberración.
Ésta será tanto menor cuanto más pequeña sea la dispersión angular de la velocidad inicial.
227
Por último, haremos una representación paramética bidimensional para ver las
trayectorias en el plano transversal.
lista2 = {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}};
Do[lista2[[i]] = {lista[[i]][[2]], lista[[i]][[3]]}, {i, 1, 5}];
enfoquepf = {0, 0, 0, 0, 0};
Do[enfoquepf [[i]] =
ParametricPlot[lista2[[i]], {t, 0, 2Pi}, AxesLabel− > {”x”, ”y”},
PlotStyle− > RGBColor[0, 0, 1], PlotPoints− > 500,
DisplayFunction− > Identity], {i, 1, 5}];
enfoquef = Show[enfoquepf , DisplayFunction− > $DisplayFunction,
AspectRatio− > 2];
y
0.6
0.4
0.2
x
-0.3
-0.2
-0.1 0.10.20.3
-0.2
-0.4
-0.6
Figura 6.17:
Las partı́culas parten del origen con distintas velocidades transversales, y distintos
radios de giro, e inciden en (0, 0, L(θ) ≃ L) al cabo de un periodo (figura 6.17).
6.6.3.
Confinamiento magnético. botella − magnetica.nb
En este programa estudiaremos el confinamiento de cargas en una botella magnética.
Como en el problema 2-29, el campo de la botella se genera por medio de dos espiras
cuadradas , cuyo eje común es el z y que están recorridas por una intensidad I. A
228
diferencia de la configuración de los carretes de Helmholtz, la distancia entre espiras se
hará mayor que en ésta, de modo que en el punto intermedio el campo sea mı́nimo, dando
lugar a espejos magnéticos en la proximidad de la posición de los carretes. Generaremos
gráficas y pelı́culas que nos muestren las trayectorias de partı́culas confinadas en la
botella.
Remove[”Global‘ ∗ ”]; Off [General :: ”spell1”];
Off [General :: ”spell”];
$TextStyle = {FontFamily → ”Courier”, FontSize → 12};
6.6.3.1.
Campo de una espira
Comenzamos calculando el campo de una espira
Rx = {x − xp, y − y0, z}; mRx =
BX = {0, −z, y − y0}
Z
x2
x1
√
Rx.Rx;
1
dxp;
mRx3
De forma análoga calculamos el campo producido por un segmento orientado en la
dirección el eje y
Ry = {x − x0, y − yp, z}; mRy =
BY = {z, 0, −x + x0}
Z
y2
y1
p
Ry.Ry;
1
dyp;
mRy3
Calculamos el campo total de la espira producido en un punto cualquiera particularizando los resultados anteriores para cada uno de los segmentos de la espira con
a = 1.
B2 = BX/.{x1 →
1
1
1
, x2 → − , y0 → };
2
2
2
1
1
1
B4 = BX/.{x1 → − , x2 → , y0 → − };
2
2
2
1
1
1
B1 = BY/.{y1 → − , y2 → , x0 → };
2
2
2
B3 = BY/.{y1 →
1
1
1
, y2 → − , x0 → − };
2
2
2
Be = B1 + B2 + B3 + B4;
229
6.6.3.2.
Campo de dos espiras situadas en z = ± d/2
Be1 = Be/.z → (z −
d
d
); Be2 = Be/.z → (z + );
2
2
Bc = Be1 + Be2;
Calculamos los campos producidos por cada una de las espiras, Be1z y Be2z, y por
el conjunto Bcz, en el eje z.
Be1zv = Be1/.{x → 0, y → 0};
Be1z = Be1zv[[3]];
Be2zv = Be2/.{x → 0, y → 0};
Be2z = Be2zv[[3]];
Bczv = Bc/.{x → 0, y → 0};
Bcz = Bczv[[3]];
6.6.3.3.
Botella magnética
Asignamos a d el valor db = 3.
db = 3;
Representación del campo axial:
Bczb = Bcz/.d → db;
grcampz = Plot[Bczb, {z, −0.6 ∗ db, 0.6 ∗ db}, AxesOrigin → {0, 0},
db
db
GridLines → {{− , 0,
}, None}, ,
2
2
PlotStyle → RGBColor[0, 1, 1]];
(6.26)
En la figura 6.21, que se muestra más adelante, se observa la existencia de un mı́nimo
de campo en z = 0 y unos máximos en las proximiades de las posiciones de las espiras.
En las zonas interiores de campo alto, espejos magnéticos, se reflejan las partı́culas
atrapadas en la botella.
230
Representación del campo en el plano x = 0:
Calculamos el campo en este plano para la distancia db entre espiras
Bcyzb = {Bc[[2]], Bc[[3]]}/.{x → 0, d → db};
especificamos los lı́mites de las gráficas
Ly = 1; Lz = 0.7 ∗ db;
generamos el gráfico de flechas
<< Graphics‘PlotField‘
grcampb = PlotVectorField[Bcyzb, {y, −Ly, Ly}, {z, −Lz, Lz},
PlotPoints → 11, AspectRatio → 1, DisplayFunction → Identity];
la posición de los carretes
puntosb = {{−0.5 , −0.5db}, {0.5 , −0.5db}, {−0.5 , 0.5db}, {0.5 , 0.5db}};
carretesb = Graphics[{PointSize[.04], RGBColor[0, 0, 1], Point/@puntosb}];
dibujamos las lı́neas de campo por el método de Heun
mBcyzb =
p
Bcyzb.Bcyzb;
Bunit =
Bcyzb
;
mBcyzb
n = 100; ∆ =
db
;
n
y0 = −0.45;
z0 = −Lz + 0.01;
grlinea = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
231
Do[{p0 = {y0, z0}; linea = {p0}; kk = 0;
While[(Abs[p0[[1]]] <= Ly)&&(Abs[p0[[2]]] <= Lz)&&(kk <= 2n),
{kk = kk + 1, p0ini = p0, Bunitini = Bunit/.{y → p0[[1]], z → p0[[2]]},
p0 = p0ini + ∆ ∗ Bunitini, Bunitfin = Bunit/.{y → p0[[1]], z → p0[[2]]},
1
p0 = p0ini + ∆ ∗ (Bunitini + Bunitfin), linea = Append[linea, p0]}],
2
grlinea[[i]] = ListPlot[linea, PlotJoined → True,
PlotStyle → RGBColor[1, 0, 0], DisplayFunction → Identity], y0 = y0 + 0.1},
{i, 1, 10}];
y representamos conjuntamente todas estas gráficas
Show[grcampb, carretesb, grlinea, DisplayFunction → $DisplayFunction,
Axes → True];
2
1
-1
0.5
-0.5
1
-1
-2
Figura 6.18:
En la figura 6.18 puede verse como el campo es poco uniforme, existiendo un alto
flujo del mismo en los cuellos de la botella y poca densidad de lı́neas en el vientre de la
misma.
6.6.3.4.
Confinamiento magnético
Primero supondremos que la partı́cula, atrapada en la lı́nea central de la botella,
tiene una energı́a cinética transversal W⊥ ≫ Wk , lo que permite representarla como un
dipolo magnético en la dirección contraria al campo.
En segundo lugar, resolveremos la ecuación de la trayectoria de la particula, sin
restricciones, para representarla en gráficos y pelı́culas en dos y tres dimensiones.
232
Movimiento del dipolo en el eje z:
Partı́cula confinada.
Inicialmente situamos al dipolo en reposo, v0 = zp0, en un punto z = z0, situado
en el eje z, en el interior de la botella y cerca del punto de campo máximo.
z0 = −1.45; zp0 = 0;
calculamos la fuerza sobre el dipolo
Fz = −µ
∂ Bz
∂z
tomando µ = 1.
fzp = −∂z Bczb;
y la expresamos en el formato requerido para la orden NDSolve.
fz = fzp/.z → z[t];
Hallamos numéricamente las ecuaciones paramétricas de la trayectoria suponiendo
que la masa de la partı́cula m = 1.
solucionc = NDSolve[{z′′ [t] == fz, z′ [t][0] == zp0, z[0] == z0}, z, {t, 0, 5}];
Extraemos la solución z(t)
szc = Evaluate[z[t]/.solucionc];
(6.27)
y, derivándola, obtenemos la velocidad.
vszc = ∂t szc;
Representamos conjuntamente la posición y la velocidad en función del tiempo. Esta
última la multiplicamos por un factor de escala.
Plot[{szc, 0.3 vszc}, {t, 0, 2.5}, PlotRange → All,
PlotStyle → {RGBColor[1, 0, 0], RGBColor[0, 0, 1]},
AxesLabel → {”t”, ”z, vz”}, PlotLabel → StyleForm[”z en rojo, vz en azul”,
FontColor → RGBColor[0, 0.5, 1]], GridLines → {None, {−z0, z0}}];
En la figura 6.19 se observa como el dipolo parte de su posición inicial z0 = −1,45 y
se refleja en el punto simétrico. Parte con velocidad nula y se acelera hasta el punto de
campo mı́nimo en que empieza a decelerarse. El movimiento corresponde a una partı́cula
confinada, el dipolo está encerrado en el pozo de potencial.
Partı́cula libre.
233
z, vz
1.5
z en rojo, vz en azul
1
0.5
t
0.5
1
1.5
2
2.5
-0.5
-1
-1.5
Figura 6.19:
En este caso, la posición inicial del dipolo es la misma que en el caso anterior, pero
se parte de ella con una velocidad inicial que le permitirá salir del pozo de potencial y
liberarse del mismo.
zp0 = 0.6;
solucion = NDSolve[{z′′ [t] == fz, z′ [0] == zp0, z[0] == z0}, z, {t, 0, 5}];
sz = Evaluate[z[t]/.solucion];
vsz = ∂t sz;
Plot[{sz, 0.5 vsz}, {t, 0, 1.5}, PlotRange → {−2, 2.5},
PlotStyle → {RGBColor[1, 0, 0], RGBColor[0, 0, 1]},
AxesLabel → {”t”, ”z, vz”}, PlotLabel → StyleForm[”z en rojo, vz en azul”,
FontColor → RGBColor[0, 0.5, 1]], GridLines → {None, {−z0, z0}}];
En la figura 6.20 se ve como la posición z de la partı́cula alcanza la posición simétrica
de la inicial, marcada por una lı́nea horizontal, rebasa el punto de campo máximo y se
libera.
Pelı́cula del movimiento confinado del dipolo.
Queremos representar la posición del dipolo, en función de z, no en función de t,
y unir esta gráfica a la resultante de ejecutar 6.26, es decir, la del campo axial en
función de z. Para ello formamos una lista zz con las posiciones del dipolo en distintos
fotogramas (instantes de tiempo). Tenemos en cuenta que szc es una lista con un solo
componente que es la función interpolante. Es esta última la que debe figurar como
primer argumento de la orden Table. La cota máxima de t es lo suficientemente grande
como para captar la reflexión del dipolo en el espejo de la derecha.
234
z, vz
z en rojo, vz en azul
2
1
t
0.2 0.4 0.6 0.8
1
1.2 1.4
-1
-2
Figura 6.20:
zz = Table[szc[[1]], {t, 0, 2.5, 0.025}];
Para determinar el número de componentes de la tabla, hacemos uso de la orden
Dimensions. El resultado de la misma es una lista con las dimensiones, una en este
caso, de zz.
dzz = Dimensions[zz][[1]];
Generamos las gráficas conjuntas de los puntos que representan al dipolo y la gráfica
del campo axial.
Do[{puntoconf =
Graphics[{PointSize[.04], RGBColor[0, 0, 1], Point[{zz[[i]], 0}]}],
Show[{grcampz, puntoconf }]}, {i, 1, dzz}];
10
8
6
4
2
-1.5
-1
-0.5
0.5
1
1.5
Figura 6.21:
La figura 6.21 es uno de los fotogramas de la pelı́cula. Esta última muestra como el
dipolo parte del reposo, es acelerado hasta la posición central y se refleja en el espejo
derecho. Si se le da una velocidad inicial suficiente, la partı́cula saldrá de la botella.
235
Movimiento tridimensional de la partı́cula:
q
= 1.
Para esta representación tomaremos
m
Empezamos particularizando el campo tridimensional para la distancia d = db especificada para la botella y hallando el módulo correspondiente.
Bb = Bc/.d → db;
mBb =
√
Bb.Bb;
Especificamos el intervalo 0 ≤ t ≤ T en que se calcula la trayectoria
T = 71;
el radio ciclotrónico en la posición inicial
rc0 = 0.01;
las posiciones iniciales
x0 = rc0; y0 = 0; z0 = −1,45;
el campo magnético en la posición (0, 0, z0 )
mB0 = mBb/.{x → 0, y → 0, z → z0};
y las velocidades iniciales.
Tomaremos la velocidad inicial con módulo |vy0| = v⊥ = ρ B y en la dirección
correspondiente a un giro de la partı́cula a izquierdas alrededor del campo.
vx0 = 0; vy0 = −rc0 ∗ mB0; vz0 = 0;
Estas especificaciones corresponden a una carga positiva que gira alrededor del eje
z. Si, por ejemplo, cambia el signo de vy0, la partı́cula girará a lo largo de otra lı́nea
de campo e, incluso, podrá quedar libre de la botella. Experimente.
A continuación se extraen las componentes del campo y se expresan en el formato
requerido.
Bbx = Bb[[1]]; Bby = Bb[[2]]; Bbz = Bb[[3]];
Bbx = Bbx/.{x → x[t], y → y[t], z → z[t]};
Bby = Bby/.{x → x[t], y → y[t], z → z[t]};
Bbz = Bbz/.{x → x[t], y → y[t], z → z[t]};
Las ecuaciones a resolver se reducen en este caso a
~
~a = ~v ∧ B
236
ecuacionesb = {x′′ [t] == y′ [t] ∗ Bbz − z′ [t] ∗ Bby, y′′ [t] == z′ [t] ∗ Bbx − x′ [t] ∗ Bbz,
z′′ [t] == x′ [t] ∗ Bby − y′ [t] ∗ Bbx};
cinicialesb = {x′ [0] == vx0, y′ [0] == vy0, z′ [0] == vz0, x[0] == x0, y[0] == y0,
z[0] == z0};
ecuacionesb = Join[ecuacionesb, cinicialesb];
solucion = NDSolve[ecuacionesb, {x, y, z}, {t, 0, T}, MaxSteps → 4000];
xb = Evaluate[x[t]/.solucion];
yb = Evaluate[y[t]/.solucion];
zb = Evaluate[z[t]/.solucion];
Para obtener la pelı́cula haremos la representación de la trayectoria hasta distintos
instantes, y del punto que representa a la partı́cula en ese mismo instante.
Se especifica el número de fotogramas y el intervalo temporal entre cada uno de ellos.
T
;
n
Se inicializa el instante final de la trayectoria parcial
n = 500; ∆t =
Ti = 0;
y se realizan los fotogramas en los sucesivos instantes
Do[
{Ti = Ti + ∆t; puntoi = {zb[[1]], xb[[1]], yb[[1]]}/.t → Ti,
grpuntoi = Graphics3D[{PointSize[,03], RGBColor[0, 0, 1], Point[puntoi]}],
orbitai = ParametricPlot3D[{zb[[1]], xb[[1]], yb[[1]]}, {t, 0, Ti},
PlotPoints → 2000, PlotRange → All, Boxed → False, AspectRatio → 1,
AxesLabel → {”z”, ”x”, ”y”}, AxesStyle → {RGBColor[0, 1, 1], Thickness[0.01]},
DefaultColor → RGBColor[1, 0, 0], BoxRatios → {3, 1, 1},
PlotRange → {{−1.6, 1.6}, {−0.04, 0.04}, {−0.04, 0.04}},
DisplayFunction → Identity],
Show[orbitai, grpuntoi, PlotRange → {{−1.6, 1.6}, {−0.04, 0.04}, {−0.04, 0.04}},
DisplayFunction → $DisplayFunction]}, {i, 1, n}];
237
0.04
0.02
0
y
-0.02
-1
0.04
-0.04
0.02
0
z
1
0
x
-0.02
-0.04
Figura 6.22:
En la figura 6.22 se representa el último fotograma de la pelı́cula. En el se encuentra
a la partı́cula en un instante posterior a su reflexión en el espejo de la derecha. La
pelı́cula pone de manifiesto cómo dicha partı́cula parte de la izquierda con Wk = 0
y W⊥ = max, gira rápidamente pero avanza lentamente. En el centro la velocidad
transversal es mı́nima y la longitudinal máxima. Después se refleja e invierte el sentido
de la marcha.
Representación de las coordenadas en función del tiempo:
Por último, representamos conjuntamente las coordenadas en función del tiempo.
p1 = Plot[xb[[1]], {t, 0, T}, PlotStyle → RGBColor[0, 1, 0],
DisplayFunction → Identity];
p2 = Plot[0.03zb[[1]], {t, 0, T}, PlotStyle → RGBColor[1, 0, 0],
DisplayFunction → Identity];
p3 = Plot[yb[[1]], {t, 0, T}, PlotStyle → RGBColor[0, 0, 1],
DisplayFunction → Identity];
238
Show[p1, p2, p3, PlotRange → All, AxesLabel → {”t”, ”x, y, z”},
PlotLabel → StyleForm[”x en verde, y en azul, z en rojo”,
FontColor → RGBColor[0, 0.5, 1]], DisplayFunction → $DisplayFunction];
x, y,
z verde,y en azul, z en rojo
x en
0.04
0.02
t
10
20
30
40
50
60
70
-0.02
-0.04
Figura 6.23:
La figura 6.23 muestra como la coordenada z es periódica, como corresponde a una
partı́cula confinada, y que el radio de giro y el periodo ciclotrónico varı́an con dicha
coordenada.
6.6.4.
Lente electrostática. lente − electrostatica.nb
En este programa se simula una lente electrostática constituida por un hilo en forma
de cuadrado y cargado positivamente. Comprobaremos que ésta se comporta como una
lente convergente para los electrones.
Remove[”Global‘ ∗ ”]; Off [General :: ”spell1”];
$TextStyle = {FontFamily → ”Courier”, FontSize → 12};
Para calcular el potencial nos referiremos a la misma figura 2.37 ya empleada para
hallar el campo magnético producido por una espira cuadrada. En este caso, la espira
estará cargada con una desidad lineal de carga ρl . Los pasos que seguiremos son análogos
a los que se dieron en la sección 6.6.3.1.
vxR = {x − xp, y − y0, z}; mxR =
vyR = {x − x0, y − yp, z}; myR =
xV = K
Z
a
2
a
−2
√
vxR.vxR;
p
vyR.vyR;
1
dxp;
mxR
239
V1 = xV/. y0 →
a
;
2
a
V3 = xV/. y0 → − ;
2
yV = K
Z
a
2
1
dyp;
myR
a
−2
V4 = yV/. x0 →
a
;
2
a
V2 = yV/. x0 → − ;
2
V = V1 + V2 + V3 + V4;
Vyz = V/. {x → 0, a → 1, K → 1};
El campo se obtiene derivando el potencial.
Eyz = {−∂y Vyz, −∂z Vyz};
Representación del campo y del potencial en las proximidades de la espira:
Dibujamos las lı́neas de campo haciendo uso del método de Heun.
mEyz =
p
Eyz.Eyz;
Eunit =
Eyz
;
mEyz
n = 100; ∆ =
1
;
n
grlinea = Table[0, {i, 1, 20}]; Ly = 1; Lz = 1;
Situamos los puntos de partida de las lı́neas en un cı́rculo centrado en la posición
de la espira.
r0 = 0.1 ; θ0 = −
π
π
; ∆θ =
;
20
10
240
Do[{p0 = {y0, z0}, linea = {p0}, kk = 0,
While[(Abs[p0[[1]]] <= Ly)&&Abs[p0[[2]]] <= Lz)&&(kk <= 4n),
{kk = kk + 1, p0ini = p0, Eunitini = Eunit/. {y → p0[[1]], z → p0[[2]]},
p0 = p0ini + ∆ ∗ Eunitini, Eunitfin = Eunit/. {y → p0[[1]], z → p0[[2]]},
1
p0 = p0ini + ∆ ∗ (Eunitini + Eunitfin), linea = Append[linea, p0]}],
2
grlinea[[i]] = ListPlot[linea, PlotJoined → True,
PlotStyle → RGBColor[1, 0, 0], DisplayFunction → Identity],
θ0 = θ0 + ∆θ, y0 = 0.5 − r0 ∗ Cos[θ0], z0 = r0 ∗ Sin[θ0]},
{i, 1, 20}];
Generamos la gráfica de las lı́neas equipotenciales
grpot = ContourPlot[Vyz, {y, −Ly, Ly}, {z, −Lz, Lz}, PlotPoints → 100,
ContourShading → False, Contours → 30,
ContourStyle → RGBColor[0, 0.7, 1], DisplayFunction → Identity,
FrameLabel → {”y”, ”z”}];
situamos la espira
puntos = {{0.5, 0}, {−0.5, 0}};
pos = Graphics[{PointSize[.03], RGBColor[0, 0, 1], Point/@puntos}];
realizamos el gráfico de flechas
<< Graphics‘PlotField‘
grcamp = PlotVectorField[Eyz, {y, 0.01, Ly}, {z, −Lz, Lz},
PlotPoints → 9, DisplayFunction → Identity];
y mostramos la representación conjunta.
Show[grpot, pos, grcamp, grlinea,
DisplayFunction → $DisplayFunction, AspectRatio →
Lz
, Axes → True];
Ly
La gráfica 6.24 muestra como las lı́neas de campo parten de la espira y, más allá de
~ y las lineas de fuerza
la región central, divergen del eje z. Para electrones F~ = −e E
241
1
z
0.5
0
-0.5
-1
-1
-0.5
0
y
0.5
1
Figura 6.24:
convergen sobre dicho eje focalizando a las cargas. En esta región externa, la componente
Fz atrae a los electrones hacia la lente. Si un haz de electrones incide desde z < 0 hacia
la lente, es acelerado hasta las proximidades de la misma y decelerado una vez que ésta
ha sido sobrepasada.
Estudio de las trayectorias electrónicas:
Resolveremos las ecuaciones de las trayectorias de un haz de electrones que se mueve
inicialmente, en la lejanı́a de la lente, paralelamente al eje z.
Escribimos las componentes del campo en el plano z = 0 en el formato establecido
para NDSolve
Ey = Eyz[[1]]/. {y → y[t], z → z[t]};
Ez = Eyz[[2]]/. {y → y[t], z → z[t]};
Establecemos las condiciones iniciales
vz0 = 4; vy0 = 0; z0 = −50; y0 = −0.2; T = 25;
graficas = {0, 0, 0, 0, 0, 0, 0};
y calculamos las trayectorias.
242
Do[
{y0 = y0 + 0.05,
ecuacionesl = {y′′ [t] == −Ey, z′′ [t] == −Ez},
cinicialesl = {y′ [0] == vy0, z′ [0] == vz0, y[0] == y0, z[0] == z0},
ecuacionesl = Join[ecuacionesl, cinicialesl],
solucion = NDSolve[ecuacionesl, {y, z}, {t, 0, T}, MaxSteps → 4000],
yl = Evaluate[y[t]/. solucion], zl = Evaluate[z[t]/. solucion],
T
ydez = Table[{zl[[1]]/. t → i, yl[[1]]/. t → i}, {i, 0, T,
}],
1000
graficas[[i]] = ListPlot[ydez, PlotJoined → True,
GridLines → {{0}, None}, PlotStyle → RGBColor[0, 1, 0.7],
AxesOrigin → {−50, 0}, PlotRange → {−0.16, 0.16},
AxesLabel → {”z”, ”y”}, DisplayFunction → Identity]},
{i, 1, 7}];
Show[graficas, DisplayFunction → $DisplayFunction];
y
0.15
0.1
0.05
z
-40
-20
0
20
40
-0.05
-0.1
-0.15
Figura 6.25:
En la figura 6.25, como puede comprobarse, la escala del eje y está muy ampliada con
respecto a la del z. En dicha figura se ve como las trayectorias, inicialmente paralelas,
se focalizan, con un cierto grado de aberración, al otro lado de la lente. El campo sólo
es notable en la cercanı́a de la lente, donde cambia brúscamente de magnitud y sentido.
La aberración puede reducirse cumpliendo más estrictamente la condición paraxial, es
243
derir, haciendo uso de un haz más estrecho, o diseñando lentes menos simples que la
que aquı́ hemos propuesto.
6.6.5.
Órbitas de dos cargas. orbitas − cargas.nb
Este programa estudia las órbitas de dos cargas puntuales referidas a su centro de
masas. Los parámetros que se proponen corresponden a órbitas elı́pticas. Para estudiar
otros casos deberá cambiar las condiciones iniciales y algún otro parámetro, como el
intervalo temporal T , etc.
Remove[”Global‘ ∗ ”]; Off [General :: ”spell1”];
$TextStyle = {FontFamily → ”Courier”, FontSize → 12};
Cálculo de las trayectorias:
~ 21 que sitúa
Se definen los vectores de posición de cada una de las partı́culas y el R
a la partı́cula 1 con respecto a la 2.
r1 = {x1, y1}; r2 = {x2, y2}; R21 = r1 − r2; mR21 =
√
R21.R21;
Tomaremos los valores q1 = 1, q2 = ±1, m1 = 1, m2 ≥ 1
q2 = −1; m2 = 3;
F21 es la fuerza que actúa sobre la partı́cula 1. La fuerza que lo hace sobre la 2 es
F12 = −F21 . Escribimos estas fuerzas con el formato requerido por la orden NDSolve.
F21 = q2
R21
/.{x1 → x1[t], x2 → x2[t], y1 → y1[t], y2 → y2[t]};
mR213
F12 = −F21;
Estableceremos las condiciones iniciales de forma que el centro de masas se sitúe en
el origen de coordenadas. Por definición
~rcm =
m1 ~r1 + m2 ~r2
m1 + m2
por lo que, para que ~rcm = ~0 en t = 0, debe cumplirse que
~r20 =
m1
~r10
m2
Por otra parte, derivando 6.28
~vcm =
m1 ~v1 + m2 ~v2
m1 + m2
por lo que, para que ~vcm = ~0 en t = 0, debe cumplirse que
(6.28)
244
~v20 =
m1
~v10
m2
Dado que en una interacción que cumpla el principio de acción y reación, la cantidad
de movimiento se conserva, si el centro de masas está en reposo en el origen en el
instante inicial, permanecerá en el mismo a lo largo del movimiento.
x10 = 0; y10 = 1; vx10 = 1; vy10 = −0.1;
x20 = −
1
1
1
1
x10; y20 = −
y10; vx20 = −
vx10; vy20 = −
vy10;
m2
m2
m2
m2
Escribimos la lista de ecuaciones y condiciones iniciales
ec1x = x1 ′′ [t] == F21[[1]]; ec1y = y1 ′′ [t] == F21[[2]];
ec2x = x2 ′′ [t] ==
1
1
F12[[1]]; ec2y = y2 ′′ [t] ==
F12[[2]];
m2
m2
ecuaciones = {ec1x, ec1y, ec2x, ec2y};
ciniciales = {x1 ′ [0] == vx10, y1 ′ [0] == vy10,
x2 ′ [0] == vx20, y2 ′ [0] == vy20,
x1[0] == x10, y1[0] == y10, x2[0] == x20, y2[0] == y20};
ecuaciones = Join[ecuaciones, ciniciales];
Damos valores al intervalo T en el que se han de calcular las trayectorias y al
incremento temporal de muestreo δt de las mismas.
T = 100; δt =
T
;
300
y hallamos las trayectorias
solucion = NDSolve[ecuaciones, {x1, y1, x2, y2}, {t, 0, T}, MaxSteps → 4000];
x1 = Evaluate[x1[t]/.solucion]; y1 = Evaluate[y1[t]/.solucion];
x2 = Evaluate[x2[t]/.solucion]; y2 = Evaluate[y2[t]/.solucion];
245
Representación de las trayectorias:
Procedemos primero a representar gráficamente las trayectorias completas. Para ello
generamos una lista de las posiciones para incrementos δt.
t1 = Table[{x1[[1]]/.t → i, y1[[1]]/.t → i}, {i, 0, T, δt}];
grafica1 = ListPlot[t1,
PlotJoined → True, PlotStyle → RGBColor[0, 1, 0.7], AxesOrigin → {0, 0},
PlotRange → All, AxesLabel → {”x”, ”y”}, DisplayFunction → Identity];
t2 = Table[{x2[[1]]/.t → i, y2[[1]]/.t → i}, {i, 0, T, δt}];
grafica2 = ListPlot[t2,
PlotJoined → True, PlotStyle → RGBColor[1, 0.7, 0], AxesOrigin → {0, 0},
PlotRange → All, AxesLabel → {”x”, ”y”}, DisplayFunction → Identity];
Mostramos ambas órbitas conjuntamente
grorbita1 = Show[grafica1, grafica2,
DisplayFunction → $DisplayFunction, AspectRatio → 1];
En la figura 6.26 se ve como las cargas describen órbitas elı́pticas. Dadas las condiciones iniciales propuestas, las elipses tienen una cierta inclinación.
Pelicula del movimiento de las cargas:
Se establecen los lı́mites de las gráficas de acuerdo con la figura anterior.
limites = {{−4.5, 2.5}, {−9, 3}};
Se define el número n de fotogramas que se van a realizar y el intervalo de tiempo
∆t entre los mismos
T
;
n
Cada fotograma contiene la trayectoria de ambas partı́culas hasta el instante Ti.
También se muestran los puntos que representan a cada una de las cargas, en color
dorado la más pesada y en azul la más ligera, ası́ como la recta que las une.
Se inicializa Ti y se genera la pelı́cula.
n = 200; ∆t =
Ti = 0;
246
y
2
x
-4
-3
-2
1
-1
2
-2
-4
-6
-8
Figura 6.26:
Do[{Ti = Ti + ∆t, punto1 = {x1[[1]], y1[[1]]}/.t → Ti,
grpunto1 = Graphics[{PointSize[.03], RGBColor[0, 0, 1], Point[punto1]}],
punto2 = {x2[[1]], y2[[1]]}/.t → Ti,
grpunto2 =
Graphics[{PointSize[.04], RGBColor[1, 0.84, 0], Point[punto2]}],
linea = {punto1, punto2},
grlinea = Graphics[{Dashing[{0.01, 0.01}], RGBColor[1, 0, 0], Line[linea]}],
orbita1 = ParametricPlot[{x1[[1]], y1[[1]]}, {t, 0, Ti}, PlotPoints → 300,
PlotRange → limites, AspectRatio → 1, AxesLabel → {”x”, ”y”},
PlotStyle → RGBColor[0, 1, 0.7], PlotRange → All,
DisplayFunction → Identity],
orbita2 = ParametricPlot[{x2[[1]], y2[[1]]}, {t, 0, Ti}, PlotPoints → 300,
PlotRange → limites, AspectRatio → 1, AxesLabel → {”x”, ”y”},
PlotStyle → RGBColor[1, 0.7, 0], PlotRange → All,
DisplayFunction → Identity],
Show[orbita1, orbita2, grpunto1, grpunto2, grlinea, PlotRange → limites,
DisplayFunction → $DisplayFunction, AspectRatio → 1]}, {i, 1, n}];
La figura 6.27 es uno de los fotogramas de la pelı́cula. Se ve como ambas cargas
están situadas sobre una recta que pasa por el origen, donde debe permanecer el centro
247
y
2
x
-4
-3
-2
1
-1
2
-2
-4
-6
-8
Figura 6.27:
de masas. En la pelı́cula se comprueba que, cuando la distancia entre cargas es grande,
la velocidad es pequeña. Los signos especificados por las cargas son distintos, por lo que
la energı́a potencial crece con la distancia y, por lo tanto, la energı́a cinética decrece.
Cambiando las condiciones iniciales y las magnitudes del problema, podremos estudiar
otro tipo de órbitas.
Descargar