0
matplotlibで6次関数をレンダリングしたいが、見つかったこのコードでは動作するが、python3では動作しない。 Yはnp.arrayに配位し、matplotlibがpython3で失敗する
plt.plot(x_range, map(F, x_range))
私は何かについて読ん
約Xを宣言し、それはしませんでした:その行に
raise ValueError("x and y must have same first dimension")
ValueError: x and y must have same first dimension
:
import numpy as np
from matplotlib import pyplot as plt
def langrange_polynomial(X, Y):
def L(i):
return lambda x: np.prod([(x-X[j])/(X[i]-X[j]) for j in range(len(X)) if i != j]) * Y[i]
Sx = [L(i) for i in range(len(X))] # summands
return lambda x: np.sum([s(x) for s in Sx])
# cut something
# Here i get the points with a function
(X, Y) = [1,2,3,4,5,6,7],[0,20,10,4,3,40,4]
F = langrange_polynomial(X, Y)
x_range = np.linspace(X[0], X[-1], 100)
plt.plot(X, Y, 'ro')
plt.plot(x_range, map(F, x_range))
plt.xlabel(r'$x$')
plt.ylabel(r'$F(x)$')
plt.title('Lagrange polynomial interpolation')
plt.grid(True)
plt.show()
このエラーを取得します。とにかく働いた。 Python 3.5では何が必要ですか?
は、おかげでたくさん;-)ことを推測したことがないでしょう
または、経由リストを取得する必要があります! –