实验题目:
【大数据分析 - Taylor展开式的应用 - 指数函数 Exp(x)】用Taylor展开式的方式打印出 e^x 的图像
实验代码:
import numpy as np
import math
import matplotlib as mpl
import matplotlib.pyplot as pltdef calc_e_small(x):
n=10
f=np.arange(1,n+1).cumprod()
b=np.array([x]*n).cumprod()
return np.sum(b/f)+1def calc_e(x):
reverse = False
if x<0:
x=-x
reverse = True
ln2 = 0.69314718055994530941723212145818
c=x/ln2
a=int(c+0.5)
b=x-a*ln2
y=(2**a)*calc_e_small(b)
if reverse:
return 1/y
return yif __name__ == "__main__":
np.set_printoptions(suppress=False)
t1 = np.linspace(-2,0,10,endpoint = False)
t2 = np.linspace(0,4,20)
t = np.concatenate((t1,t2))
print(t)
y=np.empty_like(t)
for i,x in enumerate(t):
y[i]=calc_e(x)
print('e^',x,' = ',y[i],'(近似值)\t',math.exp(x),'(真实值)')
plt.figure(facecolor='w')
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
plt.plot(t,y,'r-',t,y,'go',linewidth=2)
plt.title('Taylor展开式的应用 - 指数函数',fontsize=18)
plt.xlabel('X',fontsize=15)
plt.ylabel('exp(x)',fontsize=15)
plt.grid(True,ls=':')
plt.show()
实验截图
文章图片
欢迎访问作者个人技术博客:BlackvonCode(www.blackvon.top)
作者的微信公众号和小程序
文章图片