使用matplotlib模擬e x的麥克勞林展開式

2022-08-19 15:12:11 字數 1985 閱讀 3565

使用matplotlib模擬下e^x的麥克勞林展開式,用plt畫圖一開始覺得還是挺有意思的。

import

matplotlib.pyplot as plt

import

numpy as np

import

random

'''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)

'''#

階乘函式

deffactorial(n):

x = 1

for i in range(1,n+1):

x = x *i

returnx#

y值函式

defconsy(n,x):

y = 1

for i in range(1,n):

y += x**i/factorial(i)

returny#

生成影象

defmoniplot(n,x):

#定義乙個顏色集合

colors = ['

g','

b','

black

','cyan

','lightgreen

','yellow

','deeppink

','darkorchid']

plt.figure()

#原函式

y = np.e**x

#畫原函式影象並進行標記

plt.plot(x,y,'

r-',linewidth=2,label='

e^x'

)

#麥克勞林展開新增到影象上

for i in range(2,n):

y =consy(i,x)

#隨機選擇顏色

color = colors[random.randint(0,len(colors)-1)]

linestyle = '--'

#畫影象,並對最後乙個進行標記

if i ==n:

plt.plot(x,y,color=color,linewidth=1,linestyle=linestyle,label="

nearly e^x")

else

: plt.plot(x,y,color=color,linewidth=1,linestyle=linestyle)

plt.plot(x,y,color=color,linewidth=1,linestyle=linestyle)

#新增注釋

plt.text(1.2, consy(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)

#原函式

#y = np.e**x

#maclaurin展開 3項

#y1 = consy(2,x)

#展開 4項

#y2 = consy(3,x)

#tylor 5項

#y3 = consy(4,x)

#呼叫生成影象

moniplot(10,x)

#關閉圖

plt.close()

執行**,plt展示的結果如下(展開式的項數越多,越接近原函式):

matplotlib 基本使用

1,plot import matplotlib.pyplot as plt import numpy as np numpy庫,製作資料 x np.linspace 1,1,50 y 2 x 1 plt.plot x,y plot.show linspace x,y,n 範圍 x,y n個點 2,...

matplotlib的基本使用

容器層 1 canvas 畫布,位於最底層,使用者一般接觸不到 2 figure 圖,建立在canvas之上 3 axes 座標系 繪圖區,建立在figure之上,圖形繪製在這個範圍 輔助顯示層 最好放在影象層之後編寫 1 起到輔助作用,提高圖的可讀性 2 網格線,圖例,x y軸的標籤,圖的標籤,刻...

matplotlib的使用記錄

隨手記點東西,想到什麼補充什麼。子圖t1 np.arange 0,5,0.1 t2 np.arange 0,5,0.02 plt.figure 1 建立乙個圖,名為1 plt.subplot 2,2,1 在圖1裡面定義2行2列,一共4個子圖位置,取第1個位置 plt.plot t2,np.cos 2...