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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top