用MATLAB画出氢原子的电子概率密度图
原子物理课后问题
——用MATLAB画出氢原子的电子概率密度图
1、蒙特卡罗方法的基本思想
对某一个待解决的物理问题(当这个物理问题可以抽象为数学问题时)建立一个概率模型,即确定某个随机事件X,使得待求问题的解等于随机事件X出现的概率或随机变量的数学期望值。然后进行模拟实验,重复多次地模拟随机事件X。最后对随机实验结果进行统计平均,求出X出现的频数作为问题的近似解。这就是蒙特卡罗方法的基本思想。
具体来说:
假设所要求的量x是随机变量ζ的数学期望E(ζ) ,那么近似确定x的方法是对ζ进行N 次重复抽样,产生相互独立的ζ值的序列、……、,并计算其算术平均值:
根据大数定理有
因此,当N充分大时,下式成立的概率为1,
亦即可以用作为所求量x的估计值。
2、求解氢原子核外电子概率密度函数
氢原子的薛定谔方程
其解,则氢原子核外电子的概率密度函数:
N为主量子数,决定轨道的能量,既能层,n=0、1、2、…,
L为角量子数,决定轨道角动量大小,即能级,l=0、1、2、…、n-1,
M为磁量子数,决定轨道角动量在磁场上方向的分量,即轨道在空间分布上的方向,m=0、±1,、±2、 (1)
由课本《原子物理学》P130某些球谐函数的表达式和P134径向波函数的表达式可推出以下各能级核外电子的概率密度函数:
2S能级
2Px能级
最大概率密度
…,(即第一玻尔轨道半径)
数据生成
1计算机在一定的范围内随机地选取坐标点(),并计算概率密度函数ρ(r)在点()的值,
是概率密度函数ρ(r)的最大值,并计算
。2.计算机产生一个0至1之间均匀分布的随机数M。3.将Y与M进行比较若Y≥M,则选取该点
()若YM,则舍去该点()。重复1至
3重新选取坐标点,即可得到一个按ρ(r)分布的随机函数序列。
3、具体代码及结果
2Px能级
所需计算公式
>> a0=5.29e-11;
>> plot(0,0,'.r','marKerSize',32) % 显示原子核位置,’.r’为红色的点,marker是图上画上点的地方表上符号后面的size就是符号的大小
>> axis([-5e-10 5e-10 -5e-10 5e-10 ]) %设置坐标轴的范围
>> grid on %设置网格
>> hold on
>> xlabel('x');ylabel('y'); %标注xy轴
>> i=1;
>> while i<=3000 %设置循环
PHI=2*pi*rand; %产生0到2π的随机数赋值给PHI
R=9*a0*rand; %产生0到9a0的随机数赋值给R
Y=0.5*(1/a0).^2*R.^2*exp(2-(R/a0))*(cos(PHI)).^2; %计算Y
[x,y]=pol2cart(PHI,R); %将极坐标转化为直角坐标M=rand;
if Y>=M %设置判断
hold on
point=plot(x,y,'.g','EraseMode','none','marKerSize',5); %画出绿色的点,点不会被擦除’none’方式不做任何擦除,直接在原来图形上绘制。'erasemode', 标记不会遮盖同空间上的图像,就是透明处理,共同存在
i=i+1;
end
end
2S能级
所需计算公式
>> a0=5.29e-11;
>> plot3(0,0,0,'.r','marKerSize',32) %plot3为三维画图命令
>> axis([-5e-10 5e-10 -5e-10 5e-10 -5e-10 5e-10])
>> grid on
>> hold on
>> xlabel('x');ylabel('y');zlabel('z');
>> i=1;
>> while i<=3000
TH=pi*rand;
PHI=2*pi*rand;
R=9*a0*rand;
Y=0.5*(2-(R/a0)).^2*exp(2-(R/a0));
[x,y,z]=sph2cart(TH,PHI,R); %将球坐标转换为笛卡尔坐标
M=rand;
if Y>=M
hold on
point=plot3(x,y,z,'.g','EraseMode','none','marKerSize',5); i=i+1;
end
end
>>
参考文献--MATLAB巧画三维动态氢原子电子云权玉玲