[PYTHON] Optimieren Sie mit Optimierung und nicht mit inverser Konvertierung

Ein Programm wird geschrieben, weil Sie etwas erreichen möchten (oder etwas, das Sie erreichen möchten). Daher ist es wichtig, dass Sie besser verstehen, was Sie erreichen möchten. Unabhängig von Ihrer Entwicklungssprache lohnt es sich zu wissen, was Sie mit einer Vielzahl von Tools erreichen möchten. Kürzlich habe ich die SciPy-Bibliothek von Python verwendet, um Parameter in der Datenanalyse abzugleichen. Optimization (scipy.optimize)

Wenn Sie die Simplex-Methode verwenden, müssen Sie die inverse Konvertierung der Formel nicht finden, und es ist einfach zu handhaben, wenn der numerische Wert einen Fehler enthält. (Um die Auswirkung von Fehlern zu verringern, müssen natürlich mehr experimentelle Daten als unbekannte Freiheitsgrade vorliegen.) Die Ableitung von Hand ist schwierig, um die Formel für die inverse Umwandlung zu erhalten, und abhängig vom Wert des Parameters kann der Nenner nahe bei 0 liegen und die Berechnung ist möglicherweise nicht genau. Selbst wenn die Anzahl der experimentellen Daten größer als das Unbekannte ist, gibt es einen Nachteil, dass nicht alle von ihnen verwendet werden können.

Die Simplex-Methode ist einer der Algorithmen, die Funktionen mit vielen Parametern minimieren. In den alten Tagen [japanische Version von "Numerical Recipes in C"](http://www.amazon.co.jp/%E3%83%8B%E3%83%A5%E3%83%BC% E3% 83% A1% E3% 83% AA% E3% 82% AB% E3% 83% AB% E3% 83% AC% E3% 82% B7% E3% 83% 94% E3% 83% BB% E3% 82% A4% E3% 83% B3% E3% 83% BB% E3% 82% B7% E3% 83% BC-% E6% 97% A5% E6% 9C% AC% E8% AA% 9E% E7% 89 % 88% E2% 80% 95C% E8% A8% 80% E8% AA% 9E% E3% 81% AB% E3% 82% 88% E3% 82% 8B% E6% 95% B0% E5% 80% A4 % E8% A8% 88% E7% AE% 97% E3% 81% AE% E3% 83% AC% E3% 82% B7% E3% 83% 94-William-H-Press / dp / 4874085601) Ich erinnere mich, dass ich den Algorithmus in eine andere Sprache portiert und verwendet habe. Im Fall von MATLAB ist der Algorithmus zur Minimierung der Funktion in Optimization Toolbox angereichert. Als ich MATLAB für geschäftliche Zwecke verwendete, erkannte ich die Bequemlichkeit der numerischen Analyse mit einem Dolmetscher. Jetzt, da die von Spyder dargestellte Python-Umgebung (ein Beispiel für einen Kommentar-Blog) erheblich ist Es macht keinen Sinn, das hochlizenzierte MATLAB schriftlich zu verwenden. Wenn Sie MATLAB mögen, gehen Sie natürlich zu Heimlizenz. Da es billig zu bedienen ist, kann es auch zu Hause verwendet werden. (Im Bereich des modellbasierten Designs ist Simulink in einigen Branchen zum De-facto-Standard geworden, und wir kennen auch die Vorteile, die sich daraus ergeben.)

Wenn Sie den Vorgang mit Python überprüfen, ist es einfach, den Algorithmus zu überprüfen. Python ist einfach zu verwenden und die Grafikbibliothek matplotlib, die MATLAB ähnelt, kann verwendet werden, sodass die Ergebnisse leicht überprüft werden können. Außerdem können Sie in Python, nachdem Sie es ausreichend verwendet haben, schnell schreiben und versuchen, wie das Argument der Funktion lauten soll. Verwenden Sie also, ob es als einzelne Funktion oder als Methode der Klasse implementiert werden soll. Sie können während überprüfen. Wenn Sie es basierend auf dem Ergebnis in C ++ implementieren, ist es viel weniger wahrscheinlich, dass Sie beim Entwerfen in C ++ einen Fehler machen. Ich finde es ziemlich umständlich, eine andere Version der in C ++ geschriebenen Bibliothek auf das in der Entwicklung befindliche Programm zu portieren.   Immerhin macht Python Spaß

Recommended Posts

Optimieren Sie mit Optimierung und nicht mit inverser Konvertierung
[Teil 3] Crawlen mit Python! Es ist eher JSON als CSV! ??
Straßeninstallation durch Optimierung
Einführung in die Optimierung