为了账号安全,请及时绑定邮箱和手机立即绑定

Python 泰勒级数正弦函数图

Python 泰勒级数正弦函数图

慕码人8056858 2021-08-05 17:45:40
我正在尝试使用 python 和 Jupyter notebook 绘制泰勒级数 sin(x) 图。我创建了一个简短的函数。图形将正确显示直到y2,但它会在 失败y3。很难绘制具有x = 2.7in值的图形y3。我不知道如何修复y3。这是我的代码:import numpy as npimport matplotlib.pyplot as pltimport numpy as npdef f(x) :   result = x - x**3/6 + x**5/120    return resultx = np.linspace(0.0, 7.0, 100)y = np.sin(x)y2 = x - x**3/6 + x**5/120y3 = 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这里补充:
查看完整描述

3 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

在您发表评论后,它澄清说您不需要一个点,而是一条水平线。在这种情况下,您可以简单地输入一个具有相同 value 的 x-mesh 2.7。


为此,您首先2.7使用 using定义一个包含值的数组np.ones(100) * 2.7,然后将其传递给函数。


y3 = f(2.7*np.ones(100))

plt.plot(x, y3, label='x=2.7')

//img1.sycdn.imooc.com//610bb36a00019e3104280286.jpg

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

第一个选项是仅指定两个 xy 数字并使用标记绘制为

plt.plot(2.7, y3, 'bo', label='x=2.7')

第二种选择是使用plt.scatters=60只是要有一个大标记。

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

//img1.sycdn.imooc.com//610bb3750001195c04140272.jpg

查看完整回答
反对 回复 2021-08-05
?
PIPIONE

TA贡献1829条经验 获得超9个赞

我认为

plt.plot([2.7], [y3], '-o', label='x=2.7')

会工作。当 x 是 linspace 并且 y3 只是一个数字时,您无法绘制 (x,y3) 。

此外,sin 函数的泰勒近似仅适用于区间 (-pi, pi)。


查看完整回答
反对 回复 2021-08-05
  • 3 回答
  • 0 关注
  • 251 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信