自由高斯波包的动画绘制(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

                     

© 小时科技 保留一切权利