系列文章目录
第一章 强化学习环境搭建
第二章 强化学习基础知识
第三章 蒙特卡洛算法
前言
本章学习蒙特卡洛算法的应用
一、蒙特卡洛是什么?
蒙特卡洛是一大类随机算法,用随机样本来近似估计真实值。
二、实例
1.用均匀抽样来估计π
代码如下:
import random
n = int(input())
numCir = 0
# 蒙特卡洛近似计算π
for i in range(1, n):
# 在边长为1的正方形中随机抽样
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
if x ** 2 + y ** 2 <= 1:
# 落在正方形内切圆的点的数目
numCir += 1
pi1 = numCir * 4 / n
print("π = " + str(pi1))
2.蒙特卡洛估算阴影面积
代码如下:
for i in range(1, n):
x = random.uniform(0, 2)
y = random.uniform(0, 2)
if (x ** 2 + y ** 2 > 4) and ((x-1) ** 2 + (y-1) ** 2 <= 1):
numCir += 1
pi2 = numCir * 4 / n
print("π = " + str(pi2))
3.蒙特卡洛近似求定积分
给定函数f(x) = 1 / (1+sin(x) *(logex)^2),求该函数在区间[0.8,3]上的积分I
代码如下:
# 蒙特卡洛近似求定积分
q = 0
for i in range(1, n):
x = random.uniform(0.8, 3)
y = 1 / (1 + math.sin(x) * (math.log(x) ** 2))
q += y
I = 2.2 * q / n
print("定积分I = " + str(I))
总结
以上就是今天要讲的内容,本文仅仅简单介绍了蒙特卡洛的应用。
PS:前两章的内容还没有完善好,后续会放开权限,有意愿了解的,点点关注,后续会更新。