簡體   English   中英

Python 泰勒級數正弦函數圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM