蒙特卡洛抽样matlab代码
时间: 2024-09-28 17:14:30 浏览: 32
基于MCMC马尔科夫-蒙特卡洛抽样matlab仿真+操作视频
5星 · 资源好评率100%
蒙特卡洛方法是一种通过大量随机采样来模拟复杂系统概率性质的数值计算技术。在MATLAB中,你可以使用`rand`函数来生成随机数,并结合循环结构来实现基本的蒙特卡洛抽样。以下是一个简单的例子,假设我们要估计圆周率π:
```matlab
% 定义圆的半径和正方形边长
radius = 1;
side_length = 2;
% 设置迭代次数
num_trials = 1000000; % 这里可以调整以获得更精确的结果
% 初始化计数器
inside_circle = 0;
% 进行蒙特卡洛抽样
for i = 1:num_trials
% 随机生成二维点 (x, y) 的坐标
x = side_length * rand(1);
y = side_length * rand(1);
% 如果这个点位于圆内,则计数器加一
if sqrt(x^2 + y^2) <= radius
inside_circle = inside_circle + 1;
end
end
% 计算并显示π的近似值
pi_estimate = 4 * inside_circle / num_trials;
disp(['Using ' num2str(num_trials) ' trials, estimated pi is approximately: ' num2str(pi_estimate)]);
```
在这个例子中,我们检查了足够多的随机点是否落在单位圆内,然后根据落在圆内的点的比例来估算π。
阅读全文