Cómo trazar las funciones de onda del átomo de hidrógeno

Un sistema de álgebra computacional como Mathematica puede ser útil y útil para trazar y representar gráficamente las funciones de onda del átomo de hidrógeno de varias maneras diferentes.

Una primera forma es tomar el cuadrado del valor absoluto de la función de onda y usar la parte armónica esférica [matemáticas] Y_ {lm} (r, w) [/ matemáticas], con una variación de [matemáticas] l [/ matemáticas] y [matemáticas] m [/ matemáticas].

Escribiendo el código:

{SphericalPlot3D [
Abs [Armonía esféricaY [0, 0, r, w]] ^ 2, {r, 0, Pi}, {w, 0, 2 Pi},
En caja -> Falso, Ejes -> Falso, PlotPoints -> 150,
ColorFunction -> Function [{r, w, z}, Hue [z]], Mesh -> 4],
SphericalPlot3D [
Abs [Armonía esféricaY [1, 0, r, w]] ^ 2, {r, 0, Pi}, {w, 0, 2 Pi},
En caja -> Falso, Ejes -> Falso, PlotPoints -> 150,
ColorFunction -> Function [{r, w, z}, Hue [z]], Mesh -> 4],
SphericalPlot3D [
Abs [Armonía esféricaY [1, 1, r, w]] ^ 2, {r, 0, Pi}, {w, 0, 2 Pi},
En caja -> Falso, Ejes -> Falso, PlotPoints -> 150,
ColorFunction -> Function [{r, w, z}, Hue [z]], Mesh -> 4]}

produce la siguiente trama 3D:

Para [matemática] l = 4 [/ matemática] y [matemática] m = 2 [/ matemática] se obtiene la siguiente gráfica:

Una segunda forma de trazar las funciones de onda es escribir el siguiente código de Mathematica:

[correo electrónico protegido]
Tabla [SphericalPlot3D [
[correo electrónico protegido] @SphericalHarmonicY [l, m, \ [Theta], \ [Phi]], {\ [Theta],
0, Pi}, {\ [Phi], 0, 2 Pi}, PlotRange -> 0.6, Malla -> Ninguno,
En caja -> Falso, Ejes -> Ninguno, Tamaño de imagen -> 125,
ColorFunction -> “NeonColors”], {l, 0, 3}, {m, 0, l}]

La trama 3D resultante es (haga clic en la imagen para ampliarla):

Una tercera forma es usar un código interesante de Mathematica que se puede encontrar en el siguiente enlace:

¿Hay algo como DensityPlot3D para visualizar orbitales atómicos?

Como ejemplo, aquí hay un fragmento de código del enlace de arriba (con algunas modificaciones), usando la función RegionPlot3D [] Mathematica, y mostrando los valores de los números cuánticos [math] n [/ math], [math] l [ / math] y [math] m [/ math]:

Borrar [rMin, rMax, r, \ [Theta], \ [Phi]];
{rMin [n_, l_], rMax [n_, l_]} =
r /. Simplifique [Resolver [(l * (l + 1)) / r ^ 2 – 2 / r == – (1 / n ^ 2), r], n> 0];
sphericalToCartesian =
Hilo [{r, \ [Theta], \ [Phi]} -> {Sqrt [x ^ 2 + y ^ 2 + z ^ 2],
ArcCos [z / Sqrt [x ^ 2 + y ^ 2 + z ^ 2]], Arg [x + I * y]}];
\ [Psi] [n_, l_, m _] [
r_, \ [Theta] _, \ [Phi] _]: = (Sqrt [(n – l – 1)! / (n + l)!] * ((2 * r) / n) ^
l * (2 / n ^ 2) * LaguerreL [n – l – 1, 2 * l + 1, (2 * r) / n] *
Armónica esféricaY [l, m, \ [Theta], \ [Phi]]) / E ^ (r / n)
ClearAll [plotOrbital];
plotOrbital [f_, range_, contour_, opt: OptionsPattern []]: =
RegionPlot3D [
Evalúe [Abs [f [r, \ [Theta], \ [Phi]] /. sphericalToCartesian] ^ 2>
contorno], {x, -rango, rango}, {y, -rango, rango}, {z, -rango,
range}, opt, Mesh -> False, PlotPoints -> 35,
ColorFunction -> “Rainbow”, Lighting -> “Neutral”,
PlotTheme -> “Clásico”]
grid = Table [
Etiquetado [plotOrbital [\ [Psi] [n, l, m], 2 * n ^ 2, 0.05 / n ^ 6],
Fila [{“n =”, n, “, \ [ScriptL] =”, l, “, m =”, m}]], {n, 1,
3}, {l, 0, n – 1}, {m, 0, l}];
Columna [cuadrícula]

La trama 3D resultante es:

Y otra buena manera de visualizar las funciones de onda es usar el comando Manipulate [] y la función DensityPlot [] Mathematica. El usuario puede modificar los parámetros y los números cuánticos [matemática] n [/ matemática], [matemática] l [/ matemática] y [matemática] m [/ matemática]. El código está tomado de un cuaderno de Mathematica (HydrogenOrbitals.nb) que se puede encontrar en el siguiente enlace:

Cuadernos de Mathematica

El codigo es:

Rnl [n_, l_, r_]: = (r ^ l) * Exp [-r / 2] * LaguerreL [nl-1, 2 * l + 1, r];
Ylm [l_, m_, theta_, phi_]: = SphericalHarmonicY [l_, m, theta, phi];

Manipular [If [l> = n, l = n – 1];
Si [m> l, m = l];
DensityPlot [
Módulo [{r = Norma [{x, 0, z}]},
4 \ [Pi] r ^ 2 (Rnl [n, l, r]) ^ 2 Re [
Ylm [l, m, ArcCos [z / r], ArcTan [x, 0]] *
Conjugado [Ylm [l, m, ArcCos [z / r], ArcTan [x, 0]]]]
],
{x, -side, side}, {z, -side, side}, Mesh -> False, Frame -> False,
PlotPoints -> Round [resolución], ColorFunctionScaling -> True,
ColorFunction -> “SunsetColors”,
PlotRange -> {0, 10 ^ scale}], {{n, 8, “número cuántico principal”}, 1,
8, 1, ControlType -> Setter}, {{l, 3, “momento angular”},
Rango [0, n – 1],
ControlType -> SetterBar}, {{m, 1, “número cuántico magnético”},
Rango [0, l],
ControlType -> SetterBar}, {{lado, 40, “Longitud de un lado”}, 1, 200,
ControlType -> Control deslizante [Dinámico [lado]]}, {{escala, 16,
“Escala vertical”}, 1, 30, ControlType -> Control deslizante [Dinámico [escala]]},
{{resolución, 40, “Resolución”}, 30, 100,
ControlType -> Control deslizante [Dinámico [escala]]}
]

A continuación se muestra un ejemplo de la gráfica resultante para [matemática] n = 3 [/ matemática], [matemática] l = 1 [/ matemática] y [matemática] m = 1 [/ matemática]:

Y la gráfica resultante para los números cuánticos [matemática] n = 4 [/ matemática], [matemática] l = 3 [/ matemática] y [matemática] m = 0 [/ matemática]:

Mathematica puede guardar el cuaderno de Mathematica y el código dentro de él como una página html, y las imágenes de las parcelas pueden guardarse como mapas de bits o archivos animados e insertarse en una página web.

Espero que esta respuesta haya sido instructiva.

Estos parecen ‘cortes’ planos de la función de densidad de probabilidad para un electrón en el potencial de Coulomb proporcionado por un núcleo de hidrógeno.

Primero, debe obtener la expresión real para el PDF (función de densidad de probabilidad) para cada estado (por cada estado me refiero a cada combinación de los números cuánticos que ve en la esquina inferior derecha). Por ‘expresión real’ quiero decir que necesita una forma de traducir las funciones especiales, como [math] Y_ {lm} (\ theta \ varphi) [/ math] en una expresión que involucra theta y phi. Estos se llaman polinomios de Laguerra (L) y armónicos esféricos (Y). Estoy seguro de que hay muchas bibliotecas en varios lenguajes de programación que proporcionan esos.

Esa fue la parte difícil. A continuación, debe encontrar el PDF en algún plano. Tenga en cuenta que la expresión que ve en la esquina superior derecha NO es el PDF. Esa es la función de onda, de la que tienes que calcular el cuadrado absoluto para obtener el PDF. Esto se debe a que la mecánica cuántica es extraña :). Creo que simplemente congelaría theta en algún valor, digamos theta = 0, escanearé phi de 0 a 2 pi y r de cero a lo que haga que la trama se vea bien (supongo que serían unos pocos radios de Bohr), y trazaré el valor del PDF en ese punto en un mapa de calor con coordenadas polares.

No es exactamente compatible con HTML, pero su pregunta es lo suficientemente intrigante como para analizarla.

Implementé mi código de hidrógeno en C [1], utilizando una implementación de lienzo simple que hice hace años (no incluida en el código, lo siento, pero debería ser lo suficientemente fácil de reemplazar). Siéntase libre de jugar con el código.

(la distribución 4.3.0)

Lo armé todo en un par de horas, mientras estaba enfermo, por lo que la calidad no es la mejor. Hay algunos errores en el manejo del ángulo, por lo que hay algunos NaN para ciertos ángulos, pero al menos tienes la esencia del algoritmo.

Editar: Todavía estoy enfermo y no puedo ir a trabajar, así que en mi aburrimiento arreglé los errores de ángulo y también hice un video de cómo podría verse un átomo de hidrógeno 6–4–2:

Notas al pie

[1] http://alkanen.no-ip.biz/hydroge