蒙特卡洛(Monte
Carlo)方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。这一方法源于美国在第一次世界大战进研制原子弹的“曼哈顿计划”。该计划的
主持人之一、数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。
Monte
Carlo方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用事件发生的“频率”来决定事件的“概率”。19世纪人们用投针试验的
方法来决定圆周率π。本世纪40年代电子计算机的出现,特别是近年来高速电子计算机的出现,使得用数学方法在计算机上大量、快速地模拟这样的试验成为可
能。
考虑平面上的一个边长为1的正方形及其内部的一个形状不规则的“图形”,如何求出这个“图形”的面积呢?Monte Carlo方法是这样一种“随机化”的方法:向该正方形“随机地”投掷N个点落于“图形”内,则该“图形”的面积近似为M/N。
可用民意测验来作一个不严格的比喻。民意测验的人不是征询每一个登记选民的意见,而是通过对选民进行小规模的抽样调查来确定可能的优胜者。其基本思想是一样的。
科技计算中的问题比这要复杂得多。比如金融衍生产品(期权、期货、掉期等)的定价及交易风险估算,问题的维数(即变量的个数)可能高达数百甚至数千。
对这类问题,难度随维数的增加呈指数增长,这就是所谓的“维数的灾难”(Course
Dimensionality),传统的数值方法难以对付(即使使用速度最快的计算机)。Monte
Carlo方法能很好地用来对付维数的灾难,因为该方法的计算复杂性不再依赖于维数。以前那些本来是无法计算的问题现在也能够计算量。为提高方法的效率,
科学家们提出了许多所谓的“方差缩减”技巧。
另一类形式与Monte Carlo方法相似,但理论基础不同的方法—“拟蒙特卡罗方法”(Quasi-Monte
Carlo方法)—近年来也获得迅速发展。我国数学家华罗庚、王元提出的“华—王”方法即是其中的一例。这种方法的基本思想是“用确定性的超均匀分布序列
(数学上称为Low Discrepancy Sequences)代替Monte
Carlo方法中的随机数序列。对某些问题该方法的实际速度一般可比Monte Carlo方法提出高数百倍,并可计算精确度。
/**
*
*/
package numberorcal;
/**
* @author CC
*用蒙特卡罗法示PI
*/
public class CalPI {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
double PI = 0;
int N = 60000;
int sum = 0;
double x, y;
for(int i = 0; i < N; i++){
x = Math.random();
y = Math.random();
if( (x*x + y*y) < 1)
sum++;
}
System.out.println("PI= " + (double)4*sum/N);
}
}
分享到:
相关推荐
代码 用蒙特卡洛法实现对排队等待问题模拟代码代码 用蒙特卡洛法实现对排队等待问题模拟代码代码 用蒙特卡洛法实现对排队等待问题模拟代码代码 用蒙特卡洛法实现对排队等待问题模拟代码代码 用蒙特卡洛法实现对排队...
"蒙特卡洛法matlab实现" 蒙特卡洛法是统计分析中的一种常用方法,matlab是实施蒙特卡洛算法的常用工具。蒙特卡洛法的应用非常广泛,包括金融、工程、物理等多个领域。 蒙特卡洛法的基本思想是通过随机抽样来近似...
代码 基于蒙特卡洛法离散型优化问题代码代码 基于蒙特卡洛法离散型优化问题代码代码 基于蒙特卡洛法离散型优化问题代码代码 基于蒙特卡洛法离散型优化问题代码代码 基于蒙特卡洛法离散型优化问题代码代码 基于...
资源名:蒙特卡洛法_蒙特卡洛法实现对排队_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有...
文章中提到的MATLAB代码通过随机生成机器人的关节角度,使用D-H参数法计算对应的末端执行器坐标(x, y, z),然后利用plot3函数在三维空间中绘制点云图,从而实现工作空间的可视化分析。通过这种方式,可以直观地...
机械臂可达工作空间蒙特卡洛法matlab仿真代码 我们已得到六自由度机械臂的正运动学方程,将关节变量代入该方程即可求得机械臂末端的位姿。现在我们已经知道了每个关节的可旋转的范围,那么,我们同时也可以得到机械...
【标题】:“10负荷点配电网蒙特卡洛法可靠性计算程序” 在电力系统领域,配电网的可靠性计算是一项至关重要的任务,它涉及到供电连续性、服务质量和经济损失的评估。"10负荷点配电网蒙特卡洛法可靠性计算程序"是一...
基于蒙特卡洛法的全局光照算法C++实现源码.zip基于蒙特卡洛法的全局光照算法C++实现源码.zip基于蒙特卡洛法的全局光照算法C++实现源码.zip基于蒙特卡洛法的全局光照算法C++实现源码.zip基于蒙特卡洛法的全局光照算法...
蒙特卡洛法模拟排队过程(Python源码) 蒙特卡洛法模拟排队过程(Python源码) 蒙特卡洛法模拟排队过程(Python源码) 蒙特卡洛法模拟排队过程(Python源码) 蒙特卡洛法模拟排队过程(Python源码) 蒙特卡洛法模拟...
《用蒙特卡洛法实现对排队等待问题的计算机模拟》 在计算机科学与信息技术领域,模拟是理解和预测复杂系统行为的重要工具。本项目聚焦于一个日常生活中的常见问题——排队等待,采用了一种强大的数值计算方法——...
蒙特卡洛法检测渔网碰撞问题(Python源码)! 蒙特卡洛法检测渔网碰撞问题(Python源码)! 蒙特卡洛法检测渔网碰撞问题(Python源码)! 蒙特卡洛法检测渔网碰撞问题(Python源码)! 蒙特卡洛法检测渔网碰撞问题...
这篇资料主要探讨了如何利用蒙特卡洛法来分析这两种可再生能源的出力情况,并结合IEEE 33节点系统进行概率潮流计算。以下是相关知识点的详细说明: 1. **蒙特卡洛方法**:这是一种统计模拟方法,通过大量随机抽样来...
基于CIR模型、蒙特卡洛法为零息债券定价python实现源码(课程作业).zip基于CIR模型、蒙特卡洛法为零息债券定价python实现源码(课程作业).zip基于CIR模型、蒙特卡洛法为零息债券定价python实现源码(课程作业).zip基于...
蒙特卡洛法求椭圆面积项目"很可能是这样一个MATLAB脚本,包含了以上所述的算法实现。 为了得到更精确的结果,通常需要增加随机点的数量。在实际应用中,可以调整生成的随机点数,比如设置为百万级或更高,以达到...
详细讲述了蒙特卡洛算法入门,并介绍了应用编程
Java基于蒙特卡洛法对孟德尔的四个经典实验的模拟实验源码(含一两对相对性状的杂测交实验).zipJava基于蒙特卡洛法对孟德尔的四个经典实验的模拟实验源码(含一两对相对性状的杂测交实验).zipJava基于蒙特卡洛法对...
《蒙特卡洛法在测量不确定度评定中的应用》 蒙特卡洛法,源于统计学中的随机模拟,是一种在复杂系统中通过大量随机抽样来解决问题的方法。在现代科学计量学领域,尤其是在测量不确定度的评定中,蒙特卡洛法已经成为...
用蒙特卡洛法生成风电光伏的初始场景,然后在缩减利于优化求解。- Monte Carlo method is used to generate the initial scene of wind power photovoltaic, and then in order to optimize the solution.
【作品名称】:基于 Java 实现的黑白棋游戏,支持双人对战,人机对战,人机AI使用MCTS(蒙特卡洛树搜索)实现 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、...
资源名:蒙特卡洛法求椭圆面积的MATLAB源程序代码.rar 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手...