मैं scipy और matplotlib के लिए नया हूं, और मैं डेटा पर फ़ंक्शंस फिट करने की कोशिश कर रहा हूं। Scipy Cookbook में पहला उदाहरण शानदार रूप से काम करता है, लेकिन जब मैं इसे फ़ाइल से पढ़ने वाले बिंदुओं के साथ कोशिश कर रहा हूं, तो प्रारंभिक गुणांक जो मैं देता हूं (नीचे पी 0) वास्तव में कभी भी परिवर्तित नहीं होता है, और कॉन्वर्सिस मैट्रिक्स हमेशा INF होता है।डेटा फिट करने के लिए curve_fit का उपयोग
मैंने किसी भी लाइन के बाद भी डेटा को फिट करने की कोशिश की है, इसका कोई फायदा नहीं हुआ है। क्या मैं डेटा आयात करने के तरीके में एक समस्या है? यदि हां, तो क्या ऐसा करने का एक बेहतर तरीका है?
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import scipy as sy
with open('data.dat') as f:
noms = f.readline().split('\t')
dtipus = [('x', sy.float32)] + [('y', sy.float32)]
data = sy.loadtxt(f,delimiter='\t',dtype=dtipus)
x = data['x']
y = data['y']
def func(x, a, b, c):
return a*x**b + c
p0 = sy.array([1,1,1])
coeffs, matcov = curve_fit(func, x, y, p0)
yaj = func(x, coeffs[0], coeffs[1], coeffs[2])
print(coeffs)
print(matcov)
plt.plot(x,y,'x',x,yaj,'r-')
plt.show()
धन्यवाद!
हाँ, धन्यवाद! लोड लोड के साथ डेटा लोड हो रहा है। ऐसा लगता है कि मैं इसे कठिन तरीके से करने की कोशिश कर रहा था, लेकिन मैं जांच कर रहा हूं कि क्या गलत हो रहा था। – Ironil