Page 164 - 6734
P. 164

стохастичних  методів  оптимізації  з  границями.  Не  використовує
           градієнтні  методи,  але  потребує  більшої  кількості  ітерацій.
           Моделює  такі  процеси  біологічної  еволюції  як  розмноження,
           мутація, рекомбінація і відбір.  Доступні різні  еволюційні стратегії
           (http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.differ
           ential_evolution.html). У прикладі шукається мінімум функції
           в межах [1, 4.5].

           import numpy as np
           from scipy.optimize import differential_evolution
           f=lambda x: x*np.sin(x**2) # функція однієї змінної
           res = differential_evolution(f, bounds=[(1, 4.5)]) #
           знайти мінімум
           print res

           import matplotlib.pyplot as plt
           x=np.linspace(1,5,200)
           plt.plot(x,f(x),'k') # графік
           plt.scatter(res['x'], res['fun'], linewidths=[3,3]) #
           мінімум
           plt.xlabel('x');plt.ylabel('y');plt.grid();plt.show()

                fun: array([-4.15851032])
                jac: array([  4.79616347e-06])
            message: 'Optimization terminated successfully.'
               nfev: 158
                nit: 9
            success: True
                  x: array([ 4.16024526])











                                         163
   159   160   161   162   163   164   165   166   167   168   169