用蒙特卡洛方法计算π,计算e,计算γ


算法设计与分析的作业,还挺有意思的,给大家分享下

1.用蒙特卡洛方法计算π

import numpy as np
import math 
import matplotlib.pyplot as plt

list=[]
N=[]

for n in range(9999990,10000000): #为了看清楚概率的变化,可以做一个循环,n自动取整数
   x=np.random.uniform(-0.5,0.5,n) #产生的随机点的坐标定位。产生随机点的功能在numpy里
   y=np.random.uniform(-0.5,0.5,n) #产生的随机点的坐标定位。产生随机点的功能在numpy里
   
    #统计落在圆形里面的点
   pos=sum(np.where(x**2+y**2<0.25,1,0))#通过求和来得到落在圆里面的点的总数,条件写在where里面,如果满足条件返回1,不满足返回0
   pis=pos/n/0.25#计算π
   res=abs(pis-math.pi) #可以通过计算误差来看一下真实值和计算值的差距,在math库中有π,所以要引入math库
   list.append(res)
   N.append(n)
   print(pis)

print(list)
print(N)
plt.plot(N,list)
   

2.计算e的代码(这个来源于同济子豪兄,后续我的作业计算欧拉常数γ的代码就是参考的这位仁兄的代码)

# 蒙特卡洛法计算自然常数e——python编程及可视化

> 张子豪  同济大学

蒙特卡洛方法是一种用野蛮粗暴的蛮力对抗精致数学的一种计算思维,能够将复杂数学问题转化为简单粗暴的重复步骤,在工程上有很多应用。我还用蒙特卡洛方法计算了圆周率,请看我另一篇博客。

![蒙特卡洛方法计算自然常数e](https://upload-images.jianshu.io/upload_images/13714448-0e73a7a806a876ac.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![蒙特卡洛方法计算自然常数e](https://upload-images.jianshu.io/upload_images/13714448-800677c161c98f44.gif?imageMogr2/auto-orient/strip)



# 原理

![曲面四边形面积即为积分之后的值](https://upload-images.jianshu.io/upload_images/13714448-89504a4f4ce5f7a5.png?imageMogr2/auto-orient/strip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值