欧拉数e的pythonmatplotlib可视化
1 说明
=====
1.1 欧拉数:就是自然常数,e。
1.2 e是"指数"(exponential)的首字母,也是欧拉名字的首字母。
1.3 三大数学常数:自然常数e、圆周率π和虚数单位i。
1.4 第一次把e看成常数的是雅各布•伯努利,他开始尝试计算lim(1+1/n) n 的值;1727年欧拉首次用小写字母"e"表示这常数。
欧拉恒等式:真正的宇宙第一公式
欧拉(Leonhard Euler,1707年4月15日-1783年9月18日),瑞士数学家和物理学家
2 python实现自然常数e
==================
2.1 图1
图片1:静态
2.2 图2
图片2:蒙特卡洛法动态散点分布图
3 python的e求近似值==求阶乘法
=========================
3.1 代码1:#计算e的值(精度为10**-6,可调节,最大50,即小数点后50位) sum,tmp = 1,1 for i in range(1,100): #100,为取值最小17,代码2有讲解 tmp*=i sum += 1/tmp print("e的近似值(精度为10**-6)为%.6f"%sum) print("e的近似值(精度为10**-9)为%.9f"%sum) print("e的近似值(精度为10**-29)为%.29f"%sum) print("e的近似值(精度为10**-69)为%.69f"%sum)
3.2 代码1结果:#e的近似值(精度为10**-6)为2.718282 #e的近似值(精度为10**-9)为2.718281828 #e的近似值(精度为10**-29)为2.71828182845904553488480814849 #e的近似值(精度为10**-69)为2.718281828459045534884808148490265011787414550781250000000000000000000
3.3 代码2:n = int(input()) sum = 0 def jc(a): #求阶乘 num = 1 for i in range(a + 1): if i != 0: num *= i return num for i in range(n + 1): sum += 1 / jc(i) print("{:.50f}".format(sum))
3.4 结果n为输入非负整数 n(≤1000) 17 #为最小n,大于17的n值基本不变 2.71828182845904553488480814849026501178741455078125 16 #<17的数值改变 2.71828182845904287034954904811456799507141113281250
4 图片1的代码import matplotlib.pyplot as plt #级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算 x = [] y = [] #计算e的值(精度为10**-50) edata,tmp = 1,1 for i in range(1,50): x.append(i) tmp*=i y.append(edata) edata += 1/tmp plt.plot(x, y) plt.title("e自然常数(欧拉数)(小数点后50位)≈: {:.50f}".format(edata)) plt.show()
5 图片2的说明
===========
5.1 源代码来自https://www.jianshu.com/p/107d97423e6b #2019-3-14 张子豪 同济大学 感谢原作者 #源代码有报错,修改bug,并对代码进行注释、修改、整理
5.2 源代码bugNo handles with labels found to put in legend. /home/xgj/Desktop/python-e/2.py:35: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance. plt.subplot(121) ...... (省略)
5.3 解决bug思路#参考文章 https://www.it1352.com/1605941.html
6 图片2代码
=========
6.1 第1步:导入模块import random import matplotlib.pyplot as plt import numpy as np
6.2 第2步:初始化参数设置#plt背景颜色定义,一定放在前面 plt.style.use("dark_background") DARTS = 300 #可自定义,源代码1024*1024,太大了 counts = 0 # 落在曲线下方的点数 e = 0 # e的计算值 xs = [0,0] ys = [0,0] #初始化定义画布,一行2个子图ax fig, (ax1, ax2) = plt.subplots(1, 2)
6.3 第3步:子图1=ax1# 开始画左边的图:撒点估计曲线下方的面积 x = np.arange(0.5,2.5,0.001) ax1.set_ylim(0,1.25) # y轴坐标范围 ax1.set_xlabel("x") # x轴标签 ax1.set_ylabel("y") # y轴标签 ax1.plot(x,1/x) # 绘制反比例函数曲线 ax1.legend(["loc=1"]) # 在右上角增加图例 ax2.legend(["y = 1 / x"]) # 图例的内容 ax1.plot([1,1,2,2],[0,1,1,0],"r",linewidth=0.2) # 绘制撒点范围框 ax1.set_title("蒙特卡洛法动态散点分布图") # 图的标题动态更新
6.4 第4步:联动子图1和子图2#4-1 子图1的散点图 for i in range(DARTS): x = random.uniform(1,2) y = random.uniform(0,1) if y < 1/x: # 点落在曲线下方 counts += 1 ax1.plot(x,y,"g.") else: # 点落在曲线上方 ax1.plot(x,y,"r.") if counts>0: e = pow(2,i/counts) #4-2 子图2设置 # 开始画右边的图:e的计算值随投掷次数的关系 xs[0] = xs[1] # 上一个e值与下一个e值,通过xs与ys列表中的两个元素进行两点连线 xs[1] = i ys[0] = ys[1] ys[1] = e ax2.set_ylim(0,4.5) # y轴坐标范围 ax2.set_xlabel("Number of try") # x轴标签 ax2.set_ylabel("Estimation of e") # y轴标签 ax2.set_yticks(np.arange(0,4.5,0.5)) # y轴刻度线 ax2.set_title("e:{:.10f} count:{}".format(e,i)) # 图的标题动态更新 # 绘制2.71828参考线 ax2.axhline(np.e,linewidth=0.05,color="r") # 绘制e的计算值随撒点次数变化的曲线 ax2.plot(xs,ys,"y--",linewidth=0.3) #子图1和子图2交互(ax1与ax2交互) plt.ion() # 保持图像处于交互更新状态 plt.pause(0.2) # 控制撒点速度
7 小结
=====
7.1 环境:matplotlib3.2+python3.8
7.2 注意matplotlib中文设置:
请参考我的文章,以免报错。
《强!3种方法实现python-matplotlib显示中文》
===分析仔细,值得收藏===
听力有问题的孩子,配了助听器可以正常在学校读书吗?可以正常在学校读书的,作为孩子的家长,一定要树立对佩戴助听器的正确认知1早发现早干预,只要发现孩子有听力损失了,就建议及早验配助听器,越早的干预对于孩子言语系统的建立就帮助越大,助
带娃日记2其实剖腹产的都知道,剖腹产最难受的时候莫过于镇痛泵一取,医生让你下床的时候和上卫生间的时候,以及排气。我算幸运的,因为去的时候不知道可以提前预约所以单人病房已经没有了,只能住双人的
回溯迎接我的小公举(1)奶爸系列1这是奶爸系列第一篇文章,回溯性记录下半年前我女儿出生时的事情。时间拨回到21年3月,春节假期刚结束几周,当时我家夫人的预产期已经临近,所以她是在家继续休假(其实过春节假期
生长激素不是身高焦虑的良药来源中国妇女报从担心孩子的学习,到担心孩子的个头,越来越多家长开始重视孩子的个子问题。孩子一年没长高几厘米,家长焦虑孩子不如班上其他同学高,家长焦虑孩子并不矮,但没达到期望值,家长
带娃日记3好不容易熬到了出院,回家坐月子,不要问我为什么没有去月子中心,小城市,唯一一个月子中心那段时间还关门了,也压根没想到找月嫂,看了很多那种不利于月嫂的视频和报道,我就怕了,就想着自己
阅读范梅南时遇见了自己控制别人的思想很困难,而控制自己的大脑也许更难。2021年4月12日1650,看着办公桌上的几摞书,范梅南突然莫名其妙地跳进了我的大脑。马克斯范梅南,这个有点儿特别的中文译名,让我
阅人无数荐书稿如何让青春期叛逆的孩子打开紧闭的房门和你谈谈,在这种高冲突下,怎样做到即不和孩子闹僵关系,又能达到想要的结果?我们可以通过阅人无数这本书中介绍的动物模式的沟通技巧展开良好的互动,首
所谓婴儿的安全感,宝宝真的能感受到么?人人都说我的宝宝好带,爱笑。可是人们不知道我在背后付出了多少的努力和辛酸。爸爸白天上班,只有我一个人在家带宝宝,宝宝小的时候,只要他睁开眼睛,就一定能够看见我。我陪他说话,讲儿歌,
从第一次孕检到宝宝出生大约需要多少钱,想了解预算的准宝妈来大家好,我是90后宝妈一枚,现在宝宝八个多月,一直想整理一下怀孕,生产的费用成本,刚刚闲下来,现在给大家整理一下,我从怀孕到生宝宝整个孕期需要做的检查和相关费用,我是在济南省妇幼检
你在哭,我在痛对于一个六岁女孩,作为母亲的我们,在慈母和严母之间,一直在纠结那个界限,不能太宠爱,怕把小孩宠坏。不能太严格,会打击她,造成心里阴影。六岁,是进去了一个小小叛逆期了吗?她开始学会了
解开马背摇篮精神密码(本报记者赵彩侠纪秀君田玉)爸爸,我们这里是最棒的幼儿院!这是小班幼儿高盛祖第二次带爸爸来院史馆,他给爸爸讲北京市六一幼儿院的历史,带爸爸看荣誉墙我想,这就是平时老师们带孩子来学习