I scipy.optimize.root
mit der hybr
Methode verwenden (am besten ein?)`scipy.optimize.root` schnelle Wurzel zu finden
ich den Rest bei jeder Iteration
drucken Sie die Wurzel einer numerischen Funktion zu finden delta d 117.960112417 delta d 117.960112417 delta d 117.960112417 delta d 117.960048733 delta d 117.960112427 delta d 117.960112121 delta d 1.46141491664 delta d 0.0322651167588 delta d 0.000363688881595 delta d 4.05494689256e-08
Wie kann ich den Root-Fund beschleunigen, indem ich die Größe des Schritts, insbesondere zwischen den ersten Iterationen, vergrößere? Ich weiß nicht, wie genau der Algorithmus funktioniert, aber es sieht komisch aus, dass die 3 ersten Ergebnisse gleich sind und 3 Texte auch ziemlich identisch sind.
Reading the doc, ich habe versucht, den eps
Faktor zu ändern, ohne Erfolg
EDIT: @sasha, hier eine sehr einfache Funktion ist die Ausgabe
def f(X1,X2):
print ' X1 , diff , norm ' , X1 , X2 - X1 , np.linalg.norm(X2 - X1)
return X2 - X1
Xa = np.array([1000,1000,1000,1000])
Xb = np.array([2000,2000,2000,2000])
SOL = scipy.optimize.root(f,Xa,(Xb,))
Das Ergebnis wird sein, die folgenden erläutern Wir haben die drei identischen Wiederholungen am Anfang, unabhängig von der Länge der X
X1 , diff , norm [1000 1000 1000 1000] [1000 1000 1000 1000] 2000.0
X1 , diff , norm [ 1000. 1000. 1000. 1000.] [ 1000. 1000. 1000. 1000.] 2000.0
X1 , diff , norm [ 1000. 1000. 1000. 1000.] [ 1000. 1000. 1000. 1000.] 2000.0
X1 , diff , norm [ 1000.0000149 1000. 1000. 1000. ] [ 999.9999851 1000. 1000. 1000. ] 1999.99999255
X1 , diff , norm [ 1000. 1000.0000149 1000. 1000. ] [ 1000. 999.9999851 1000. 1000. ] 1999.99999255
X1 , diff , norm [ 1000. 1000. 1000.0000149 1000. ] [ 1000. 1000. 999.9999851 1000. ] 1999.99999255
X1 , diff , norm [ 1000. 1000. 1000. 1000.0000149] [ 1000. 1000. 1000. 999.9999851] 1999.99999255
X1 , diff , norm [ 2000. 2000. 2000. 2000.] [-0. -0. -0. -0.] 4.36239133705e-09
X1 , diff , norm [ 2000. 2000. 2000. 2000.] [ 0. 0. 0. 0.] 0.0
Ohne Details über Ihre Funktion/Daten zu wissen, kann dies nicht zufriedenstellend beantwortet werden. – sascha
Was passiert, wenn Sie Gradienten bereitstellen? –