蒙特卡洛法之MATLAB实现

                                                                                            by WC 1.7.2016

蒙特卡洛法(随机取样法)也称为计算机随机模拟方法,它源于世界著名的赌城——Monte Carlo。它是基于对大量事件的统计结果来实现一些确定性问题的计算。使用蒙特卡洛法必须使用计算机生成相关分布的随机数。

eg:
y = x^2 ,y = 12 - x与X轴在第一象限与X轴围成一个曲边三角形。设计一个随机试验,求该图形的近似值。
其图形如下图所示:

x=0:0.25:12
y1=x.^2;
y2=12-x;
plot(x,y1,x,y2)
xlabel('x');ylabel('y');
legend('y1=x^2','y2=12-x');
title('王晨绘制');
axis([0 15 0 15]);
text(3,9,'交点');
grid on

这里写图片描述

设计的随机试验的思想如下:在矩形区域[0,12]*[0.9]上产生服从均与分布的10^7个随机点,统计随机点落在曲边三角形内的个数,则曲边三角形的面积近似于上述矩形的面积乘以频率

x=unifrnd(0,12,[1,10000000]);
y=unifrnd(0,9,[1,10000000]);
frequency=sum(y<x.^2 & x<=3)+sum(y<12-x & x>=3)
area=12*9*frequency/10^7

其结果如下图所示:

猜你喜欢

转载自blog.csdn.net/u013414501/article/details/50478898