这里写目录标题
- 一、朴素蒙特卡罗(Crude Monte Carlo)方法
-
- 1.1 蒙特卡罗方法近似计算 π \pi π值
- 1.2 蒙特卡罗方法近似定积分
-
- 1.2.1 蒙特卡罗方法近似定积分步骤
- 1.2.2 示例
- 1.2.3 蒙特卡罗估计定积分优缺点
- 1.3 蒙特卡罗方法近似计算期望值
-
- 1.3.1 蒙特卡罗方法近似计算期望值步骤
- 1.3.3 示例
- 1.5 蒙特卡罗采用应用于图像处理
- 二、朴素蒙特卡罗(Crude Monte Carlo)的局限性
- 三、蒙特卡罗改进方法
- 四、样本均值近似算法在随机规划问题中的应用
-
- 4.1 样本均值近似算法解决随机规划的思想
- 4.2 理论基础
蒙特卡罗方法(Monte Carlo Method)是一大类随机算法的总称,是一种数值计算技术,其思想是其思想是通过随机样本来估计真实值:从问题的概率分布中生成大量随机样本,对每个样本进行模拟和计算,然后对所有样本的结果进行统计分析,以估计复杂系统的行为或特性。它广泛应用于积分计算、随机过程模拟、金融风险分析、物理系统模拟和优化问题等领域,依赖于大数定律和中心极限定理来确保结果的准确性和可靠性。
一、朴素蒙特卡罗(Crude Monte Carlo)方法
蒙特卡罗方法的核心思想是通过随机采样来模拟和估计复杂系统的行为。随机采样,简单粗暴、易于实现,是其最基本和直观的实现方式,因为它直接利用了概率和统计的基本原理。基于随机采样的蒙特卡罗方法称为朴素蒙特卡罗(Crude Monte Carlo)方法,以下是朴素蒙塔卡罗的一些应用场景:
1.1 蒙特卡罗方法近似计算 π \pi π值
正方形面积:4
圆面积:pi
在正方形内随机投点n次,点落在圆内的概率: p = π 4 p=\frac{\pi}{4} p=4π,设落在圆内的点的样本数为m,则
p = m n = π 4 p=\frac{m}{n}=\frac{\pi}{4} p=nm=4π π = 4 m n \pi=\frac{ 4m }{n} π=n4m
import numpy as np
import matplotlib.pyplot as plt
# 参数定义
n = 10000 # 样本数量
m = 0 # 落在圆中的样本数量
# 生成随机样本点
x = np.random.uniform(low=-1, high=1, size=n)
y = np.random.uniform(low=-1, high=1, size=n)
# 判断哪些点落在圆内
inside_circle = x**2 + y**2 <= 1
# 计算落在圆内的点的数量
m = np.sum(inside_circle)
# 近似计算 pi 的值
pi_approx = 4 * m / n
print("pi =", pi_approx)
# 可视化
plt.figure(figsize=(5, 5))
plt.scatter(x[inside_circle], y[inside_circle], color='blue', s=1, label='Inside Circle')
plt.scatter(x[~inside_circle], y[~inside_circle], color='red', s=1, label='Outside Circle')
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.gca().set_aspect('equal', adjustable='box')
plt.title(f'Monte Carlo Approximation of Pi\nEstimated Pi = {
pi_approx}')
plt.legend()
plt.show()
pi= 3.13912
\
1.2 蒙特卡罗方法近似定积分
一元函数定积分是指对一个变量的函数在某个区间上的积分。具体来说,给定一个函数 f ( x ) f(x) f(x) 和一个区间 [ a , b ] [a, b] [a,b],其定积分表示为: ∫ a b f ( x ) d x \int_a^bf(x)dx ∫abf(x)dx。其几何意义是:函数 f ( x ) f(x) f(x)在区间 [ a , b ] [a, b] [a,b]上与x轴之间的面积。
1.2.1 蒙特卡罗方法近似定积分步骤
蒙特卡罗方法通过随机采样来近似计算一元函数定积分 I = ∫ a b f ( x ) d x I=\int_a^bf(x)dx I=∫abf(x)dx。其基本步骤如下:
- 在区间 [ a , b ] [a,b] [a,b]做随机采样,得到n个样本点: { x i } i = 1 n \{x_i\}_{i=1}^n { xi}i=1n
- 对每个样本点 x i