第二章 习题
采用线性同余法(参见公式(2.2.3))产生伪随机数。取,,和.记录下产生出的前20数,它产生数列的周期是多少?
取,,和,用线性同余法产生出三维数组和二维数组,然后分别绘出其三维和二维分布图形。
用“投针法”计算出圆周率的数值,画出程序流程框图,并编写程序。
已知电子在物质中的作用截面,试写出电子在物质
层中相互作用的抽样程序框图和程序。
编写一个程序按照产生随机数序列,并绘图表明其分布满足分布密度函数
。
轻子的平均寿命为,试写出N个轻子在实验室系中以速度运动的飞行距离的抽样程序框图和程序。
写出各向同性分布的角度 抽样程序()。
如分布密度函数为,(其中,为整数),试写出抽样程序框图和程序。
证明Breit-Wigner 分布
可以通过抽样得到 。
归一化黑体辐射频谱为
证明如下抽样步骤得到的抽样分布满足上面的分布,求出它的抽样效率。
抽样步骤:让L等于满足下面不等式的整数的最小值,
然后置,其中为 [0,1] 区间均匀分布的伪随机数。
对正则高斯分布抽样:
.
Gamma 函数的一般形式为
抽样证明其抽样方法可以为
.
(13)分布的一般形式为
抽样证明其抽样方法可以为
, 其中为标准正态分布的n个独立抽样值.
选择偏倚分布密度函数,用蒙特卡洛重要抽样法求积分
.
编写一个程序,采用Metropolis随机游走的方法产生按高斯分布
,
的随机点。抽样中常数的值需要知道吗?试决定接受点与试探步数之比,到达平衡分布的时间与最大试探步长的关系。(提示:判断“平衡”的标准是)。选多大较合理?
用Metropolis随机游走的方法计算积分
。
Laplace方程及其边界条件为
,
用随机游走的蒙特卡洛方法数值求解正方形场域的势函数。
第三章 习题
利用蒙特卡洛方法计算三维、四维、五维和六维空间的单位半径球的体积。
利用分布密度函数做重要抽样来求积分,并分析误差与投点数的关系。
用事例证明蒙特卡洛求积分的标准误差为
,
其中A为物理观测量,N为蒙特卡洛投点个数。
采用Metropolis方法产生一维分子速度分布密度函数为
的游走样本点,并将其分布和上述分布函数曲线进行比较(上式中为常数)。
写出采用Metropolis方法对高斯分布的抽样框图和程序(和为常数)。
(6)编写采用Metropolis算法计算一维积分
的程序。用该程序计算三维积分
.
然后将得到的结果与解析计算得到的精确结果进行比较,并分析模拟游走点数与误差的关系。
(7)对以下一维扩散方程
,
可以通过在的矩形格点上的随机游走来求解(其中,分别为和划分的格点长度)。在方向向前和向后游走的几率为,而在方向向前和向后游走的几率为。试编程予以计算。
(8)编写程序,采用路径积分量子力学蒙特卡洛方法求液态的基态能量。
(9)编写程序,采用变分量子力学蒙特卡洛方法求氢分子的基态能量。其中两质子和两电子应当按四体系统来处理。
(10)修改习题(8)的程序,采用格林函数量子蒙特卡洛方法求氢分子基态能量,并与习题(8)的结果进行比较。
第四章 习题
用有限差分法发展一个程序,数值求解正方形场域的拉普拉斯方程,
。
(2)用有限差分法发展一个程序,数值求解极坐标下的泊松方程
。
然后,选择,边界条件时,两个圆圈中间的势分布。
(3)第(2)题中若
,
其余取值相同,数值求解两个圆圈中间的势分布。
(4)在一个二维的反应堆中,中子的扩散方程为
,
用的正方形网格离散化后,证明它的有限差分方程满足
。
第五章 习题
公式(5.2.20)是更一般的公式
的特殊情况。试给出证明。
用有限元素法发展一个程序,数值求解正方形场域的拉普拉斯方程,
修改(2)题中的程序,仍然采用有限元素法数值求解三角形场域的拉普拉斯方程,
第六章 习题
写用Verlet速度算法求解三维分子运动方程的程序。
编写一个三维,元胞尺寸为的周期边界条件计算程序。
试做总能量固定的单原子系统的分子动力学模拟。元胞为,划分为的正方形网格。元胞内原子数。原子质量。位势为Lenard-Jones势,其中,边界条件为周期性边界条件,初始位置是随机分布在正则节点上,初始速度为按[-1,1]随机分布。分子动力学模拟步长取为,模拟100-200步后原子的速度分布和位置分布如何?
试做二维单原子系统的分子动力学模拟。系统温度保持固定,模拟参数及其他条件同上题。
第七章 习题
用Mathematica语言定义求解一元二次方程的函数,该函数还要求能处理各种常数a,b,c的情况。
用Mathematica语言定义一个能画出任意给定n值的正n边形的函数
用Mathematica语言定义一个操作函数,它可以在给定二维矩形x-y平面区间,按给定步长划分矩形网格,并列出节点的坐标表。
接着上题,用Mathematica语言定义一个操作函数,对确定步数n,生成一个在x-y平面格点上n步服从均匀分布的随机游走的图。
(5)用Mathematica语言实现一个产生任意阶的勒让德多项式的Mathematica程序包。勒让德多项式的递推公式为:
, , .
(6)用Mathematica语言实现一个产生任意阶的埃米尔特多项式的Mathematica程序包。埃米尔特多项式的递推公式为:
, ,
Mathematica语言编写一个从某点出发求多元函数的局部极小或极大值的程序包。
(8)用Mathematica语言编写一个程序包,它能实现平面图形的(a)平移,(b)旋转,(c)对x座标轴的反射。
第八章 习题
画出不同主量子数、轨道量子数下,氢原子径向部分波函数随的变化图形,并讨论原子序数变化的作用。
画出不同轨道量子数、磁量子数、下,氢原子部分波函数随和的变化的三维图形。
采用诺曼诺夫(Numerov)法(参见附录C),编写一个程序求解电子的一维薛定格方程的最低的两个能量本征值和波函数。该电子所在势阱的势函数为(我们选择原子单位a.u.,即)
。
编写求解不同势阱高度和宽度的一维势阱薛定格方程波函数和能量谱的程序包。势阱的势函数为
。
试用Schroedinger.m程序计算时薛定格方程的基态,第一激发态的能量值,并与变分法求得的结果进行比较。