Python 编程实现蒙特卡罗方法
何为蒙特卡罗方法,如何解决实际问题?
何为蒙特卡罗方法
几何上来说,蒙特卡罗方法就是用离散的点来填充规则的指定区域,对其中满足条件的点进行计数,然后算的不规则区域的面积或体积。
应用实例
不规则区域的面积
数学题 求xy=2,xy=3,y^2 =x,y^2=2x维=围成的面积
方法:数学的二重积分加雅克比变换,编程上可以用蒙特卡罗方法
废话不多说,直接看代码
import numpy as np
import matplotlib.pyplot as plt
s0=0.63 #小矩形的面积
N=10000
x=np.random.uniform(1.2,2.1,size=N)
y=np.random.uniform(1.2,1.9,size=N)
c=0
for i in range(N):
a=x[i]
b=y[i]
if a*b>=2 and a*b<=3 and b**2<=2*a and b**2>=a:
plt.plot(a,b,'c+')
c+=1
else:
plt.plot(a,b,'g+')
plt.show()
plt.savefig(