[PYTHON] Optimiser avec l'optimisation plutôt que la conversion inverse

Un programme est écrit parce qu'il y a quelque chose que vous voulez réaliser (ou quelque chose que vous êtes invité à réaliser). Par conséquent, il est important d'améliorer votre compréhension de ce que vous voulez réaliser. Quel que soit votre langage de développement, sachez que vous disposez de nombreux outils pour ce que vous souhaitez réaliser. Récemment, j'ai utilisé la bibliothèque SciPy de Python pour faire correspondre les paramètres de l'analyse des données. Optimization (scipy.optimize)

Si vous utilisez la méthode simplex, vous n'avez pas besoin de trouver la conversion inverse de la formule, et elle est facile à gérer lorsque la valeur numérique contient une erreur. (Bien sûr, pour réduire l'effet d'erreur, il est nécessaire d'avoir plus de données expérimentales que de degrés de liberté inconnus.) La dérivation manuelle est gênante pour obtenir la formule de conversion inverse, et selon la valeur du paramètre, le dénominateur peut être proche de 0 et le calcul peut ne pas être précis. Même si le nombre de données expérimentales est plus grand que l'inconnu, il y a un inconvénient que toutes ne peuvent pas être utilisées.

La méthode Simplex est l'un des algorithmes qui minimise les fonctions avec de nombreux paramètres. Autrefois, [version japonaise de "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) Je me souviens d'avoir porté l'algorithme dans une autre langue et de l'utiliser. Dans le cas de MATLAB, l'algorithme de minimisation de la fonction est enrichi dans Optimization Toolbox. Lorsque j'ai utilisé MATLAB pour les affaires, j'ai réalisé la commodité de l'analyse numérique avec un interprète. Maintenant que l'environnement Python représenté par (Spyder (un exemple de blog de commentaires) est substantiel Il ne sert à rien d'écrire en utilisant MATLAB hautement sous licence. Bien sûr, si vous aimez MATLAB, allez sur licence personnelle). Comme il est peu coûteux à utiliser, il est également possible de l'utiliser à la maison. (Dans le domaine de la conception basée sur des modèles, Simulink est devenu la norme de facto dans certaines industries, et nous connaissons également les avantages qu'il apporte.)

Si vous vérifiez l'opération à l'aide de Python, il est facile de vérifier l'algorithme. Python est facile à utiliser, et la bibliothèque de graphes matplotlib, qui est similaire à MATLAB, peut être utilisée, il est donc facile de vérifier les résultats. En plus de cela, en Python, vous pouvez rapidement écrire et essayer ce que devrait être l'argument de la fonction après l'avoir suffisamment utilisée, alors indiquez si elle doit être implémentée en tant que fonction unique ou en tant que méthode de la classe. Vous pouvez vérifier pendant. Si vous l'implémentez en C ++ en fonction du résultat, vous serez beaucoup moins susceptible de faire une erreur lors de la conception en C ++. Je trouve plutôt gênant de porter une autre version de la bibliothèque écrite en C ++ vers le programme en cours de développement.   Après tout, Python est amusant

Recommended Posts

Optimiser avec l'optimisation plutôt que la conversion inverse
[Part.3] Exploration avec Python! C'est JSON plutôt que CSV! ??
Aménagement routier par optimisation
Introduction à l'optimisation