Wie kann ich Analyse tun Regression in Sage?
Frage
Ich habe versucht, dies erfolglos:
find_fit(data, quadratic_residues)
Ich versuche, den Best-Fit für Daten über die Wasserdurchflussraten zu finden: http : //dl.getdropbox.com/u/175564/rate.png
--- bearbeiten nach dem Kommentar ---
Der neue Code:
var('x')
model(x) = x**2
find_fit((xlist, reqlist), model)
Die Fehlermeldung:
Traceback (click to the left for traceback)
...
TypeError: data has to be a list of lists, a matrix, or a numpy array
--- bearbeiten
Die Fehlermeldung lautet nun:
Traceback (click to the left for traceback)
...
ValueError: each row of data needs 2 entries, only 5 entries given
Das gleiche hier wie ein Bild: http://dl.getdropbox.com/u/175564/sage.png
Lösung
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'
)
Andere Tipps
Ich denke, Ihr Problem ist, dass quadratic_residues wahrscheinlich bedeutet nicht, was Sie denken, es bedeutet. Wenn Sie versuchen, das beste quadratische Modell zu passen Ich glaube, Sie so etwas wie tun wollen.
var('a, b, c, x')
model(x) = a*x*x + b*x + c
find_fit(data, model)
Der Versuch, Steven seinem Beispiel Ich lief auch in den Fehler:
ValueError: each row of data needs 5 entries, only 2 entries given
Hier ist ein deutliches Beispiel, das ich getestet habe in Weiser 4.7 zu arbeiten.
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 Sie die Variablen benötigen = [x] Salbei zu sagen, welche von a, b, c und x entspricht den Variablen im Modell.