自由高斯波包的动画绘制(Matlab)

                     

贡献者: addis

  • 本文处于草稿阶段。
预备知识 一维自由高斯波包(量子),Matlab 画图

   以下代码绘制自由粒子的高斯波包(式 4 )的动画。代码将生成 Nt 张图片,可以由 “用 Matlab 制作 gif 动画” 中的代码制作 gif 动图。

图
图 1:运行结果,动画见这里

代码 1:free_gauss.m
% === 参数 (原子单位) ===
m = 1;
x0 = 0;
p0 = 2;
sig_x = 2;
xmin = -10; xmax = 100; Nx = 500;
tmin = 0; tmax = 35; Nt = 150;
ax = [xmin, xmax, -0.5, 0.5];
% ==============

close all;
t = linspace(tmin, tmax, Nt);
x = linspace(xmin, xmax, Nx);
figure; set(gcf, 'Unit', 'Normalized', 'Position', [0.1, 0.1, 0.4, 0.3]);
for it = 1:Nt
    psi = 1/(2*pi*sig_x^2)^0.25/sqrt(1 + 1i*t(it)/(2*m*sig_x^2))...
      *exp(-(x-x0-p0*t(it)/m).^2/(2*sig_x)^2/(1 + 1i*t(it)/(2*m*sig_x^2)))...
      .*exp(1i*p0*(x-p0*t(it)/(2*m)));
    clf;
    plot(x, real(psi)); hold on;
    plot(x, imag(psi));
    axis(ax); xlabel 'x [au]'; ylabel \psi;
    title(['t = ' num2str(t(it), '%.2f') ' [au]']);
    set(gca, 'FontSize', 12);
    saveas(gcf, [num2str(it) '.png']);
end


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

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利