python机器学习库numpy---15、模拟e^x的麦克劳林展开式
一、总结
一句话总结:
numpy模拟e^x的麦克劳林展开式也就是 x轴模拟一些点,y轴数据根据e^x的麦克劳林公式展开式,逐步增加项数,然后画图即可
import matplotlib.pyplot as plt import numpy as np ''' e^x的麦克劳林展开式: e^x= f(0)+ f′(0)x+ f″(0)x ²/ 2!+...+ fⁿ(0)x^n/n!+Rn(x) =1+x+x^2/2!+x^3/3!+...+x^n/n!+Rn(x) ''' # y值函数 def calcY(n,x): y = 1 for i in range(1,n): y += x**i/np.math.factorial(i) return y # 生成图像 def moniPlot(n,x): # 定义一个颜色集合 colors = ['g','b','black','cyan','lightgreen','yellow','deeppink','darkorchid'] # 原函数 y = np.e**x # 画原函数图像并进行标记 plt.plot(x,y,'r-',linewidth=2,label='e^x') # 麦克劳林展开添加到图像上 for i in range(2,n): y = calcY(i,x) # 随机选择颜色 color = colors[np.random.randint(0,len(colors)-1)] linestyle = '--' # 画图像 plt.plot(x,y,color=color,linewidth=1,linestyle=linestyle) #添加注释 plt.text(1.2, calcY(10,3.9),"Maclaurin's series of e^x ",size=12) # 将标记绘制图例,位置为于中间左侧 plt.legend(['e^x',"nearly e^x"], loc = 'center left') plt.show() # 定义 x , y x = np.linspace(1,4,80) # 调用生成图像 moniPlot(10,x) # 关闭图 plt.close()
二、模拟e^x的麦克劳林展开式
博客对应课程的视频位置:15、模拟e^x的麦克劳林展开式-范仁义-读书编程笔记
https://www.fanrenyi.com/video/38/358
使用numpy库和matplotlib库模拟下e^x的麦克劳林展开式
In [3]:
import numpy as np print(np.math.factorial(4))
In [5]:
import matplotlib.pyplot as plt import numpy as np ''' e^x的麦克劳林展开式: e^x= f(0)+ f′(0)x+ f″(0)x ²/ 2!+...+ fⁿ(0)x^n/n!+Rn(x) =1+x+x^2/2!+x^3/3!+...+x^n/n!+Rn(x) ''' # y值函数 def calcY(n,x): y = 1 for i in range(1,n): y += x**i/np.math.factorial(i) return y # 生成图像 def moniPlot(n,x): # 定义一个颜色集合 colors = ['g','b','black','cyan','lightgreen','yellow','deeppink','darkorchid'] # 原函数 y = np.e**x # 画原函数图像并进行标记 plt.plot(x,y,'r-',linewidth=2,label='e^x') # 麦克劳林展开添加到图像上 for i in range(2,n): y = calcY(i,x) # 随机选择颜色 color = colors[np.random.randint(0,len(colors)-1)] linestyle = '--' # 画图像 plt.plot(x,y,color=color,linewidth=1,linestyle=linestyle) #添加注释 plt.text(1.2, calcY(10,3.9),"Maclaurin's series of e^x ",size=12) # 将标记绘制图例,位置为于中间左侧 plt.legend(['e^x',"nearly e^x"], loc = 'center left') plt.show() # 定义 x , y x = np.linspace(1,4,80) # 调用生成图像 moniPlot(10,x) # 关闭图 plt.close()
In [ ]: