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 に答える