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)
        
    #添加注釋
    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)) 
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) 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 [ ]:
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM