Maximieren Sie eine Funktion mit vielen Parametern (Python)

Lassen Sie mich zunächst sagen, dass mir Erfahrungen mit wissenschaftlicher Mathematik oder Statistik fehlen - dies mag also ein sehr bekanntes Problem sein, aber ich weiß nicht, wo ich anfangen soll.

Ich habe eine Funktionf(x1, x2, ..., xn) wo ich die x's erraten und den höchsten Wert für finden mussf. Die Funktion hat folgende Eigenschaften:

Die Gesamtzahl oder die Parameter liegen normalerweise zwischen 40 und 60, sodass ein Brute-Force-Ansatz nicht möglich ist.

Die möglichen Werte für jedes x liegen zwischen 0,01 und 2,99

Die Funktion ist stetig, dh ein höherer f-Wert bedeutet, dass die Schätzung für die Parameter besser ist und umgekehrt.

Bisher habe ich eine ziemlich einfache Methode in Python implementiert. Zunächst werden alle Parameter auf 1 gesetzt, neue Werte werden zufällig erraten und es wird geprüft, ob das f höher als zuvor ist. Wenn nicht, kehren Sie zu den vorherigen Werten zurück. In einer Schleife mit 10.000 Iterationen scheint dies irgendwie zu funktionieren, aber das Ergebnis ist wahrscheinlich alles andere als perfekt.

Anregungen zur Verbesserung der Suche nach den optimalen Parametern werden gerne entgegengenommen. Wenn ich dieses Problem google, tauchte links MCMC auf, aber das scheint eine sehr fortschrittliche Methode zu sein, und ich würde viel Zeit brauchen, um die Methode überhaupt zu verstehen. Grundlegende Hinweise oder Konzepte würden mir mehr helfen als ausgearbeitete Methoden und Algorithmen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage