2012-10-03 5 views
5

हाय मैं ढलान और अवरोध में त्रुटियों की गणना करना चाहता हूं जिन्हें scipy.polyfit फ़ंक्शन द्वारा गणना की जाती है। मेरे पास ydata के लिए अनिश्चितता है (+/-) तो मैं ढलान और अवरोध में अनिश्चितता की गणना के लिए इसे कैसे शामिल कर सकता हूं? मेरे कोड, हैबहुपद फिटिंग (ढलान और अवरोध में) के लिए त्रुटि की गणना कैसे करें

from scipy import polyfit 
import pylab as plt 
from numpy import * 

data = loadtxt("data.txt") 
xdata,ydata = data[:,0],data[:,1] 


x_d,y_d = log10(xdata),log10(ydata) 
polycoef = polyfit(x_d, y_d, 1) 
yfit = 10**(polycoef[0]*x_d+polycoef[1]) 


plt.subplot(111) 
plt.loglog(xdata,ydata,'.k',xdata,yfit,'-r') 
plt.show() 

धन्यवाद एक बहुत

उत्तर

4

आप scipy.optimize.curve_fit बजाय polyfit इस्तेमाल कर सकते हैं। Ydata की त्रुटियों के लिए इसमें पैरामीटर sigma है। आप एक दृश्य yerror में हर y मूल्य के लिए अपने त्रुटि है, तो (ताकि yerror अपने y_d अनुक्रम के रूप में एक ही लंबाई है) आप कर सकते हैं:

polycoef, _ = scipy.optimize.curve_fit(lambda x, a, b: a*x+b, x_d, y_d, sigma=yerror) 

एक विकल्प के लिए एक शक्ति जी के लिए फिटिंग पैरा देखना Scipy Cookbook में त्रुटियों वाले डेटा

+0

उत्तर के लिए धन्यवाद। हां मैंने देखा है कि पावर लॉ फ़ंक्शन है लेकिन मैं अपनी +/- त्रुटि को ydata के साथ कैसे जोड़ सकता हूं? उदाहरण के लिए मेरा ydata दिखता है, वाई = 5 (+0.1, -0.4), 4.7 (+ 0.7, -0.4), .. आदि। –

+0

@viralparekh आपके पास अपने मूल्यों का विषम विचलन है? इससे पहले कभी नहीं देखा :) क्या आप थोड़ा विचलित कर सकते हैं कि सकारात्मक विचलन नकारात्मक से अलग क्यों है। – halex

+0

यह आत्मविश्वास क्षेत्र दिखाता है। तो पहला वाई मान (5.0 9 और 4.5 9) और इसी तरह के बीच है। यह सिर्फ + ve (उच्च) और -ve (कम) त्रुटि दिखा रहा है। –

संबंधित मुद्दे