1

我正在使用matplotlib。我有一个包含 600 个值的列表。我还有一个多项式函数,我用 0 到 600 之间的值绘制图形。我试图将每个点乘以列表中的相应值。

我可以在一个循环中评估多项式,然后在那里进行乘法运算,但我最终会得到一个点图而不是一条线。

我想我可能需要使用 Transformations 框架,但不确定如何将其应用于图表。

编辑:

a = [5, 2, 3 ... 0, 2, 8] # 600 values
poly_a = polyfit(a)

deriv_a = polyder(poly_a)

b = [232, 342 ... 346, 183] # 600 values

我需要将 deriv_a 乘以 b。

4

1 回答 1

1

我认为你对事情有点误解。这就是numpy目的(如果您正在使用matplotlib它,则在绘图时已经将事物转换为 numpy 数组,无论如何。)

只需将您的“600 个值列表”转换为 numpy 数组,然后计算多项式。

举个例子:

import numpy as np
import matplotlib.pyplot as plt

# Your "list of 600 values"...
x = np.linspace(0, 10, 600)

# Evaluate a polynomial at each location in `x`
y = -1.3 * x**3 + 10 * x**2 - 3 * x + 10

plt.plot(x, y)
plt.show()

在此处输入图像描述

编辑: 根据您的编辑,听起来您在问如何使用numpy.polyder

基本上,您只想numpy.polyval用来评估polyder在您的点位置返回的多项式。

以上面的示例为基础:

import numpy as np
import matplotlib.pyplot as plt

# Your "list of 600 values"...
x = np.linspace(0, 10, 600)

coeffs = [-1.3, 10, 3, 10]

# Evaluate a polynomial at each location in `x`
y = np.polyval(coeffs, x)

# Calculate the derivative
der_coeffs = np.polyder(coeffs)

# Evaluate the derivative on the same points...
y_prime = np.polyval(der_coeffs, x)

# Plot the two...
fig, (ax1, ax2) = plt.subplots(nrows=2)

ax1.plot(x, y)
ax1.set_title('Original Function')

ax2.plot(x, y_prime)
ax2.set_title('Deriviative')

plt.show()

在此处输入图像描述

于 2012-10-26T02:12:21.170 回答