python机器学习库numpy---15、模拟e^x的麦克劳林展开式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)
#添加注释
<(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的麦克劳林展开式-范仁义-读书编程笔记
使⽤numpy库和matplotlib库模拟下e^x的麦克劳林展开式
In [3]:
import numpy as np
print(np.math.factorial(4))
24
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)
linspace numpy
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)
#添加注释
<(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 [ ]:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。