[英]Python Taylor series sin function graph
我正在嘗試使用 python 和 Jupyter notebook 繪制泰勒級數 sin(x) 圖。 我創建了一個簡短的函數。 該圖將在y2
之前正確顯示,但在y3
處將失敗。 很難在y3
繪制x = 2.7
的值的圖形。 我不知道如何修復y3
。
這是我的代碼:
import numpy as np
import matplotlib.pyplot as plt
import numpy as np
def f(x) :
result = x - x**3/6 + x**5/120
return result
x = np.linspace(0.0, 7.0, 100)
y = np.sin(x)
y2 = x - x**3/6 + x**5/120
y3 = f(2.7)
plt.title("taylor sin graph")
plt.xlim(0, 7+0.2)
plt.ylim(-5, 5+1)
plt.plot(x, y, label='sin(x)')
plt.plot(x, y2, label='x=0')
plt.plot(x, y3, label='x=2.7')
plt.legend()
plt.show()
我想在這里添加y3
:
在您發表評論后,它澄清說您不需要一個點,而是一條水平線。 在這種情況下,您可以簡單地輸入一個具有相同值2.7
的 x-mesh。
為此,您首先使用np.ones(100) * 2.7
定義一個包含值2.7
的數組,然后將其傳遞給函數。
y3 = f(2.7*np.ones(100))
plt.plot(x, y3, label='x=2.7')
要在x=2.7
處繪制單個點,有兩種方法(可能還有其他方法)。
第一個選項是僅指定兩個 xy 數字並使用標記繪制為
plt.plot(2.7, y3, 'bo', label='x=2.7')
第二種選擇是使用plt.scatter
。 s=60
只是為了有一個大標記。
plt.scatter(2.7, y3, s=60, label='x=2.7')
import numpy as np
import matplotlib.pyplot as plt
import numpy as np
def f(x) :
result = x - x**3/6 + x**5/120
return result
x = np.linspace(0.0, 7.0, 100)
y = np.sin(x)
y2 = x - x**3/6 + x**5/120
y3 = f(2.7)
plt.title("taylor sin graph")
plt.xlim(0, 7+0.2)
plt.ylim(-5, 5+1)
plt.plot(x, y, label='sin(x)')
plt.plot(x, y2, label='x=0')
plt.plot(2.7, y3, label='x=2.7', marker=11)
plt.legend()
plt.show()
您必須添加點 - 而不是 x 軸上的數組和 y 軸上的標量。
我認為
plt.plot([2.7], [y3], '-o', label='x=2.7')
會工作。 當 x 是 linspace 並且 y3 只是一個數字時,您無法繪制 (x,y3) 。
此外,sin 函數的泰勒近似僅適用於區間 (-pi, pi)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.