UA MATH575B 数值分析下 计算统计物理例题2

  • 理论解法
    • C-K方程法
    • 特征值法(近似解)
  • 模拟解法
    • Rejection Sampling
    • Importance Sampling

一个位于原点x0=0x_0=0x0​=0的粒子源,它释放出的例子下一个时刻有2/3的概率的停在原地,有1/3的概率往右移动一个单位;当粒子位于x=1,2,⋯,19x=1,2,\cdots,19x=1,2,⋯,19的位置时,有2/3的概率往左移动一个单位,有1/3的概率往右移动一个单位;x=20x=20x=20是一个吸收状态。求这个吸收状态的吸收率γ\gammaγ。

理论解法

这个粒子的运动可以用一个Markov链表示,记概率转移矩阵为TTT:

%% Construct transition matrix
T = zeros(21,21);
T(1,1) = 2/3; T(21,21) = 1;
for i = 1:21for j = 1:21if j == (i-1) && i<21T(i,j) = 2/3;elseif j == (i+1)T(i,j) = 1/3;endend
end

C-K方程法

用Chapman-Kolmogorov方程的思想,记E(x0→A)E(x_0 \to A)E(x0​→A)表示粒子从状态x0x_0x0​出发转移到状态子集AAA中所需的时间的期望,则
E(x→A)=∑y∈AT(x,y)+∑y∉AT(x,y)(1+E(y→A))E(x \to A) = \sum_{y \in A} T(x,y) + \sum_{y \notin A} T(x,y) ( 1 + E(y \to A))E(x→A)=y∈A∑​T(x,y)+y∈/​A∑​T(x,y)(1+E(y→A))
第一项表示经过一步转移就到了状态子集AAA中的概率,第二项表示如果第一步没能直接转移到位,记转移到了状态yyy,对应的概率为T(x,y),y∉AT(x,y),y\notin AT(x,y),y∈/​A,然后E(y→A)E(y \to A)E(y→A)表示粒子从状态yyy出发转移到状态子集AAA中所需的时间的期望,但此时已经走了一步了所以加1,
∑y∈AT(x,y)+∑y∉AT(x,y)(1+E(y→A))=1+∑y∉AT(x,y)E(y→A)\sum_{y \in A} T(x,y) + \sum_{y \notin A} T(x,y) ( 1 + E(y \to A)) = 1+\sum_{y \notin A} T(x,y) E(y \to A)y∈A∑​T(x,y)+y∈/​A∑​T(x,y)(1+E(y→A))=1+y∈/​A∑​T(x,y)E(y→A)
记Ex=E(x→{20})E_x = E(x \to \{20\})Ex​=E(x→{20}),则
E0=1+23E0+13E1E_0 = 1 + \frac{2}{3} E_0 + \frac{1}{3} E_1E0​=1+32​E0​+31​E1​
当x=1,⋯,18x=1,\cdots,18x=1,⋯,18时,
Ex=1+23Ex−1+13Ex+1E_x = 1 + \frac{2}{3} E_{x-1} + \frac{1}{3} E_{x+1}Ex​=1+32​Ex−1​+31​Ex+1​
当x=19x = 19x=19时,
E19=1+23E18E_{19} = 1 + \frac{2}{3} E_{18}E19​=1+32​E18​
由此我们得到了一个有二十个未知量、二十个方程的线性方程组,求解这个线性方程组我们可以得到E0=6291390E_0=6291390E0​=6291390。也就是说在原点放出一个粒子,它平均需要移动6291390步才能到达吸收状态,因此吸收状态的吸收率是γ=1/6291390\gamma=1/6291390γ=1/6291390。

特征值法(近似解)

假设初始状态的概率分布是π0\pi_0π0​,则nnn步后的状态分布是πn=π0Tn\pi_n = \pi_0 T^nπn​=π0​Tn。做转移概率矩阵的对角化:T^=VΛV−1\hat{T} = V\Lambda V^{-1}T^=VΛV−1,则πn=π0VΛnV−1\pi_n=\pi_0V \Lambda^n V^{-1}πn​=π0​VΛnV−1。注意到这个Markov链只有一个吸收状态,所以不论π0\pi_0π0​取什么值,当nnn足够大时,πn\pi_nπn​都会退化为δ(xn−20)\delta(x_n - 20)δ(xn​−20),并且状态202020对应的特征值为0。因此我们可以用第二大的特征值来近似πn\pi_nπn​,
πn≈π0λ2n\pi_n \approx \pi_0 \lambda_2^nπn​≈π0​λ2n​
吸收率就近似为1−λ21-\lambda_21−λ2​

模拟解法

Rejection Sampling

这是老师给的答案,大概是用python来写,先import一下random的包然后设置初始值。当粒子没有到状态20时做rejection sampling,输出所有例子最快到达吸收状态的时间。

根据这个code可以画出停时的分布


估计停时的均值为6.2546e+6,吸收率是这个均值的倒数。这个采样最大的问题是慢,因为往右走的概率更小。

Importance Sampling


在rejection sampling中,我们用的是原始的Markov链的转移概率,现在考虑做重要性采样加快模拟的速度。这个Markov链比较有意思,相当于是一个不对称的一维的随机游走,所以要构造一个新的Markov链来采样只需要一个参数ppp(code第二行,手动输入)。接下来用这个新的Markov链做rejection sampling,xxx记录的是新的Markov链的状态转移,compensation记录的是importance sampling的权重,因此每次计数需要加compensation乘以1。
从这个结果可以看出,ppp越大吸收率估计量扭曲得越厉害(Markov链被扭曲了),但速度会加快。要在扭曲和速度之间做tradeoff,可以把这两个Markov链合起来,当状态小于5时就用原来的Markov链,大于5时就用参数为ppp的Markov链。

UA MATH575B 数值分析下 计算统计物理例题2相关推荐

  1. UA MATH575B 数值分析下 计算统计物理例题1

    UA MATH575B 数值分析下 计算统计物理例题1 统计物理方法的解析解 Markov链 理论解 数值解 Monte Carlo模拟. 一道有趣的统计物理的题目.下面这个简单的迷宫中,一只老鼠一开 ...

  2. UA MATH575B 数值分析下VI 统计物理的随机模拟方法2

    UA MATH575B 数值分析下VI 统计物理的随机模拟方法2 扩散过程的停时问题 理论解 模拟解 扩散过程的停时问题 简单一点,考虑一维的随机扩散问题,假设扩散系数D=12D=\frac{1}{2 ...

  3. UA MATH575B 数值分析下VI 统计物理的随机模拟方法1

    UA MATH575B 数值分析下VI 统计物理的随机模拟方法1 模拟SDE的解 用蒙特卡罗方法估计SDE解的自相关函数 模拟SDE的解 以最简单的随机微分方程为例,考虑随机游走 dxt=ξtdtdx ...

  4. UA MATH575B 数值分析下 统计物理的随机模拟方法5

    UA MATH575B 数值分析下 统计物理的随机模拟方法5 Ising Model Gibbs Sampling Glauber Dynamics 这一讲介绍Ising Model,它是MCMC与G ...

  5. UA MATH575B 数值分析下 统计物理的随机模拟方法4

    UA MATH575B 数值分析下 统计物理的随机模拟方法4 这一讲介绍MCMC方法,这个方法最早出现在Metropolis在1953年发在J Chem Phys上的Equation of state ...

  6. UA MATH575B 数值分析下IV 带约束的优化

    UA MATH575B 数值分析下IV 带约束的优化问题 带等式约束的优化问题 带不等式约束的优化问题 同时带等式约束与不等式约束的优化问题 今天不想敲公式,就不写理论了,反正方法也就是前面的Newt ...

  7. UA MATH575B 数值分析下III 图像恢复

    UA MATH575B 数值分析下III 图像恢复 图像去噪的优化模型 算法实现 图像去噪的优化模型 假设VVV代表原图,观测到的图像是WWW,WWW是原图与噪声的叠加W=V+ξW=V+\xiW=V+ ...

  8. UA MATH575B 数值分析下I 梯度下降

    UA MATH575B 数值分析下I 梯度下降 梯度下降 最速下降 下降算法实现举例 梯度下降的应用 对于凸优化问题min⁡xf(x)\min_x f(x)minx​f(x),最主流的数值计算方法是下 ...

  9. UA MATH575B 数值分析下II 牛顿算法

    UA MATH575B 数值分析下II 牛顿算法 Pure Newton算法 Damped Newton算法 Levenberg-Marquardt算法 Quasi-Newton算法 割线法 Broy ...

最新文章

  1. Linux学习之CentOS(二十三)--Linux软件管理之源代码以及RPM软件包管理
  2. 扫地机器人腿是咕噜_扫地机器人|如何避免买到“智障”,看这篇
  3. eclipse的jsp第一行代码报错_机器学习之AdaBoost算法及纯python代码手工实现
  4. 会话管理 轻量php框架_SpringSecurity+JWT权限管理训练营-1基于RBAC模型的权限管理系统...
  5. SDN中还有路由协议嘛?
  6. java csv to list_java – 如何轻松地将CSV文件处理为List
  7. 查看Xcode配置文件
  8. Linux权限管理 - 特殊权限之sudo权限
  9. Mathematic的学习打卡day 8
  10. Dbgview - 签名无效
  11. java excel导出下载_Java导出excel并下载功能
  12. 【钉钉-场景化能力包】家校沟通
  13. 我是全网最硬核的高并发编程作者,CSDN最值得关注的博主,大家同意吗?(建议收藏)
  14. 内存刺客在哪儿?! 微信11年膨胀575倍,只有微信被发现了
  15. matlab矩阵排序sort,MATLAB——矩阵排序详解
  16. 如何使用PPT制作机器学习模型图
  17. 我的脚本-一键禁用启用笔记本自带键盘
  18. java中Decimal 小数和百分比的转换
  19. (二)OpenCV-Python学习—对比度增强
  20. 一个电脑可以装两个java么,是否可以在一台计算机上安装多个Eclipse?

热门文章

  1. (转载)机器学习知识点(十三)吉布斯采样法(Gibbs Sampling)
  2. python报错处理_python mysql 断连报错处理
  3. lenovo L480 进入bios_重装系统重启后不引导,重装系统无法进入引导
  4. Hystrix 熔断器02 —— hystrix 案例之高并发测试
  5. bugku ctf 杂项 啊哒 writeup || foremost的安装
  6. Java的知识点20——包装类基本知识、包装类的用途、自动装箱和拆箱、包装类的缓存问题
  7. js实践篇:例外处理Try{}catch(e){}
  8. PyQt5 技术篇-在clipboard.dataChanged.connect()里如何写入剪切板示例演示,pyqt5监听剪切板变动并写入剪切板内容
  9. React简单表单最佳实践
  10. 第一章:1.2.3 LTI系统研究方法与本章小结