随机模拟——蒙特卡洛方法(含实例及matlab代码)

蒙特卡洛方法

蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。

基本思想

当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。

常见应用及matlab代码

求圆周率

正方形的内切圆与正方形的面积之比是π/4。

根据蒙特卡洛算法的思想,在这个正方形内部,随机产生1000000个点(即1000000个坐标对 (x, y)),计算它们与圆心的距离,从而判断是否落在圆的内部。如果这些点的位置服从二维的均匀分布均匀分布,那么圆内的点应该占到所有点的 π/4,因此将这个比值乘以4,就是π的值。

利用matlab实现

N=1000000;    %随机点的数目
x=rand(N,1);  %rand 生成均匀分布的伪随机数。分布在(0~1)之间
y=rand(N,1);  %矩阵的维数为N×1
count=0;

for i=1:N
%如果点在圆内,计数器加1
	if (x(i) - 0.5)^2 + (y(i)-0.5)^2 <= 0.25
		count = cou

猜你喜欢

转载自blog.csdn.net/wmhsjtu/article/details/104149760