El átomo de hidrógeno en una dimensión
El potencial truncado es
cuya representación gráfica es
f=@(x) -1./abs(x); hold on fplot(f,[0.5,10],'r') fplot(f,[-10,-0.5],'r') line([-0.5,0.5],[-2,-2],'color','r') hold off axis off

Donde , es el radio de Bohr, m es la masa del electrón, e es su carga, δ es un parámetro positivo y
En la región I, |x|<a0δ, la ecuación de Schrödinger es
La solución de esta ecuación diferencial es conocida
Las solución simétrica ψ(-x)=ψ(x), se obtiene cuando B1=0
Las solución antisimétrica ψ(-x)=-ψ(x), se obtiene cuando A1=0
En la región II, |x|≥a0δ, la ecuación de Schrödinger es
Definimos el parámetro β tal que
La ecuación de Schrödinger se convierte en
Hacemos el cambio de variable
Obtenemos la ecuación diferencial, válida para y≥0
Llamando z=2y
Esta ecuación diferencial es de un tipo, cuya solución es conocida
Deshacemos los cambios de variable
Para que ψ(x) sea finito (tienda a cero) cuando x→∞, entonces A2=0
U(a,b,z), es la función hipergeométrica confluente de Kummer
La solución simétrica, ψ(-x)=ψ(x)
La función de onda en las regiones I y II es
Teniendo en cuenta que
La condición de continuidad de la función de onda y de la derivada primera en x=a0δ se expresa
Dividiendo la segunda entre la primera, obtenemos una ecuación trascendente, cuyas raíces nos dan los valores de β, o los niveles de energía En
Calculamos los valores de β para δ=10-3
function hipergeometrica_6
delta=1e-3;
f=@(x) delta*sqrt(2/delta-1./x.^2).*tan(sqrt(2/delta-1./x.^2)*delta)+
(1-delta./x)-2*delta*(1-x).*kummerU(2-x,3,2*delta./x)./
(x.*kummerU(1-x,2,2*delta./x));
x=linspace(0,4,50);
rPar=raices(f,x);
disp(rPar)
hold on
fplot(f,[0,3.5])
for j=1:length(rPar)
plot(rPar(j),0, 'ro','markersize',3,'markerfacecolor','r')
end
hold off
grid on
ylim([-3,3])
xlabel('x/a_0')
ylabel('f(x)')
title('Raíces de la ecuación transcendente')
function r = raices(f, x)
y=f(x);
indices=find(y(1:end-1).*y(2:end)<0);
r=zeros(1,length(indices));
for k=1:length(indices)
r(k)=fzero(f, [x(indices(k)), x(indices(k)+1)]);
end
end
end
0.1085 1.0020 1.1510 2.0020 2.1519 3.0020 3.1521
Representamos las raíces mediante puntos de color rojo

Las raíces 1.0020, 2.0020 y 3.0020 no corresponden a esta simetría. Como ya hemos visto en otros ejemplos, la forma de la función f(x)=0, no es la adecuada para calcular las raíces de una ecuación transcendente. La transformamos en
function hipergeometrica_7
delta=1e-3;
x=linspace(0,4,50);
rPar=raices(@par,x);
disp(rPar)
hold on
fplot(@par,[0,3.5])
for j=1:length(rPar)
plot(rPar(j),0, 'ro','markersize',3,'markerfacecolor','r')
end
hold off
grid on
ylim([-10,10])
xlabel('x/a_0')
ylabel('f(x)')
title('Raíces de la ecuación transcendente')
function res=par(x)
q=sqrt(2/delta-1./x.^2);
u_2=kummerU(1-x,2,2*delta./x);
u_3=kummerU(2-x,3,2*delta./x);
res=((x-delta).*u_2-2*delta*(1-x).*u_3).*cos(q*delta)+delta*(x.*u_2).
*(q.*sin(q*delta));
end
function r = raices(f, x)
y=f(x);
indices=find(y(1:end-1).*y(2:end)<0);
r=zeros(1,length(indices));
for k=1:length(indices)
r(k)=fzero(f, [x(indices(k)), x(indices(k)+1)]);
end
end
end
0.1085 1.1510 2.1519 3.1521
Representamos las raíces mediante puntos de color rojo

Cuando δ disminuye por ejemplo, δ=10-5, la función f(x) es casi tangente al eje X cerca del origen, por este motivo, ya no se obtiene la primera raíz, x/a0≈0
Funciones de onda
La última expresión relaciona los coeficientes A1 y B2
Por razones de simetría, se deberá cumplir que
Lo que nos permite determinar A1
Haciendo el cambio de variable, z=x/(a0δ)
Despejamos A1 y calculamos B2
Representamos la función de onda del estado fundamental, β=0.1085, para δ=10-3. Comprobamos que la función de onda es continua para x/a0=10-3
beta=0.1085;
delta=1e-3;
f=@(x) x.*exp(-x*delta/beta).*kummerU(1-beta,2,2*delta*x/beta);
g=@(x) f(x).^2;
area1=integral(g,1,20);
q=sqrt(2/delta-1/beta^2);
area=(1+sin(2*q*delta)/(2*q*delta))/2+cos(q*delta)^2*area1/(exp(-2*delta/beta)*
kummerU(1-beta,2,2*delta/beta)^2);
A1=sqrt(0.5/(delta*area));
B2=A1*cos(q*delta)*beta/(delta*exp(-delta/beta)*kummerU(1-beta,2,2*delta/beta));
hold on
f1=@(x) A1*cos(q*x);
fplot(f1 ,[0,delta])
f2=@(x) B2*(x.*exp(-x/beta)).*kummerU(1-beta,2,2*x/beta)/beta;
fplot(f2 ,[delta, 0.5])
hold off
grid on
xlabel('x/a_0')
xlim([0,5*delta])
ylabel('\Psi(x)')
title('Funciones de onda')

Representamos la función de onda hasta x/a0=0.5, anulando la sentencia

Representamos las funciones de onda para los niveles, β=1.1510, 2.1519, 3.1521, calculados para δ=10-3.
delta=1e-3;
for beta=[1.1510,2.1519,3.1521]
f=@(x) x.*exp(-x*delta/beta).*kummerU(1-beta,2,2*delta*x/beta);
g=@(x) f(x).^2;
area1=integral(g,1,20);
q=sqrt(2/delta-1/beta^2);
area=(1+sin(2*q*delta)/(2*q*delta))/2+cos(q*delta)^2*area1/(exp(-2*delta/beta)
*kummerU(1-beta,2,2*delta/beta)^2);
A1=sqrt(0.5/(delta*area));
B2=A1*cos(q*delta)*beta/(delta*exp(-delta/beta)*kummerU(1-beta,2,2*delta/beta));
hold on
f1=@(x) A1*cos(q*x);
fplot(f1 ,[0,delta])
f2=@(x) B2*(x.*exp(-x/beta)).*kummerU(1-beta,2,2*x/beta)/beta;
fplot(f2, [delta, 25])
end
hold off
grid on
xlabel('x/a_0')
ylabel('\Psi(x)')
title('Funciones de onda')

La solución antisimétrica, ψ(-x)=-ψ(x)
La función de onda en las regiones I y II es
La condición de continuidad de la función de onda y de la derivada primera en x=a0δ se expresa
Dividiendo la segunda entre la primera, obtenemos una ecuación trascendente, cuyas raíces nos dan los valores de β, o los niveles de energía En
que transformamos para realizar el cálculo numérico de forma adecuada
Calculamos los valores de β para δ=10-3
function hipergeometrica_9
delta=1e-3;
x=linspace(0,4.5,50);
rImpar=raices(@impar,x);
disp(rImpar)
hold on
fplot(@impar,[0,4.5])
for j=1:length(rImpar)
plot(rImpar(j),0, 'bo','markersize',3,'markerfacecolor','b')
end
hold off
grid on
ylim([-300,300])
xlabel('x/a_0')
ylabel('f(x)')
title('Raíces de la ecuación transcendente')
function res=impar(x)
q=sqrt(2/delta-1./x.^2);
u_2=kummerU(1-x,2,2*delta./x);
u_3=kummerU(2-x,3,2*delta./x);
res=((x-delta).*u_2-2*delta*(1-x).*u_3).*sin(q*delta)-delta*(x.*u_2).
*(q.*cos(q*delta));
end
function r = raices(f, x)
y=f(x);
indices=find(y(1:end-1).*y(2:end)<0);
r=zeros(1,length(indices));
for k=1:length(indices)
r(k)=fzero(f, [x(indices(k)), x(indices(k)+1)]);
end
end
end
1.0000 2.0000 3.0000 4.0000
Representamos las raíces mediante puntos de color azul

Funciones de onda
La última expresión relaciona los coeficientes B1 y B2
Por razones de simetría se deberá cumplir que
Lo que nos permite determinar B1
Haciendo el cambio de variable, z=x/(a0δ)
Despejamos B1 y calculamos B2
Representamos las funciones de onda para los niveles β=1.0000, 2.0000, 3.0000, que hemos calculado para δ=10-3. Comprobamos que la función de onda es continua para x/a0=10-3
delta=1e-3;
for beta=[1.0,2.0,3.0]
f=@(x) x.*exp(-x*delta/beta).*kummerU(1-beta,2,2*delta*x/beta);
g=@(x) f(x).^2;
area1=integral(g,1,20);
q=sqrt(2/delta-1/beta^2);
area=(1-sin(2*q*delta)/(2*q*delta))/2+sin(q*delta)^2*area1/(exp(-2*delta/beta)
*kummerU(1-beta,2,2*delta/beta)^2);
B1=sqrt(0.5/(delta*area));
B2=B1*sin(q*delta)*beta/(delta*exp(-delta/beta)*kummerU(1-beta,2,2*delta/beta));
hold on
f1=@(x) B1*sin(q*x);
fplot(f1 ,[0,delta])
f2=@(x) B2*(x.*exp(-x/beta)).*kummerU(1-beta,2,2*x/beta)/beta;
fplot(f2, [delta, 25])
end
hold off
grid on
xlabel('x/a_0')
xlim([0,3*delta])
ylabel('\Psi(x)')
title('Funciones de onda')

Representamos la función de onda hasta x/a0=25, anulando la sentencia

Niveles de energía
Reprentamos los niveles de energía β en función de 1/ln(1/δ) para δ=10-2, 10-3, 10-4, 10-5, 10-6 y 10-7
- mediante puntos de color rojo, que da lugar a una función de onda simétrica
- mediante puntos de color azul, que da lugar a una función de onda antisimétrica
function hypergeometrica_3
x=linspace(0,5,60);
hold on
for k=2:7
delta=1/10^k;
rPar=raices(@par, x);
rImpar=raices(@impar, x);
for j=1:length(rPar)
plot(1/log(1/delta),rPar(j),'ro','markersize',3,'markerfacecolor','r')
end
for j=1:length(rImpar)
plot(1/log(1/delta),rImpar(j),'bo','markersize',3,'markerfacecolor','b')
end
end
hold off
xlabel('1/ln(1/\delta)')
ylabel('\beta')
title('Niveles de energía')
grid on
function res=par(x)
q=sqrt(2/delta-1./x.^2);
u_2=kummerU(1-x,2,2*delta./x);
u_3=kummerU(2-x,3,2*delta./x);
res=((x-delta).*u_2-2*delta*(1-x).*u_3).*cos(q*delta)+delta*(x.*u_2).
*(q.*sin(q*delta));
end
function res=impar(x)
q=sqrt(2/delta-1./x.^2);
u_2=kummerU(1-x,2,2*delta./x);
u_3=kummerU(2-x,3,2*delta./x);
res=((x-delta).*u_2-2*delta*(1-x).*u_3).*sin(q*delta)-delta*(x.*u_2).
*(q.*cos(q*delta));
end
function r = raices(f, x)
y=f(x);
indices=find(y(1:end-1).*y(2:end)<0);
r=zeros(1,length(indices));
for k=1:length(indices)
r(k)=fzero(f, [x(indices(k)), x(indices(k)+1)]);
end
end
end

En la tabla se recogen los valores numéricos de los puntos de la gráfica para distintos valores de δ
| 10-2 | 10-3 | 10-4 | 10-5 | 10-6 | 10-7 |
|---|---|---|---|---|---|
| 0.1729 | 0.1085 | ? | ? | ? | ? |
| 1.0001 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 |
| 1.2200 | 1.1510 | 1.1136 | 1.0907 | 1.0753 | 1.0643 |
| 2.0001 | 2.0000 | 2.0000 | 2.0000 | 2.0000 | 2.0000 |
| 2.2215 | 2.1519 | 2.1142 | 2.0910 | 2.0755 | 2.0645 |
| 3.0001 | 3.0000 | 3.0000 | 3.0000 | 3.0000 | 3.0000 |
| 3.2219 | 3.1521 | 3.1143 | 3.0911 | 3.0756 | 3.0645 |
| 4.0001 | 4.0000 | 4.0000 | 4.0000 | 4.0000 | 4.0000 |
| 4.2220 | 4.1522 | 4.1143 | 4.0911 | 4.0756 | 4.0646 |
El símbolo ? indica que no se ha podido calcular el nivel de energía
Referencias
Rufus Boyack, Frank Marsiglio. The bound-state solutions of the one-dimensional hydrogen atom. Am. J. Phys. 89 (4), April 2021, pp. 418-425