方势垒散射数值计算

             

  • 本词条处于草稿阶段.
  • 未完成:需要改进程序,计算波函数随时间的变化.(给系数加上 $ \exp\left(- \mathrm{i} E t\right) $ 即可)
预备知识 方势垒的定态波函数
图
图 1:运行结果

代码 1:FSBsct.m
% 使用类 sin,cos 基底
clear; close all;

% === params ====
k0 = 4; a = 1/6;
Nk = 300; kmax = k0 + 12*a; kmin = max(kmax/Nk, k0 - 12*a);
x0 = 0;
Nx = 2000; xmin = x0-6/a; xmax = x0+6/a;
psi = @(x)exp(1i*k0*x).*exp(-(a*(x-x0)).^2);
L = 3; V0 = 1; m = 1;
% ==============

% plot FFT
k = linspace(kmin, kmax, Nk); dk = k(2)-k(1);
[g1, k1] = FFT(fftresize(psi(x),Nx*2), dx);
g = interp1(k1, g1, k);
figure; plot(k, abs(g), '.');
axis([kmin, kmax, 0, max(abs(g))*1.1]);
xlabel k; title 'FFT of \psi(x)';

A = zeros(1,Nk); B = A;
E = k.^2/(2*m);
psi1 = zeros(size(x));
for i = 1:Nk
    A(i) = integral(@(x)psi(x).*FSB(x,E(i),L,m,V0,0), ...
            xmin, xmax, 'RelTol', 1e-16);
    B(i) = integral(@(x)psi(x).*FSB(x,E(i),L,m,V0,1), ...
            xmin, xmax, 'RelTol', 1e-16);
    psi1 = psi1 + dk*A(i)*FSB(x,E(i),L,m,V0,0) ...
                + dk*B(i)*FSB(x,E(i),L,m,V0,1);
end
figure; plot(x, real(psi(x)));
hold on; plot(x, real(psi1), '--');
plot([xmin, -L,-L, L, L, xmax], [0, 0, 0.5, 0.5, 0, 0], 'b');
axis([xmin,xmax,-1,1]);
title 'reconstruction of \psi(x)'
% 使用类 exp(ikx), exp(-ikx) 基底
clear; close all;

% === params ====
k0 = 4; a = 1/6;
Nk = 300; kmax = k0 + 12*a; kmin = max(kmax/Nk, k0 - 12*a);
x0 = 0;
Nx = 2000; xmin = x0-6/a; xmax = x0+6/a;
psi = @(x)exp(1i*k0*x).*exp(-(a*(x-x0)).^2);
L = 3; V0 = 1; m = 1;
% ==============

% plot FFT
k = linspace(kmin, kmax, Nk); dk = k(2)-k(1);
[g1, k1] = FFT(fftresize(psi(x),Nx*2), dx);
g = interp1(k1, g1, k);
figure; plot(k, abs(g), '.');
axis([kmin, kmax, 0, max(abs(g))*1.1]);
xlabel k; title 'FFT of \psi(x)';

C1 = zeros(1,Nk); C2 = C1;
E = k.^2/(2*m);
psi1 = zeros(size(x));
for i = 1:Nk
    C1(i) = integral(@(x)psi(x).*conj(FSB2(x,E(i),L,m,V0,1)), ...
            xmin, xmax, 'RelTol', 1e-16);
    C2(i) = integral(@(x)psi(x).*conj(FSB2(x,E(i),L,m,V0,-1)), ...
            xmin, xmax, 'RelTol', 1e-16);
    psi1 = psi1 + dk*C1(i)*FSB2(x,E(i),L,m,V0,1) ...
                + dk*C2(i)*FSB2(x,E(i),L,m,V0,-1);
end
figure; plot(x, real(psi(x)));
hold on; plot(x, real(psi1), '--');
plot([xmin, -L,-L, L, L, xmax], [0, 0, 0.5, 0.5, 0, 0], 'b');
axis([xmin,xmax,-1,1]);
title 'reconstruction of \psi(x)'

致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择会员制,大量广告,内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证网站能在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

         

© 小时科技 保留一切权利