通俗易懂的Monte Carlo的积分方法(三)

  • 考虑曾经在参加MCM时的一个多重积分的计算难题
    ∫∫D(H−z(x,y))21+zx2+zy2dσ\int\int_{D}(H-z(x,y))^2\sqrt{1+z_x^2+z_y^2}d\sigma ∫∫D​(H−z(x,y))21+zx2​+zy2​​dσ
    其中:x2a2+y2b2+z2c2=1\frac{x^2}{a^2}+\frac{y^2}{b^2}+\frac{z^2}{c^2}=1a2x2​+b2y2​+c2z2​=1且z≥0z \geq 0z≥0。

  • 采用Monte Carlo积分法(期望法)

    用的是面向对象的模块化编程思想

  • Python代码:

    import random
    import numpy as np
    import math
    import matplotlib.pyplot as plt
    def z_value(a,b,c,x,y):return c*math.sqrt(1-x**2/(a**2)-y**2/(b**2))def z_dotx(a,b,c,x,y):return -c**2/a**2*x/z_value(a,b,c,x,y)def z_doty(a,b,c,x,y):return -c**2/b**2*y/z_value(a,b,c,x,y)def function_Calcul(x,y,H,a,b,c):if((x**2/(a**2)+y**2/(b**2))<1):return ((H-z_value(a,b,c,x,y))**2)*math.sqrt(1+(z_dotx(a,b,c,x,y))**2+z_doty(a,b,c,x,y)**2)else:return 0def int_Calcul(a,b,c,H,numbers):sum = 0Prop = []Prop_final = []S = 2 * a * 2 * bfor i in range(1,numbers):x_value = -a+2*a*random.random()y_value = -b+2*b*random.random()sum += function_Calcul(x_value,y_value,c,a,b,c)Prop.append(sum/(i)*S)for i in range(1,numbers):Prop_final.append(sum/(numbers)*S)plt.xlabel("Numbers")plt.ylabel("IntergalValue")plt.plot(range(1,numbers),Prop,color = 'blue',label = 'Change_value' )plt.plot(range(1,numbers),Prop_final,color = 'red',label = 'Mean_value')plt.legend()plt.show()print("The final intergal value is:{:.2f}".format(Prop[numbers-2]))int_Calcul(0.5,1,2,2,10000)
    
  • 计算结果:

    当a=0.5,b=1,c=2,H=2a=0.5,b=1,c=2,H=2a=0.5,b=1,c=2,H=2时,其最终的结果大概在12.0512.0512.05左右。

通俗易懂的Monte Carlo的积分方法(三)相关推荐

  1. 通俗易懂的Monte Carlo积分方法(二)

    通俗易懂的Monte Carlo积分方法(二) Monte Carlo积分的计算(期望法) Monte Carlo算法的期望法计算的数学基础: 辛钦大数定律: 如果Xi是独立的随机变量,且EXi是相应 ...

  2. 通俗易懂的Monte Carlo积分方法(一)

    通俗易懂的Monte Carlo积分方法(一) Monte Carlo积分的投点法计算: Monte Carlo算法(投点法)的数学基础: 伯努利大数定律: 设fA为n重伯努利试验中事件A发生的次数, ...

  3. Monte carlo 求解积分

    Monte carlo 求解积分 文章目录 Monte carlo 求解积分 @[toc] 1 单变量情形 2 多变量情形 1 单变量情形 假设待求解积分形式为 θ = ∫ 0 1 f ( x ) d ...

  4. 通俗易懂的Monte Carlo积分方法(四)

    Monte Carlo 方法计算的理论基础 1.理论目标 2.收敛性的描述 3.误差的描述与控制 4.减少误差的技巧 5.代码的实现 1.理论目标 ​ 利用辛钦大数定律和中心极限定理对MentoCar ...

  5. Monte Carlo Integration 蒙特卡罗方法求积分 附简单例题+代码

    摘要 蒙特卡罗积分是一种基于随机抽样的统计方法.打个比方,要想知道抛出硬币得到正面的概率,随机投1000次,得到500次左右,推测出概率应该为 1 2 \frac{1}{2} 21​.差不多是这意思, ...

  6. 蒙特卡洛方法 (Monte Carlo Method)(5)

    与上一节动态编程(DP)方法不同的是,蒙特卡洛(Monte Carlo, MC)方法不需要环境的全部信息,而只需要 "experience",这里的"experience ...

  7. 5 蒙特卡洛方法 (Monte Carlo Method)

    [上一篇 4 动态编程(Dynamic Programming, DP)] [下一篇 6 Temporal-Difference (TD) Learning ] 与上一节动态编程(DP)方法不同的是, ...

  8. Monte Carlo Method

    Reference: Jonathan Pengelly, Monte Carlo Methods, 2002 Basic Description MC为许多数学上难以解决的问题通过运行统计采样实验提 ...

  9. 15分钟入门蒙特卡洛 Monte Carlo

    来自 | 知乎   作者 | 薛定豆 链接 | https://zhuanlan.zhihu.com/p/223042372 编辑 | 深度学习这件小事公众号 本文仅作学术交流,如有侵权,请联系后台删 ...

最新文章

  1. 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | Hook 点分析 )
  2. 见光死怎么办?如何提升用户对网站的好感,提升转化?
  3. 【AI呀,我去】科技圈顶流——元宇宙上线,快来揭开它的神秘面纱
  4. icoding复习5 树 感觉难度巨大....
  5. SAP License:SAP用户权限
  6. Lisp入门(好文)
  7. 【绝迹篇】RSA加密算法(私钥加签公钥验签)
  8. 介绍一下Win11单独设置耳机音量的方法
  9. 【机器学习】支持向量机原理与序列最小最优化算法SMO
  10. php打印直角三角形,中考几何丨通过构造直角三角形斜边上的中线结合中位线解决问题!...
  11. (已更新)成语小秀才小程序V2.0.14完整安装包+小程序前端
  12. CCKS2019总结
  13. linux最后一行awk,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  14. mysql 实现异地同步_MySQL 异地同步问题
  15. QQ邮箱的一些bug
  16. ToB和ToC的产品经理的区别
  17. 区块链技术在软件开发中的应用
  18. java se  计算机专业技能-Java专项练习(选择题)(三)
  19. 【Python零基础快速入门系列 | 03】AI数据容器底层核心之Python列表
  20. 二级域名 文件服务器,自建DNS服务器使用二级域名转发内网服务器

热门文章

  1. 程序员面试金典——9.3魔术索引
  2. 剑指offer——跳台阶变态跳台阶矩形覆盖
  3. Numpy根据某一列进行排序
  4. iOS 9检测QQ、微信是否安装
  5. 产品经理之产品评审会(非原创)
  6. Android和H5交互-基础篇
  7. CodeForces 617 E. XOR and Favorite Number
  8. [大牛翻译系列]Hadoop(4)MapReduce 连接:选择最佳连接策略
  9. 添加源ubuntu_x64 安装 Adobe Reader
  10. 什么是程序中的数字指纹