Лебедев КММФЯ / Лебедев_4курс / 2_Finity_pits
.pdfЭлектрон в одномерной полубесконечной потенциальной яме
In [1]: using Plots, Roots
In [2]: plot([2,2], [2,4], line = (:arrow, 3, :black), annotations=(2.02, 4, text("U(x)", :left)) ) plot!([1.75,3], [2,2], line = (:arrow, 1, :black), annotations=(3, 1.92, text("x", :down))) plot!([2,2.4,2.4,3], [2,2,3,3], line = ( 3, :black), leg=false, ticks=nothing, border=:none )
annotate!([(2.4, 3.05, text("U0", :right)), (2.4, 1.92, text("a", :center)),
(2, 1.92, text("0", :center)), (2.2, 2.5, text("I")), (2.6, 2.5, text("II")) ])
Out[2]:
U(x)
U0
I |
II |
|
|
0 |
a |
x |
Стационарное уравнение Шрёдингера |
|
для данной системы удобно разбить на выражения для областей I и II (Помним о линейности и |
суперпозиции): |
|
|
, |
, |
По условию |
, |
. Далее нужно найти допустимые значения Е, для этого используем условия сшивки |
(непрерывность ВФ и их производных в точке х=а):
Не вдаваясь в анализ можно сразу кинуться решать эту систему относительно Е
Вы ведь хорошо разбираетесь в численых методах решения трансцендентных уравнений? Если нет, то идём дальше. Делим первое уравнение на второе, и стараемся прийти к чему-то проще тангенса, что можно было бы решить графически:
Это уравнение можно решить графически относительно |
. Используя условие |
, получаем ограничение на аргумент |
|
|
||||
|
|
. Также пригодится условие существования хотябы одного энергетического уровня: |
|
. |
||||
|
|
|
||||||
Пересечения будут происходить до |
|
|
. A находим из условий нормировки, С - из условий на границе. |
|
|
|||
|
|
|
In [3]: #const ħ = 6.5821e-16 # eV*s const ħ = 1.0546e-34 # J*s const m = 9.1094e-31 # kg const q = 1.6022e-19 # Kl
k(E) = sqrt(2m*E*q)/ħ # 1/m
Out[3]: k (generic function with 1 method)
In [4]: function nrg(U0, a = 10e-10)
γ = k(U0)*a # безразмерная ka = [0:0.005γ:γ;]
# ищем точки пересечения
solup = fzeros(x->sin(x)-x/γ, 0, γ) # up soldn = fzeros(x->sin(x)+x/γ, 0, γ) # down solns = sort( [solup; soldn] )
# отсеиваем неудовлетворяющие ограничениям: function conds(x)
N = γ/π
ret = false for n = 0:N
ret |= (0.5π+π*n < x < π+π*n) # хитро?
end
return ret
end
En = filter(conds, solns)
plot(sin, ka, line = (3) ) plot!(x-> x/γ, ka, line = (3) ) plot!(x-> -x/γ, ka, line = (3) )
scatter!( sin, solns, marker=(20, 0.2, :orange) ) scatter!( sin, En, marker=(10, 0.8, :red), legend = false ) title!("Allowed energy values")
return ħ^2 / (2m*q*a^2) * En.^2
end
Out[4]: nrg (generic function with 2 methods)
In [5]: E = nrg(5, 20e-10) # 5 эВ, 20 Ангстрем xaxis!("ka")
Out[5]: |
Allowed energy values |
|
1.0 |
|
|
|
|
|
|
|
0.5 |
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
|
|
-0.5 |
|
|
|
|
|
|
|
-1.0 |
|
|
|
|
|
|
|
0 |
5 |
10 |
15 |
|
20 |
|
|
|
|
ka |
|
|
|
|
In [6]: |
# красные - которые подходят по условиям |
|
|
|
|
||
|
E # разрешенные уровни энергии |
|
|
|
|
|
|
Out[6]: 7-element Array{Float64,1}: |
|
|
|
|
|
||
|
0.08629114345993612 |
|
|
|
|
|
|
|
0.34490577574082765 |
|
|
|
|
|
|
|
0.7750040738564451 |
|
|
|
|
|
|
|
1.3749315708956715 |
|
|
|
|
|
|
|
2.141619844004133 |
|
|
|
|
|
|
|
3.0688658909941755 |
|
|
|
|
|
|
|
4.140063639290345 |
|
|
|
|
|
|
In [7]: |
function ψ(n = 1, U0 = 1, a = 10e-10) # номер энерг-го ур-ня, ширина ямы |
|
|||||
|
x1 = [0:0.01a:a;] |
|
|
|
|
|
|
|
x2 = [a:0.01a:1.5a;] |
|
|
|
|
|
|
|
k1 = k( E[n] ) # 1/m |
|
|
|
|
|
|
|
k2 = k( U0-E[n] ) |
|
|
|
|
|
|
|
A = sqrt( 4k1/(2k1*a - sin(2k1*a)) ) |
|
|
|
|
||
|
#C = sqrt(2k2) * exp(a*k2) # ??? из нормировки |
|
|
|
|
||
|
C = A*sin(k1*a)/exp(-k2*a) |
|
|
|
|
|
|
|
ψ1(x) = A*sin( k1*x ) |
|
|
|
|
|
|
|
ψ2(x) = C*exp(-k2*x ) |
|
|
|
|
|
|
|
plot(ψ1, x1, line = (3), legend = false ) |
|
|
|
|
||
|
plot!(ψ2, x2, line = (3), xaxis = ("x, A") ) |
|
|
|
|
||
|
vline!([a]) |
|
|
|
|
|
|
|
title!("E = $(round(E[n], digits = 3)) eV") |
|
|
|
|
||
|
end |
|
|
|
|
|
|
Out[7]: ψ (generic function with 4 methods) |
|
|
|
|
|||
In [8]: |
ψ(3, 5, 20e-10) # условия ставить те же |
|
|
|
|
||
Out[8]: |
|
|
E = 0.775 eV |
|
|
|
|
|
3×104 |
|
|
|
|
|
|
|
2×104 |
|
|
|
|
|
|
|
1×104 |
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
- 1×104 |
|
|
|
|
|
|
|
- 2×104 |
|
|
|
|
|
|
|
- 3×104 |
|
|
|
|
|
|
|
0 |
1×10 |
- 9 |
2×10 |
- 9 |
3×10 |
- 9 |
|
|
x, A |
|
|
|||
|
|
|
|
|
|
|
Электрон в одномерной потенциальной яме конечной глубины
In [9]: plot([0,0], [-1,4], line = (:arrow, 1, :black), annotations=(0.2, 4, text("U(x)", :left)) ) plot!([-4,4], [0,0], line = (:arrow, 1, :black), annotations=(4, 0.2, text("x", :up))) plot!([-4,-2,-2,2,2,4 ], [3,3,0,0,3,3 ], line = ( 3, :black), leg=false, ticks=nothing, border=:none )
annotate!([(2, 3.2, text("U0", :up)), (2, -0.2, text("a/2", :center)), (-2, -0.2, text("-a/2", :center)) ])
Out[9]:
U(x)
U0
x
-a/2 |
a/2 |
Как и раньше, расписываем стационарное уравнение Шрёдингера |
для каждой области: |
, |
, |
из условия ограничения на бесконечности.
Используем условие непрерывности волновой функции и её производной на границах потенциальной ямы:
изначения эффективной массы электрона в веществе А и В.
Система имеет нетривиальные решения при равенстве нулю детерминанта:
In [10]: using Reduce, Latexify
Reduce (Free CSL version, revision 4534), 05-Apr-18 ...
In [ ]: using ForceImport
@force using Reduce.Algebra
In [91]: function ltx(formula)
l = latexify(formula)
res = replace(l, r"\\euler"=>"e") latexstring(res)
end
Out[91]: ltx (generic function with 1 method)
In [116]: a1 = :( exp(β*x) ) a2 = :( exp(i*γ*x) )
b2 = :( exp(-i*γ*x) ) b3 = :( exp(-β*x) )
da1 = df(a1, :x)/:m_b da2 = df(a2, :x)/:m_a db2 = df(b2, :x)/:m_a db3 = df(b3, :x)/:m_b
Out[116]: :(-β / ( ^ (x * β) * m_b))
In [117]: M = [
a1 -a2 -b2 0 da1 -da2 -db2 0 0 a2 b2 -b3
0 da2 db2 -db3
]
ltx(M)
Out[117]:
In [165]: trnsf(s, m) = Algebra.sub((:(x= $s*a/2),:(y=y)),m)
M2 = [ i==1||i==2 ? trnsf(-1, M[i,j]) : trnsf(1, M[i,j]) for i=1:4, j=1:4 ]
Out[165]: 4×4 Array{Any,2}: |
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||
:(1 / ^ ((a * β) / 2)) |
… 0 |
|
|||||||||||||||||||||||||||||||||||||||||
:(β / ( ^ ((a * β) / 2) * m_b)) |
0 |
|
|||||||||||||||||||||||||||||||||||||||||
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
:(-1 / ^ ((a * β) / 2)) |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
:(β / ( ^ ((a * β) / 2) * m_b)) |
|
In [166]: ltx(M2) |
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||
Out[166]: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
In [167]: M2 |> det |> ltx
Out[167]:
In [168]: dM2 = det(M2)
Out[168]: :((((m_a ^ 2 * β ^ 2 - m_b ^ 2 * γ ^ 2) - 2 * im * m_a * m_b * β * γ) - ^ (2 * a * im * γ) * ((m_a ^ 2 * β ^ 2 - m_b ^ 2 * γ ^ 2) + 2 * im * m_a * m_b * β * γ)) / ( ^ (a * im * γ + a * β) * m_a ^ 2 * m_b ^ 2))
In [175]: Expr(:function,:(fun(γ, β, a, m_a, m_b)), dM2 ) |> eval
Out[175]: fun (generic function with 2 methods)
In [12]: # соберется такая функция
fun(γ, β, a, m_a, m_b) = (((m_a ^ 2 * β ^ 2 - m_b ^ 2 * γ ^ 2) - 2 * im * m_a * m_b * β * γ) -
^ (2 * a * im * γ) * ((m_a ^ 2 * β ^ 2 - m_b ^ 2 * γ ^ 2) + 2 * im * m_a * m_b * β * γ)) / ( ^ (a * im * γ + a * β) * m_a ^ 2 * m_b ^ 2)
Out[12]: fun (generic function with 1 method)
In [13]: function detE(E; U0 = 1, a = 10e-10) k1 = k( E )
k2 = k( U0-E )
fun(k1, k2, a, m, m) |> abs
end
Out[13]: detE (generic function with 1 method)
Решения находим графически и уточняем с помощью fzero
In [14]: plot(detE, [0:0.001:0.75], yaxis=("Y", (0, 1e78) ) )
Out[14]: 1×1078
y1
8×1077
6×1077
Y
4×1077
2×1077
0 |
0.0 |
0.2 |
0.4 |
0.6 |
In [ ]: fzero(detE, 0.2 ) # xn = 0.19076547740519453
Рассмотрим иной путь решения. Система ВФ может быть представлена в виде:
Из условий симметрии задачу можно разбить на две части ( |
|
). Для четных решений синус, иначе косинус (или наоборот?) |
||||||||||||||||||||||
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
In [15]: function nrg3b(a = 10e-10, U0 = 1)
e = [0:0.01:U0;] E1(E) = tan(0.5a*k(E))
Sq1(E) = sqrt(U0/E - 1.)
E2(E) = cot(0.5a*k(E))
Sq2(E) = -sqrt(U0/E - 1.)
plot(E1, e)
p1 = plot!(Sq1, e) plot(E2, e)
p2 = plot!(Sq2, e) plot(p1, p2)
end
Out[15]: nrg3b (generic function with 3 methods)
In [16]: |
nrg3b() |
|
|
|
|
|
|
|
|
|
Out[16]: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y1 |
2.5 |
|
|
|
y1 |
|
|
|
|
|
y2 |
|
|
|
y2 |
|
|
50 |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-2.5 |
|
|
|
|
|
-50 |
|
|
|
|
-5.0 |
|
|
|
|
|
|
|
|
|
|
-7.5 |
|
|
|
|
|
-100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-10.0 |
|
|
|
|
|
0.00 |
0.25 |
0.50 |
0.75 |
1.00 |
0.00 |
0.25 |
0.50 |
0.75 |
1.00 |
In [121]: |
fzero(E->tan(5e-10*k(E)) - sqrt(1. /E - 1.), 0.25 ), |
|||
|
fzero(E->cot(5e-10*k(E)) + sqrt(1. /E - 1.), 0.75 ) |
|||
Out[121]: (0.19076547740519442, 0.7027847578025961) |
||||
In [17]: |
function |
Ψ(En, a = 10e-10, U0 = 1) |
||
|
k1 |
= |
k(En) |
|
|
k2 |
= |
k(U0-En) |
|
|
A1 |
= |
1. |
# sqrt(k2)*exp(-0.25a*k2) |
|
A2 |
= |
0.5A1*(1. - im*k2/k1)*exp( 0.5a*(im*k1-k2) ) |
|
|
B2 |
= |
0.5A1*(1. + im*k2/k1)*exp(-0.5a*(im*k1+k2) ) |
|
|
B3 |
= |
0.5A1*( (1. - im*k2/k1)*exp( a*im*k1 ) + (1. + im*k2/k1)*exp( -a*im*k1 ) ) |
|
|
x1 |
= |
[-a:0.01a:-0.5a;] |
|
|
x2 |
= |
[-0.5a:0.01a:0.5a;] |
|
|
x3 |
= |
[0.5a:0.01a:a;] |
|
|
ψ1(x) = |
A1*exp(k2*x) |> abs2 |
||
|
ψ2(x) = |
A2*exp(im*k1*x) + B2*exp(-im*k1*x) |> abs2 |
||
|
ψ3(x) = |
B3*exp(-k2*x) |> abs2 |
plot(ψ1, x1, line = (3) ) plot!(ψ2, x2, line = (3) )
plot!(ψ3, x3, line = (3), xaxis = ("x, A") ) vline!([-0.5a, 0.5a], legend = false) title!("Location probability")
end
Out[17]: Ψ (generic function with 3 methods)
In [18]: Ψ(0.190765)
Out[18]: |
Location probability |
0.05 |
|
|
|
|
|
|
|
|
0.04 |
|
|
|
|
|
|
|
|
0.03 |
|
|
|
|
|
|
|
|
0.02 |
|
|
|
|
|
|
|
|
0.01 |
|
|
|
|
|
|
|
|
0.00 |
|
|
|
|
|
|
|
|
- 1×10 |
- 9 |
- 5×10 |
- 10 |
0 |
5×10 |
- 10 |
1×10 |
- 9 |
|
|
x, A |
|
|
||||
|
|
|
|
|
|
|
|
In [19]: Ψ(0.70278)
Out[19]: |
Location probability |
0.08 |
|
|
|
|
|
|
|
|
0.06 |
|
|
|
|
|
|
|
|
0.04 |
|
|
|
|
|
|
|
|
0.02 |
|
|
|
|
|
|
|
|
0.00 |
|
|
|
|
|
|
|
|
- 1×10 |
- 9 |
- 5×10 |
- 10 |
0 |
5×10 |
- 10 |
1×10 |
- 9 |
|
|
x, A |
|
|
||||
|
|
|
|
|
|
|
|
То есть при определенных значениях энергии частица не будет находится в центре ямы из-за интерференции ВФ самой с собой. Жуть...