1.简介
蒙特卡洛又称随机抽样或统计试验,就是产生随机变量,带入模型算的结果,寻优方面,只要模拟次数够多,最终是可以找到最优解或接近最优的解。
通常蒙特卡罗方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。例如在核物理研究中,分析中子在反应堆中的传输过程。中子与原子核作用受到量子力学规律的制约,人们只能知道它们相互作用发生的概率,却无法准确获得中子与原子核作用时的位置以及裂变产生的新中子的行进速率和方向。科学家依据其概率进行随机抽样得到裂变位置、速度和方向,这样模拟大量中子的行为后,经过统计就能获得中子传输的范围,作为反应堆设计的依据。
另一种类型是所求解问题可以转化为某种随机分布的特征数,比如随机事件出现的概率,或者随机变量的期望值。通过随机抽样的方法,以随机事件出现的频率估计其概率,或者以抽样的数字特征估算随机变量的数字
2.实例分析
2.1 模拟求近似圆周率
绘制单位圆和外接正方形,正方形abcd的面积为:2*2=4,圆的面积为:s=π*1*1=π,现在模拟产生在正方形abcd中均匀分布的点n个,如果这n个点中有m个点在该圆内,则圆的面积与正方形abcd的面积之比可近似为m/n
程序如下:
返回:
2.2 估算定积分
程序如下:
返回:
2.3 求解整数规划
要解的方程为:
条件如下:
程序如下:
返回:
到此这篇关于python实现蒙特卡罗模拟法的实践的文章就介绍到这了,更多相关python 蒙特卡罗模拟法内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!