2016-04-28 5 views
0

Ich möchte 2-dimenshional Funktion minimieren und so Python-Code haben:Probleme mit 2-dimenshional Funktion in Python scipy.optimize minimieren

def f(x,y): 
    return (x-1.0)**2 + (y-2.0)**2 

res = minimize(f, x0 = [0.0,0.0], bounds = ((-5,5),(-5,5)), method = 'L-BFGS-B') 

Und es funktioniert nicht, wegen solcher Fehler (dies ist die letzte Zeile des Fehlers):

TypeError: f() missing 1 required positional argument: 'y' 

Was bedeutet es und wie kann ich es beheben?

+0

Does [diese Antwort] (http://stackoverflow.com/a/ 19845135/353839) Hilfe? – bbayles

Antwort

2

Wenn Sie eine mehrdimensionale Funktion mit scipy.optimize.minimize optimieren möchten, müssen Sie es als eine Funktion zum Ausdruck bringen, die ein Array nimmt:

res = minimize(lambda x: f(*x), x0=...)