2017-11-18 8 views
1

私はnumpy polyfitからの結果が奇妙です(私の見解から)。私のコード:numpy polyfitの奇妙な結果

import numpy as np 
data=np.array([2482.9, 2483.0, 2485.9, 2486.0, 2486.4, 2485.1, 2485.4, 2484.9, 2484.8, 2484.8, 2484.8, 2484.0, 2484.1, 2484.1, 2484.1]) 
wr = range(len(data)) 
poly = np.polyfit(wr , data, deg = 2) 
wp = np.poly1d(poly) 
el = 2484.1 
res = wp(el) 
print(res) 
#result -225256.888955 

これはバグですか?

+0

あなたは何を得るのですか、あなたは何を期待していますか? – eyllanesc

+0

データをプロットしましたか? 2度の多項式は適用可能ですか? – harandk

+0

私はLibreOfficeに自分のデータをプロットしました。ポリノーム2度は大丈夫です。私が得たものは上のコードで見ることができます: '#result -225256.888955' – Prokhozhii

答えて

1

@DSMは既に述べたように、2次多項式のようには見えません。

我々はしかし、より高度でそれに合うように試みることができます。

import numpy.polynomial.polynomial as poly 
x = wr; y = data 

coefs = poly.polyfit(x, y, 4) 
ffit = poly.Polynomial(coefs) 

plt.plot(x, y) 
plt.plot(x, ffit(x)) 
plt.legend(['y(x)','ffit(x)']) 

結果:

enter image description here

+1

はい、ちょうどxとyを混同しています。今日は私の日ではありません:)その過ちに気づくにはあまりにも疲れました。 – Prokhozhii

+0

@Prokhozhii、ええ、少し休憩を取る;-) – MaxU