2017-07-13 5 views
0

Ich würde gerne die scipy.optimize.minimize() Funktion verwenden, aber ich habe ein kleines Problem: in the official documentation wird gesagt, dass die Funktion als Argument eine "objektive Funktion", ohne weitere Genauigkeit.Welches Format sollte der "Spaß" in scipy.optimize.minimize() haben?

Also wollte ich ein paar Dinge wissen: nehmen wir hier an, dass die Funktion, die ich optimieren möchte, f(x_1,y_1,x_2,y_2,...,x_n,y_n) ist, n nicht konstant.

1) Können andere Argumente in die Funktion eingefügt werden? zum Beispiel f(stuff,x1,...)?

2) Da n nicht konstant ist, würde ich lieber eine Liste verwenden (etwa so: f([x_1,y_1,x_2,y_2,...,x_n,y_n]). Wird scipy das verstehen?

Vielen Dank im Voraus für Antworten!

+0

Überprüfen Sie diesen Titel - ich glaube, Sie meinten 'scipy.optimize', nicht' pikant.optimize'. :) – numbermaniac

+0

@numbermaniac in solchen Situationen bearbeiten Sie einfach den Beitrag und es wird in die Review-Warteschlange gehen. –

+0

Sie haben Recht ...: D! –

Antwort

1

Ok, ich habe einige Elemente der Antworten bekommen:

Wie hjpaul sagte ich ein Array verwendet, um mein Problem zu lösen, und es funktioniert! Man sollte beachten, dass wenn man ihm ein n-dimensionales Array gibt, wird die Funktion es automatisch in 1d-Array transformieren (was mich in einem Moment blockiert hat).

Die Syntax sp.optimize.minimize(fun,array,other_args_tuple) ist wahrscheinlich die beste, aber die Verwendung globaler Variable funktioniert auch.

Vielen Dank an alle (und vor allem hpaulj) für Ihre Antworten. Ich habe nicht genau genug die Dokumentation gelesen, die mich lehren wird ^^

Verwandte Themen