كيف يمكنني أن أفعل تحليل الانحدار في سيج؟

StackOverflow https://stackoverflow.com/questions/454606

  •  19-08-2019
  •  | 
  •  

سؤال

وحاولت دون جدوى هذا:

find_fit(data, quadratic_residues)

وأنا أحاول العثور على أفضل لاحتواء البيانات حول معدلات تدفق المياه: HTTP : //dl.getdropbox.com/u/175564/rate.png

و--- تحرير بعد تعليق ---

والقانون الجديد:

var('x')
model(x) = x**2
find_fit((xlist, reqlist), model)

ورسالة الخطأ:

Traceback (click to the left for traceback)
...
TypeError: data has to be a list of lists, a matrix, or a numpy array

و--- تحرير

ورسالة الخطأ الآن:

Traceback (click to the left for traceback)
...
ValueError: each row of data needs 2 entries, only 5 entries given

وهنا نفس كصورة: http://dl.getdropbox.com/u/175564/sage.png

هل كانت مفيدة؟

المحلول

mydata = [[1,3],[2,7],[3,13],[4,24]]
var('a,b,c')
mymodel(x) = a*x^2 + b*x + c 
myfit = find_fit(mydata,mymodel,solution_dict=True)
points(mydata,color='purple') + plot(
  mymodel(
    a=myfit[a],
    b=myfit[b],
    c=myfit[c]
    ), 
    (x,0,4,),
    color='red'
  )

نصائح أخرى

وأعتقد أن مشكلتك هي أن quadratic_residues ربما لا يعني ما كنت أعتقد أنه يعني. إذا كنت تحاول تناسب أفضل نموذج من الدرجة الثانية أعتقد أنك تريد أن تفعل شيئا من هذا القبيل.

var('a, b, c, x')
model(x) = a*x*x + b*x + c
find_fit(data, model)

ومحاولة ستيفن مثاله ركضت أيضا في الخطأ:

ValueError: each row of data needs 5 entries, only 2 entries given

وهنا مثال أكثر وضوحا أن لقد اختبرت أن تعمل في حكيم 4.7.

sage: l=[4*i^2+7*i+134+random() for i in xrange(100)]
sage: var('a,b,c,x')
(a, b, c, x)
sage: model=a*x^2+b*x+c
sage: find_fit(zip(xrange(100),l),model,variables=[x])
[a == 4.0000723084513217, b == 6.9904742307159697, c == 134.74698715254667]

وApperently كنت في حاجة إلى المتغيرات = [س] أن يقول حكيم أي من أ، ب، ج و x يتوافق مع المتغير في النموذج الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top