快捷搜索: 王者荣耀 脱发

大数据分析 - Taylor展开式的应用 - 指数函数 Exp(x)

实验题目:

用Taylor展开式的方式打印出 e^x 的图像

实验代码:

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

def calc_e_small(x):
    n=10
    f=np.arange(1,n+1).cumprod()
    b=np.array([x]*n).cumprod()
    return np.sum(b/f)+1

def 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 y
    
if __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],(近似值)	,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()

实验截图

经验分享 程序员 微信小程序 职场和发展