Python-Taylor级数sin函数图

2024-04-25 21:59:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python和Jupyter笔记本绘制一个Taylor级数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

enter image description here


Tags: importnumpyplotasnp绘制笔记本jupyter
3条回答
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函数的Taylor逼近仅在区间(-pi,pi)下有效。在

在你的评论之后,你澄清了你不需要一个点,而是一条水平线。在这种情况下,您只需输入一个具有相同值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')

enter image description here

要在x=2.7绘制一个单点,有两种方法(在其他可能的方法中)。在

第一个选项只需指定两个x-y数字,并使用标记作为

^{pr2}$

第二个选项是使用plt.scatters=60只是为了有一个大标记。在

plt.scatter(2.7, y3, s=60, label='x=2.7')

enter image description here

相关问题 更多 >