SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

SciPy (แƒ’แƒแƒ›แƒแƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก sai pie) แƒแƒ แƒ˜แƒก แƒ›แƒแƒ—แƒ”แƒ›แƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ™แƒ”แƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Numpy Python แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒแƒ–แƒ”. SciPy-แƒ˜แƒ—, แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ Python แƒกแƒ”แƒกแƒ˜แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒกแƒ แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒ”แƒชแƒœแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ แƒ—แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒžแƒ แƒแƒขแƒแƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ, แƒ แƒแƒ’แƒแƒ แƒช MATLAB, IDL, Octave, R-Lab แƒ“แƒ SciLab. แƒ“แƒฆแƒ”แƒก แƒ›แƒ˜แƒœแƒ“แƒ แƒ›แƒแƒ™แƒšแƒ”แƒ“ แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒชแƒœแƒแƒ‘แƒ˜แƒšแƒ˜ แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ scipy.optimize แƒžแƒแƒ™แƒ”แƒขแƒจแƒ˜. แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ— แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— help() แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒœ Shift+Tab-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ“แƒแƒ˜แƒชแƒ•แƒแƒ— แƒ—แƒแƒ•แƒ˜ แƒ“แƒ แƒ›แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“แƒ˜ แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒ’แƒแƒœ, แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒ•แƒ˜แƒ™แƒ˜แƒžแƒ”แƒ“แƒ˜แƒแƒจแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ. แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ”แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ— แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“. แƒ›แƒแƒ—แƒ”แƒ›แƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒกแƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“, แƒ›แƒ˜แƒฐแƒงแƒ”แƒ•แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒแƒ•แƒขแƒแƒ แƒ˜แƒขแƒ”แƒขแƒฃแƒšแƒ˜ แƒžแƒฃแƒ‘แƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ‘แƒแƒšแƒแƒก แƒแƒœ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒแƒงแƒ•แƒแƒ แƒ”แƒš แƒกแƒแƒซแƒ˜แƒ”แƒ‘แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜.

แƒแƒกแƒ” แƒ แƒแƒ›, scipy.optimize แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒ“แƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒแƒก:

  1. แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก (แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜) แƒกแƒ™แƒแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒ“แƒ แƒฃแƒžแƒ˜แƒ แƒแƒ‘แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (Nelder-Mead simplex, BFGS, Newton conjugate gradients, แƒ™แƒแƒ‘แƒ˜แƒšแƒ ะธ SLSQP)
  2. แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“: แƒ‘แƒแƒกแƒ˜แƒœแƒฐแƒแƒžแƒ˜แƒœแƒ’แƒ˜, diff_evolution)
  3. แƒœแƒแƒ แƒฉแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ MNC (แƒฃแƒ›แƒชแƒ˜แƒ แƒ”แƒกแƒ˜_แƒ™แƒ•แƒแƒ“แƒ แƒแƒขแƒ”แƒ‘แƒ˜) แƒ“แƒ แƒ›แƒ แƒฃแƒ“แƒ˜แƒก แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒ˜แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ แƒแƒฌแƒ แƒคแƒ˜แƒ•แƒ˜ แƒฃแƒ›แƒชแƒ˜แƒ แƒ”แƒกแƒ˜ แƒ™แƒ•แƒแƒ“แƒ แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (curve_fit)
  4. แƒ”แƒ แƒ—แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒกแƒ™แƒแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ (minim_scalar) แƒ“แƒ แƒคแƒ”แƒกแƒ•แƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ (root_scalar)
  5. แƒ’แƒแƒœแƒขแƒแƒšแƒ”แƒ‘แƒแƒ—แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ’แƒแƒœแƒ–แƒแƒ›แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒแƒœแƒ˜ แƒแƒ›แƒแƒ›แƒฎแƒกแƒœแƒ”แƒšแƒ”แƒ‘แƒ˜ (แƒคแƒ”แƒกแƒ•แƒ˜) แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (แƒฐแƒ˜แƒ‘แƒ แƒ˜แƒ“แƒฃแƒšแƒ˜ แƒžแƒแƒฃแƒ”แƒšแƒ˜, แƒšแƒ”แƒ•แƒ”แƒœแƒ‘แƒ”แƒ แƒ’-แƒ›แƒแƒ แƒ™แƒ•แƒแƒ แƒขแƒ˜ แƒแƒœ แƒคแƒแƒ แƒ—แƒแƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒแƒœแƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒœแƒ˜แƒฃแƒขแƒแƒœ-แƒ™แƒ แƒ˜แƒšแƒแƒ•แƒ˜).

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒžแƒฃแƒœแƒฅแƒขแƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒกแƒ˜แƒ˜แƒ“แƒแƒœ.

แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒกแƒ™แƒแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒฃแƒžแƒ˜แƒ แƒแƒ‘แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ scipy.optimize แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒ“แƒแƒœ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ–แƒแƒ’แƒแƒ“ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒกแƒ™แƒแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒ“แƒ แƒฃแƒžแƒ˜แƒ แƒแƒ‘แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“. แƒ˜แƒ›แƒ˜แƒก แƒ“แƒ”แƒ›แƒแƒœแƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ“แƒแƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก แƒ•แƒแƒฎแƒ“แƒ”แƒœแƒ— แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ’แƒ–แƒ˜แƒ—.

แƒแƒ› แƒ›แƒ˜แƒ–แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ N แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒ แƒแƒ–แƒ”แƒœแƒ‘แƒ แƒแƒ™แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒฅแƒ•แƒก แƒคแƒแƒ แƒ›แƒ:

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› Rosenbrock แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ Jacobi แƒ“แƒ Hessian แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ”แƒ‘แƒ˜ (แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ“แƒ แƒ›แƒ”แƒแƒ แƒ” แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“) แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒฃแƒšแƒ˜แƒ scipy.optimize แƒžแƒแƒ™แƒ”แƒขแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ—แƒ•แƒ˜แƒ—แƒแƒœ แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒ— แƒ›แƒแƒก.

import numpy as np

def rosen(x):
    """The Rosenbrock function"""
    return np.sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0, axis=0)

แƒกแƒ˜แƒชแƒฎแƒแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒฎแƒแƒขแƒแƒ— 3D-แƒจแƒ˜ แƒแƒ แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒ แƒแƒ–แƒ”แƒœแƒ‘แƒ แƒแƒ™แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜.

แƒœแƒแƒฎแƒแƒขแƒ˜แƒก แƒ™แƒแƒ“แƒ˜

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter

# ะะฐัั‚ั€ะฐะธะฒะฐะตะผ 3D ะณั€ะฐั„ะธะบ
fig = plt.figure(figsize=[15, 10])
ax = fig.gca(projection='3d')

# ะ—ะฐะดะฐะตะผ ัƒะณะพะป ะพะฑะทะพั€ะฐ
ax.view_init(45, 30)

# ะกะพะทะดะฐะตะผ ะดะฐะฝะฝั‹ะต ะดะปั ะณั€ะฐั„ะธะบะฐ
X = np.arange(-2, 2, 0.1)
Y = np.arange(-1, 3, 0.1)
X, Y = np.meshgrid(X, Y)
Z = rosen(np.array([X,Y]))

# ะ ะธััƒะตะผ ะฟะพะฒะตั€ั…ะฝะพัั‚ัŒ
surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm)
plt.show()

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ˜แƒชแƒแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒแƒ แƒ˜แƒก 0 at SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— Rosenbrock แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ scipy.optimize แƒžแƒ แƒแƒชแƒ”แƒ“แƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

Nelder-Mead simplex แƒ›แƒ”แƒ—แƒแƒ“แƒ˜

0-แƒ’แƒแƒœแƒ–แƒแƒ›แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒแƒœ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜ แƒ˜แƒงแƒแƒก แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜ x5. แƒ•แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ แƒแƒ–แƒ”แƒœแƒ‘แƒ แƒแƒ™แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒกแƒ—แƒแƒœ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒฎแƒšแƒแƒก แƒ›แƒงแƒแƒคแƒ˜ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— Nelder-Mead simplex (แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ):

from scipy.optimize import minimize
x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])
res = minimize(rosen, x0, method='nelder-mead',
    options={'xtol': 1e-8, 'disp': True})
print(res.x)

Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 339
         Function evaluations: 571
[1. 1. 1. 1. 1.]

แƒกแƒ˜แƒ›แƒžแƒšแƒ”แƒฅแƒกแƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒแƒ แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ’แƒ–แƒ แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒฃแƒšแƒ˜ แƒ“แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ’แƒšแƒฃแƒ•แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒšแƒแƒ“. แƒ˜แƒก แƒแƒ  แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒแƒก, แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ. Nelder-Mead แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ™แƒแƒ แƒ’แƒ˜ แƒแƒ แƒฉแƒ”แƒ•แƒแƒœแƒ˜แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ—แƒฃแƒ›แƒชแƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒแƒ  แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒฃแƒ  แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ”แƒ‘แƒก, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ”แƒขแƒ˜ แƒ“แƒ แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ›แƒ˜แƒก แƒžแƒแƒ•แƒœแƒแƒก.

แƒžแƒแƒฃแƒ”แƒšแƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜

แƒแƒ แƒ˜แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒ—แƒ•แƒšแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒžแƒแƒฃแƒ”แƒšแƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜. แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ = 'powell' แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜.

x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])
res = minimize(rosen, x0, method='powell',
    options={'xtol': 1e-8, 'disp': True})
print(res.x)

Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 19
         Function evaluations: 1622
[1. 1. 1. 1. 1.]

แƒ‘แƒ แƒแƒ˜แƒ“แƒ”แƒœ-แƒคแƒšแƒ”แƒขแƒฉแƒ”แƒ -แƒ’แƒแƒšแƒ“แƒคแƒแƒ แƒ‘-แƒจแƒแƒœแƒแƒก (BFGS) แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ—แƒแƒœ แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ™แƒแƒœแƒ•แƒ”แƒ แƒ’แƒ”แƒœแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“ แƒžแƒ แƒแƒชแƒ”แƒ“แƒฃแƒ แƒ BFGS แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒฃแƒ แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒก. แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒก แƒ แƒแƒ’แƒแƒ แƒช แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒแƒœ แƒ’แƒแƒ›แƒแƒ˜แƒ—แƒ•แƒแƒšแƒแƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ แƒ˜แƒ’แƒ˜แƒก แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, BFGS แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒœแƒแƒ™แƒšแƒ”แƒ‘ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒแƒก, แƒ•แƒ˜แƒ“แƒ แƒ” simplex แƒ›แƒ”แƒ—แƒแƒ“แƒ˜.

แƒ›แƒแƒ“แƒ˜แƒ— แƒ•แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ แƒแƒ–แƒ”แƒœแƒ‘แƒ แƒแƒ™แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒœแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒคแƒแƒ แƒ›แƒ˜แƒ—:

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒ”แƒก แƒ’แƒแƒ›แƒแƒ—แƒฅแƒ›แƒ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ’แƒแƒ แƒ“แƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜แƒกแƒ แƒ“แƒ แƒฃแƒ™แƒแƒœแƒแƒกแƒ™แƒœแƒ”แƒšแƒ˜แƒกแƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒ แƒ แƒแƒ’แƒแƒ แƒช:

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒ—แƒ•แƒšแƒ˜แƒก แƒแƒ› แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒก:

def rosen_der (x):
    xm = x [1: -1]
    xm_m1 = x [: - 2]
    xm_p1 = x [2:]
    der = np.zeros_like (x)
    der [1: -1] = 200 * (xm-xm_m1 ** 2) - 400 * (xm_p1 - xm ** 2) * xm - 2 * (1-xm)
    der [0] = -400 * x [0] * (x [1] -x [0] ** 2) - 2 * (1-x [0])
    der [-1] = 200 * (x [-1] -x [-2] ** 2)
    return der

แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก jac แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒ“, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒฅแƒ•แƒ”แƒ›แƒแƒ—.

res = minimize(rosen, x0, method='BFGS', jac=rosen_der, options={'disp': True})
print(res.x)

Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 25
         Function evaluations: 30
         Gradient evaluations: 30
[1.00000004 1.0000001  1.00000021 1.00000044 1.00000092]

แƒ™แƒแƒœแƒ˜แƒฃแƒ’แƒแƒขแƒฃแƒ แƒ˜ แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ (แƒœแƒ˜แƒฃแƒขแƒแƒœแƒ˜)

แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ แƒœแƒ˜แƒฃแƒขแƒแƒœแƒ˜แƒก แƒ™แƒแƒœแƒ˜แƒฃแƒ’แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒก แƒœแƒ˜แƒฃแƒขแƒแƒœแƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜.
แƒœแƒ˜แƒฃแƒขแƒแƒœแƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ”แƒ›แƒงแƒแƒ แƒ”แƒ‘แƒ แƒšแƒแƒ™แƒแƒšแƒฃแƒ  แƒแƒ แƒ”แƒจแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒแƒฎแƒšแƒแƒ”แƒ‘แƒแƒก แƒ›แƒ”แƒแƒ แƒ” แƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒฌแƒ”แƒ•แƒ แƒ˜แƒ—:

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒกแƒแƒ“แƒแƒช SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒแƒ แƒ˜แƒก แƒ›แƒ”แƒแƒ แƒ” แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ (Hessian matrix, Hessian).
แƒ—แƒฃ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒ˜ แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒฃแƒšแƒ˜แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ›แƒ˜แƒก แƒžแƒแƒ•แƒœแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ™แƒ•แƒแƒ“แƒ แƒแƒขแƒฃแƒšแƒ˜ แƒคแƒแƒ แƒ›แƒ˜แƒก แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒœแƒฃแƒšแƒ—แƒแƒœ แƒ’แƒแƒ—แƒแƒœแƒแƒ‘แƒ แƒ”แƒ‘แƒ˜แƒ—. แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒฎแƒแƒขแƒฃแƒšแƒ”แƒ‘แƒ:

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒ˜แƒœแƒ•แƒ”แƒ แƒกแƒ˜แƒฃแƒšแƒ˜ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒ—แƒ•แƒšแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒ˜แƒฃแƒ’แƒแƒขแƒฃแƒ แƒ˜ แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒ—. แƒ แƒแƒ–แƒ”แƒœแƒ‘แƒ แƒแƒ™แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒšแƒแƒ“ แƒแƒ› แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒฅแƒ•แƒ”แƒ›แƒแƒ—. Newton-CG แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒ—แƒ•แƒšแƒ˜แƒก แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒก.
แƒ แƒแƒ–แƒ”แƒœแƒ‘แƒ แƒแƒ™แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒ˜ แƒแƒœแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒคแƒแƒ แƒ›แƒ˜แƒ— แƒฃแƒ“แƒ แƒ˜แƒก:

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒกแƒแƒ“แƒแƒช SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ ะธ SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ— แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ.

แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ˜แƒก แƒ“แƒแƒ แƒฉแƒ”แƒœแƒ˜แƒšแƒ˜ แƒแƒ แƒแƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒฃแƒ“แƒ แƒ˜แƒก:

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฎแƒฃแƒ—แƒ’แƒแƒœแƒ–แƒแƒ›แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒแƒœ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜ N = 5, แƒฐแƒ”แƒกแƒ˜แƒแƒœ แƒ›แƒแƒขแƒ แƒ˜แƒชแƒแƒก แƒ แƒแƒ–แƒ”แƒœแƒ‘แƒ แƒแƒ™แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒฅแƒ•แƒก แƒ–แƒแƒšแƒ˜แƒก แƒคแƒแƒ แƒ›แƒ:

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒ—แƒ•แƒšแƒ˜แƒก แƒแƒ› แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒก แƒ™แƒแƒ“แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ แƒ แƒแƒ–แƒ”แƒœแƒ‘แƒ แƒแƒ™แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ™แƒแƒœแƒ˜แƒฃแƒ’แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒ˜แƒก (แƒœแƒ˜แƒฃแƒขแƒแƒœแƒ˜) แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—:

def rosen_hess(x):
    x = np.asarray(x)
    H = np.diag(-400*x[:-1],1) - np.diag(400*x[:-1],-1)
    diagonal = np.zeros_like(x)
    diagonal[0] = 1200*x[0]**2-400*x[1]+2
    diagonal[-1] = 200
    diagonal[1:-1] = 202 + 1200*x[1:-1]**2 - 400*x[2:]
    H = H + np.diag(diagonal)
    return H

res = minimize(rosen, x0, method='Newton-CG', 
               jac=rosen_der, hess=rosen_hess,
               options={'xtol': 1e-8, 'disp': True})
print(res.x)

Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 24
         Function evaluations: 33
         Gradient evaluations: 56
         Hessian evaluations: 24
[1.         1.         1.         0.99999999 0.99999999]

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒ˜แƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ˜แƒ— แƒ“แƒ แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ—

แƒ แƒ”แƒแƒšแƒฃแƒ  แƒกแƒแƒ›แƒงแƒแƒ แƒแƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒจแƒ˜, แƒ›แƒ—แƒ”แƒšแƒ˜ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒฃแƒ แƒ˜ แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒแƒกแƒ แƒ“แƒ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒแƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ“แƒ แƒ แƒ“แƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜. แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ—แƒแƒ•แƒแƒ“ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒฃแƒ แƒ˜ แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ˜แƒก แƒ“แƒแƒ–แƒฃแƒกแƒขแƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒ“แƒฃแƒ แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒขแƒแƒšแƒ˜แƒ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒ˜แƒก แƒœแƒแƒ›แƒ แƒแƒ•แƒšแƒก แƒกแƒฎแƒ•แƒ แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ  แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ—แƒแƒœ. แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒ—แƒ˜ แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—, แƒ’แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜แƒ แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒ˜แƒก แƒœแƒแƒ›แƒ แƒแƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒก แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ—.

แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒฐแƒ”แƒกแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒแƒ“ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ•แƒ”แƒฅแƒขแƒแƒ แƒก, แƒฎแƒแƒšแƒ แƒ›แƒ”แƒแƒ แƒ” แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒแƒ“ แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ  แƒ•แƒ”แƒฅแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“). แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ แƒแƒ–แƒ”แƒœแƒ‘แƒ แƒแƒ™แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒ˜แƒก แƒœแƒแƒ›แƒ แƒแƒ•แƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ— แƒแƒ  แƒแƒ แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ แƒ—แƒฃแƒšแƒ˜. แƒ—แƒฃ p แƒแƒ แƒ˜แƒก แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜ SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒแƒฅแƒ•แƒก แƒคแƒแƒ แƒ›แƒ:

SciPy, แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒ—แƒ•แƒšแƒ˜แƒก แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒฃแƒ แƒ˜ แƒ“แƒ แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒก แƒœแƒแƒ›แƒ แƒแƒ•แƒšแƒก, แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒ›แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒฐแƒ”แƒกแƒžแƒ˜แƒก แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก:

def rosen_hess_p(x, p):
    x = np.asarray(x)
    Hp = np.zeros_like(x)
    Hp[0] = (1200*x[0]**2 - 400*x[1] + 2)*p[0] - 400*x[0]*p[1]
    Hp[1:-1] = -400*x[:-2]*p[:-2]+(202+1200*x[1:-1]**2-400*x[2:])*p[1:-1] 
    -400*x[1:-1]*p[2:]
    Hp[-1] = -400*x[-2]*p[-2] + 200*p[-1]
    return Hp

res = minimize(rosen, x0, method='Newton-CG',
               jac=rosen_der, hessp=rosen_hess_p,
               options={'xtol': 1e-8, 'disp': True})

Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 24
         Function evaluations: 33
         Gradient evaluations: 56
         Hessian evaluations: 66

แƒ™แƒแƒœแƒ˜แƒฃแƒ’แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒœแƒ“แƒแƒ‘แƒ˜แƒก แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒ˜แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ (แƒœแƒ˜แƒฃแƒขแƒแƒœแƒ˜)

แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒฃแƒ แƒ˜ แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ˜แƒก แƒชแƒฃแƒ“แƒ˜ แƒ™แƒแƒœแƒ“แƒ˜แƒชแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒซแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒแƒก แƒœแƒ˜แƒฃแƒขแƒแƒœแƒ˜แƒก แƒ™แƒแƒœแƒ˜แƒฃแƒ’แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ แƒแƒ แƒแƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜. แƒแƒกแƒ”แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒจแƒ˜ แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ แƒ”แƒœแƒ˜แƒญแƒ”แƒ‘แƒ แƒœแƒ“แƒแƒ‘แƒ˜แƒก แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ (แƒœแƒ“แƒแƒ‘แƒ-แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒ˜) แƒ™แƒแƒœแƒ˜แƒฃแƒ’แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒœแƒ˜แƒฃแƒขแƒแƒœแƒ˜แƒก แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒฃแƒ แƒ˜ แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ˜แƒ—:

res = minimize(rosen, x0, method='trust-ncg',
               jac=rosen_der, hess=rosen_hess,
               options={'gtol': 1e-8, 'disp': True})
print(res.x)

Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 20
         Function evaluations: 21
         Gradient evaluations: 20
         Hessian evaluations: 19
[1. 1. 1. 1. 1.]

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒ˜แƒก แƒœแƒแƒ›แƒ แƒแƒ•แƒšแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒ— แƒ“แƒ แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ—:

res = minimize(rosen, x0, method='trust-ncg', 
                jac=rosen_der, hessp=rosen_hess_p, 
                options={'gtol': 1e-8, 'disp': True})
print(res.x)

Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 20
         Function evaluations: 21
         Gradient evaluations: 20
         Hessian evaluations: 0
[1. 1. 1. 1. 1.]

แƒ™แƒ แƒ˜แƒšแƒแƒ•แƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜

แƒœแƒ“แƒแƒ‘แƒ-ncg แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒแƒ“, แƒ™แƒ แƒ˜แƒšแƒแƒ•แƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜ แƒคแƒแƒ แƒ—แƒแƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒแƒœแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒขแƒ แƒ˜แƒชแƒฃแƒš-แƒ•แƒ”แƒฅแƒขแƒแƒ แƒฃแƒš แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ”แƒ‘แƒก. แƒ›แƒแƒ—แƒ˜ แƒแƒ แƒกแƒ˜ แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ แƒœแƒ“แƒแƒ‘แƒ˜แƒก แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ›แƒแƒ˜แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ™แƒ•แƒ”แƒชแƒ˜แƒšแƒ˜ แƒ™แƒ แƒ˜แƒšแƒแƒ•แƒ˜แƒก แƒฅแƒ•แƒ”แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒ—. แƒ’แƒแƒฃแƒ แƒ™แƒ•แƒ”แƒ•แƒ”แƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ”แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒแƒ แƒแƒฌแƒ แƒคแƒ˜แƒ•แƒ˜ แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก แƒฅแƒ•แƒ”แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ–แƒ” แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ-แƒ•แƒ”แƒฅแƒขแƒแƒ แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒชแƒ˜แƒ แƒ” แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒกแƒแƒœแƒ“แƒ-ncg แƒ›แƒ”แƒ—แƒแƒ“แƒ—แƒแƒœ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ—. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ™แƒ•แƒแƒ“แƒ แƒแƒขแƒฃแƒšแƒ˜ แƒฅแƒ•แƒ”แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ แƒฃแƒคแƒ แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒแƒ แƒ˜แƒก แƒœแƒแƒžแƒแƒ•แƒœแƒ˜, แƒ•แƒ˜แƒ“แƒ แƒ” trust-ncg แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.
แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒฃแƒ แƒ˜ แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ˜แƒ—:

res = minimize(rosen, x0, method='trust-krylov',
               jac=rosen_der, hess=rosen_hess,
               options={'gtol': 1e-8, 'disp': True})

Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 19
         Function evaluations: 20
         Gradient evaluations: 20
         Hessian evaluations: 18

print(res.x)

    [1. 1. 1. 1. 1.]

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒ˜แƒก แƒœแƒแƒ›แƒ แƒแƒ•แƒšแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒ— แƒ“แƒ แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ—:

res = minimize(rosen, x0, method='trust-krylov',
               jac=rosen_der, hessp=rosen_hess_p,
               options={'gtol': 1e-8, 'disp': True})

Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 19
         Function evaluations: 20
         Gradient evaluations: 20
         Hessian evaluations: 0

print(res.x)

    [1. 1. 1. 1. 1.]

แƒœแƒ“แƒแƒ‘แƒ˜แƒก แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒจแƒ˜ แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒ แƒแƒ›แƒแƒฎแƒกแƒœแƒ˜แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜

แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ (Newton-CG, trust-ncg แƒ“แƒ trust-krylov) แƒ™แƒแƒ แƒ’แƒแƒ“ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜ แƒคแƒแƒ แƒ—แƒแƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒแƒœแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“ (แƒแƒ—แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒชแƒ•แƒšแƒแƒ“แƒ˜). แƒ”แƒก แƒ’แƒแƒ›แƒแƒฌแƒ•แƒ”แƒฃแƒšแƒ˜แƒ แƒ˜แƒ›แƒ˜แƒ—, แƒ แƒแƒ› แƒคแƒฃแƒซแƒ”แƒ›แƒ“แƒ”แƒ‘แƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒ˜แƒฃแƒ’แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ แƒแƒ“แƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ แƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒแƒ‘แƒก แƒ˜แƒœแƒ•แƒ”แƒ แƒกแƒ˜แƒฃแƒšแƒ˜ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒฃแƒ แƒ˜ แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ˜แƒก แƒ›แƒ˜แƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒก. แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒœแƒแƒžแƒแƒ•แƒœแƒ˜แƒ แƒ’แƒแƒœแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒ˜แƒก แƒแƒจแƒ™แƒแƒ แƒ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒฃแƒ แƒ˜ แƒ“แƒ แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒก แƒœแƒแƒ›แƒ แƒแƒ•แƒšแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ, แƒ”แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ™แƒแƒ แƒ’แƒ˜แƒ แƒ˜แƒจแƒ•แƒ˜แƒแƒ— (แƒ–แƒแƒšแƒ˜แƒก แƒ“แƒ˜แƒแƒ’แƒแƒœแƒแƒšแƒฃแƒ แƒ˜) แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ”แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ‘แƒแƒš แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒก แƒ“แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœ แƒ“แƒ แƒแƒก แƒ“แƒแƒ–แƒแƒ’แƒแƒ•แƒก.

แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒ–แƒแƒ›แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒคแƒแƒฅแƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒฃแƒšแƒ˜. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒšแƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒœแƒ“แƒแƒ‘แƒ˜แƒก แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒ˜แƒก แƒฅแƒ•แƒ”แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ’แƒแƒ“แƒแƒญแƒ แƒ˜แƒ—. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒ แƒแƒฌแƒ แƒคแƒ˜แƒ•แƒ˜ แƒ’แƒแƒœแƒขแƒแƒšแƒ”แƒ‘แƒ แƒฌแƒงแƒ“แƒ”แƒ‘แƒ แƒ˜แƒขแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒแƒ“ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒ“แƒ แƒแƒขแƒฃแƒšแƒ˜ แƒฅแƒ•แƒ”แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒกแƒ”แƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒฃแƒ แƒ˜ แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ˜แƒก 3 แƒแƒœ 4 แƒฅแƒแƒšแƒ”แƒกแƒ™แƒ˜แƒก แƒ“แƒแƒจแƒšแƒแƒก. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ’แƒแƒ“แƒแƒ˜แƒงแƒ แƒ”แƒ‘แƒ แƒœแƒแƒ™แƒšแƒ”แƒ‘ แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ”แƒ‘แƒจแƒ˜ แƒ“แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒœแƒแƒ™แƒšแƒ”แƒ‘ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒฃแƒ แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ”แƒ‘แƒก, แƒ•แƒ˜แƒ“แƒ แƒ” แƒกแƒฎแƒ•แƒ แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ˜แƒšแƒ˜ แƒœแƒ“แƒแƒ‘แƒ˜แƒก แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜. แƒ”แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ แƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒแƒ‘แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒ แƒฃแƒšแƒ˜ แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒฃแƒ แƒ˜ แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒก แƒ“แƒ แƒแƒ  แƒฃแƒญแƒ”แƒ แƒก แƒ›แƒฎแƒแƒ แƒก แƒฐแƒ”แƒกแƒ˜แƒแƒœแƒ˜แƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ“แƒ แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒฃแƒœแƒแƒ แƒก.

แƒ แƒแƒ–แƒ”แƒœแƒ‘แƒ แƒแƒ™แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜:

res = minimize(rosen, x0, method='trust-exact',
               jac=rosen_der, hess=rosen_hess,
               options={'gtol': 1e-8, 'disp': True})
res.x

Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 13
         Function evaluations: 14
         Gradient evaluations: 13
         Hessian evaluations: 14

array([1., 1., 1., 1., 1.])

แƒฉแƒ•แƒ”แƒœ แƒแƒšแƒ‘แƒแƒ— แƒ˜แƒฅ แƒ’แƒแƒ•แƒฉแƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ—. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒจแƒ”แƒ•แƒ”แƒชแƒ“แƒ”แƒ‘แƒ˜ แƒ’แƒ˜แƒ—แƒฎแƒ แƒแƒ— แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒแƒจแƒ˜, แƒ”แƒ แƒ—แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒ˜แƒ–แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒœแƒขแƒแƒšแƒ”แƒ‘แƒแƒ—แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒคแƒ”แƒกแƒ•แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ•แƒœแƒ scipy.optimize-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒžแƒแƒ™แƒ”แƒขแƒ˜.

แƒฌแƒงแƒแƒ แƒ: https://docs.scipy.org/doc/scipy/reference/

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ