使用 Matplotlib 和系数绘制多项式

新手上路,请多包涵

我的代码是:

 import numpy as np
import matplotlib as plt
polyCoeffiecients = [1,2,3,4,5]
plt.plot(PolyCoeffiecients)
plt.show()

这样做的结果是描述 1,2,3,4,5 中的点的直线以及它们之间的直线,而不是具有 1,2,3,4,5 作为系数的 5 次多项式( P(x) = 1 + 2x + 3x + 4x + 5x)

我应该如何绘制仅包含其系数的多项式?

原文由 Eyzuky 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 490
2 个回答

Eyzuky,看看这是不是你想要的:

 import numpy as np
from matplotlib import pyplot as plt

def PolyCoefficients(x, coeffs):
    """ Returns a polynomial for ``x`` values for the ``coeffs`` provided.

    The coefficients must be in ascending order (``x**0`` to ``x**o``).
    """
    o = len(coeffs)
    print(f'# This is a polynomial of order {o}.')
    y = 0
    for i in range(o):
        y += coeffs[i]*x**i
    return y

x = np.linspace(0, 9, 10)
coeffs = [1, 2, 3, 4, 5]
plt.plot(x, PolyCoefficients(x, coeffs))
plt.show()

原文由 moser 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以通过获取大量 x 值并使用 np.polyval() 来大致绘制多项式,以在 x 值处获取多项式的 y 值。然后你可以只绘制 x-vals 和 y-vals。

 import numpy as np
import matplotlib.pyplot as plt

curve = np.array([1,2,3,4,5])
x = np.linspace(0,10,100)
y = [np.polyval(curve, i) for i in x]
plt.plot(x,y)

原文由 charlie1450 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题