#!/usr/bin/env python # coding: utf-8 # ## Performance of the optimize function from scipy # # This notebook measures the performance of a simple optimize use case. # In[24]: import numpy as np from scipy.optimize import minimize # In[25]: def rosen(x): """The Rosenbrock function""" return 100.0 * (x[1]-x[0]**2.0)**2.0 + (1-x[0])**2.0 # In[26]: get_ipython().run_cell_magic('timeit', '', 'minimize(rosen, [0.0, 0.0], method="nelder-mead",\n options={\'xtol\': 1e-8, \'disp\': False})\n') # In[27]: import datetime print(datetime.datetime.now()) for i in range(1000): minimize(rosen, [0.0, 0.0], method="nelder-mead", options={'xtol': 1e-8, 'disp': False}) print(datetime.datetime.now()) # ## Let's try numba! # In[28]: from numba import jit # In[29]: @jit def rosen2(x): """The Rosenbrock function""" return 100.0 * (x[1]-x[0]**2.0)**2.0 + (1-x[0])**2.0 # In[30]: get_ipython().run_cell_magic('timeit', '', 'minimize(rosen2, [0.0, 0.0], method="nelder-mead",\n options={\'xtol\': 1e-8, \'disp\': False})\n') # In[31]: ## mmm... it didn't seem to help. # In[32]: import numba as nb # In[33]: nb.__version__ # In[34]: import sys # In[36]: sys.version # In[ ]: