to find the root of quantum transcendental equation

1 回表示 (過去 30 日間)
physics learner
physics learner 2019 年 4 月 11 日
編集済み: David Goodmanson 2019 年 4 月 12 日
Vc = 0.5;
c = 3e8;
m0 = 0.511e6/c^2;
me1 = 0.067*m0;
me2=0.039*m0;
hr = 6.58e-16;
k= sqrt(2*me1*Ee/hr^2);
K= sqrt(2*me2*(Vc-Ee)/hr^2);
R=2e-9;
equation K*cot(K*R)= -k
how to find the root of this eqution
  4 件のコメント
David Goodmanson
David Goodmanson 2019 年 4 月 11 日
編集済み: David Goodmanson 2019 年 4 月 12 日
Hi pl,
Evidently Ee and Vc are in eV, and it appears that Vc>Ee. Then k and K are in the neighborhood of 5e8 m^-1. So R = 2 produces a kR of about 1e9. Do you have any thoughts on the units and the size of R? (R subsequently changed by the OP from 2 to 2e-9)
Walter Roberson
Walter Roberson 2019 年 4 月 11 日
Do you have the symbolic toolbox?

サインインしてコメントする。

採用された回答

David Goodmanson
David Goodmanson 2019 年 4 月 12 日
編集済み: David Goodmanson 2019 年 4 月 12 日
Hi pl,
The boundary condition K*cot((KR) = -k (denoted by bc1 below) is for a wave function that is proportional to sin(KR) in the potential well, giving the odd parity states. However, it appears that your potential well is not deep enough to support any of those states. Plot 1 does not show a crossing for the would-be first excited state.
The even parity states are proportional to cos(KR) in the well; that boundary condition is denoted by bc0 below. Plot 2 shows a crossing and there is a solution for the ground state.
Vc = .5;
Ee = 0:.01:Vc-.01;
c = 3e8;
m0 = 0.511e6/c^2;
me1 = 0.067*m0;
me2=0.039*m0;
hr = 6.58e-16;
R=2e-9;
k= sqrt(2*me1*Ee/hr^2);
K= sqrt(2*me2*(Vc-Ee)/hr^2);
bc1 = K.*cot(K*R); % = -k; first excited state and odd parity states
bc0 = -K.*tan(K*R); % = -k; ground state and even parity states
figure(1)
plot(Ee,bc1,Ee,-k); grid on
figure(2)
plot(Ee,bc0,Ee,-k); grid on
% solution
ks = @(Ee) sqrt(2*me1*Ee/hr^2);
Ks = @(Ee) sqrt(2*me2*(Vc-Ee)/hr^2);
fun = @(Ee) -Ks(Ee).*tan(Ks(Ee)*R) + ks(Ee);
Ee_groundstate = fzero(@(Ee) fun(Ee),[0 .5])

その他の回答 (1 件)

David Wilson
David Wilson 2019 年 4 月 11 日
Well you have given us quite a puzzler; little background info and no context.
I'm assuming you are looking for the value Ee since you didn't give us a value for it. But are you sure your equation is correct? I couldn't find a (real) solution, only complex, so I guessed you made a sign error.
If the equation really is K*cot(K*R)= +k (note sign change), then we have a solution as shown below.
Vc = 0.5;
c = 3e8;
m0 = 0.511e6/c^2; me1 = 0.067*m0; me2=0.039*m0;
hr = 6.58e-16;
R=2e-9;
k= @(Ee) sqrt(2*me1*Ee/hr^2);
K= @(Ee) sqrt(2*me2*(Vc-Ee)/hr^2);
f = @(Ee) K(Ee).*cot(K(Ee)*R)-k(Ee); % should equal zero
Ee0 = 0.01; % who knows ??
Ee = fzero(@(Ee) f(Ee), Ee0)
Ee = linspace(0,0.02)';
plot(Ee, f(Ee)); yline(0);
  2 件のコメント
physics learner
physics learner 2019 年 4 月 12 日
your code is wrong for each value of R yield same result
Torsten
Torsten 2019 年 4 月 12 日
編集済み: Torsten 2019 年 4 月 12 日
Not true:
function main
Vc = 0.5;
c = 3e8;
m0 = 0.511e6/c^2; me1 = 0.067*m0; me2=0.039*m0;
hr = 6.58e-16;
k= @(Ee) sqrt(2*me1*Ee/hr^2);
K= @(Ee) sqrt(2*me2*(Vc-Ee)/hr^2);
f = @(Ee,R) K(Ee).*cot(K(Ee)*R)-k(Ee);
Ee0 = 0.01;
for i=1:180
R(i) = 2e-9 - i*1e-11;
Ee(i) = fzero(@(Ee) f(Ee,R(i)), Ee0)
Ee0 = Ee(i);
end
plot(R,Ee)
end

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeAssembly についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by