Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
25
Добавлен:
17.08.2019
Размер:
1.33 Mб
Скачать

Электрон в одномерной полубесконечной потенциальной яме

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

 

 

 

 

 

 

 

 

 

 

То есть при определенных значениях энергии частица не будет находится в центре ямы из-за интерференции ВФ самой с собой. Жуть...

Соседние файлы в папке Лебедев_4курс