氢原子波函数 Matlab 画图程序

             

  • 本词条处于草稿阶段.
预备知识 类氢原子的定态波函数,Matlab 画图

   这里给出图 1 的画图程序.需要 SphHarm 函数.以及 surfSph 函数

Z = 1;
Rnl = @(Z,n,l,r)sqrt((2*Z/n)^3*factorial(n-l-1)/(2*n*factorial(n+l))) *...
        (2*Z*r/n).^l .* laguerreL(n-l-1, 2*l+1, 2*Z*r/n) .* exp(-Z*r/n);

r = linspace(0, 40, 1000);
th = linspace(0, 2*pi, 361);
ph = zeros(size(th));
thresh = [0.3183 7.28e-4 1e-4 1e-5 1e-6];
for n = 4
    for l = 0:n-1
        for m = 0 : l
            figure; set(gcf, 'units','normalized', ...
                'outerposition',[0 0 0.5 1]);
            set(gca, 'color', 'k');
            grid off; hold on;
            r2R2 = @(r) r.^2 .* abs(Rnl(Z,n,l,r)).^2;
            trial = @(rmax) integral(r2R2, 0, rmax) - 0.95;
            r_cut = fzero(trial, [0.1, 100]);
            tmp = linspace(0, 2*pi, 500);
            plot3(r_cut*cos(tmp), -3*ones(size(tmp)), ...
                r_cut*sin(tmp), 'w');
            prob_cut = abs(Rnl(Z,n,l,r_cut))^2 * 5;
            
            prob = abs(Rnl(Z,n,l,r).' .* SphHarm(l,m,th,ph)).^2;
            surfSph(r, th, 0, prob); view(0, 0);
            caxis([0, prob_cut]);
            title([num2str(n) ', ' num2str(l) ', ' num2str(m)]);
            disp([num2str(n) ', ' num2str(l) ', ' num2str(m)]);
            % 未完成: colormap_hydrogen, 使用默认 colormap
            % rgb = colormap_hydrogen(linspace(0,1,100));
            % colormap(rgb);
       end
    end
end

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

         

© 小时科技 保留一切权利