{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import scipy as scipy\n",
    "from scipy.interpolate import interp1d\n",
    "from scipy import misc\n",
    "from scipy import optimize"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. Optimization: One dimensional root finding\n",
    "\n",
    "Reference: http://people.duke.edu/~ccc14/sta-663-2016/11_OptimizationOneDimension.html"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1 Bisection method\n",
    "\n",
    "Derived from the intermediate value theorem: \n",
    "- If f(a) and f(b) have different signs and f is continous, then f must have a zero between a and b. \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.1.1 Python example: bisection method"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.1.1.1 Bisection method: scipy.optimize.bisect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-1.0000000000006821,\n",
       "       converged: True\n",
       "            flag: 'converged'\n",
       "  function_calls: 43\n",
       "      iterations: 41\n",
       "            root: -1.0000000000006821)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f = lambda x: x**3 + 4*x**2 -3 #Non-linear function\n",
    "x = np.linspace(-3.1, 0, 100) # X input for function\n",
    "#Bisection method\n",
    "optimize.bisect(f, -3, -.5, full_output=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.1.1.2 Bisection method: user defined"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "One root of the input function: 1.5234375\n"
     ]
    }
   ],
   "source": [
    "f = lambda x: x**3 -x -2 #Non-linear function\n",
    "def bisect_user(f, pt1, pt2, tolerance=.01, iterations=10):\n",
    "    '''\n",
    "    Params\n",
    "    ---------\n",
    "    f: function\n",
    "    pt1, pt2: bisection points\n",
    "    iterations: number of iterations to implement\n",
    "    \n",
    "    Returns\n",
    "    ---------\n",
    "    c: Polynomial root\n",
    "    '''\n",
    "    #Conditions: a<b:\n",
    "    fpt1 = f(pt1)\n",
    "    fpt2 = f(pt2)\n",
    "    assert ( fpt1 < 0) & (fpt2  > 0) or ( fpt1 > 0) & (fpt2 < 0) \n",
    "    #Algo\n",
    "    a = pt1\n",
    "    b = pt2\n",
    "    for n in range(1, iterations+1):\n",
    "        c = (a+b)/2\n",
    "        f_c = f(c)\n",
    "        if tolerance > abs(f_c):\n",
    "            return c\n",
    "        if (f_c > 0) & (f(a)>0) or (f_c < 0) & (f(a) < 0): \n",
    "            a = c\n",
    "        else:\n",
    "            b = c\n",
    "            \n",
    "root = bisect_user(f, 1, 2, tolerance=.02, iterations=10)\n",
    "print('One root of the input function: {}'.format(root))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.1.1.3 Analytical solution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1.52137970680457]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import symbols, N, real_roots\n",
    "\n",
    "x = symbols('x', real=True)\n",
    "sol = real_roots(x**3 -x -2)\n",
    "list(map(N, sol))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.1.2 Graph bisection method"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "f = lambda x: x**3 + 4*x**2 -3\n",
    "x = np.linspace(-3.1, 0, 100)\n",
    "plt.plot(x, f(x))\n",
    "\n",
    "a,b =  [-3.0, -0.5]\n",
    "c = 0.5*(a+b)\n",
    "\n",
    "plt.text(a,-1,\"a\")\n",
    "plt.text(b,-1,\"b\")\n",
    "plt.text(c,-1,\"c\")\n",
    "\n",
    "plt.scatter([a,b,c], [f(a), f(b),f(c)], s=50, facecolors='green')\n",
    "plt.scatter([a,b,c], [0,0,0], s=50, c='red')\n",
    "\n",
    "xaxis = plt.axhline(0);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.2 Secant method\n",
    "\n",
    "- Similar to bisection method this also begins with two initial points\n",
    "    - But unlike bisection the function values do not have to be opposite of signs. \n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.2.1 Python example: Secant method"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.2.1.1 Bisection method: scipy.optimize.bisect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "      converged: True\n",
       "           flag: 'converged'\n",
       " function_calls: 10\n",
       "     iterations: 9\n",
       "           root: -2.258258883402609"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f = lambda x: (x**3-2*x+7)/(x**4+2)#Non-linear function\n",
    "x = np.arange(-3,5, 0.1) # X input for function\n",
    "#Secant method\n",
    "optimize.root_scalar(f, x0=-1.2,x1=-.5, method='secant')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.2.1.1 Bisection method: user defined"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-2.2559321208994207"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def secant_method(f, x0, x1, iterations):\n",
    "    for i in range(iterations):\n",
    "        x2 = x1 - f(x1) * (x1 - x0) / float(f(x1) - f(x0))\n",
    "        x0, x1 = x1, x2\n",
    "    return x2\n",
    "\n",
    "\n",
    "root = secant_method(f, -1.2, -.5, 5)\n",
    "root"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.3 Newton-Rhapson\n",
    "- Converges quadratically\n",
    "- If the quadratic approximation is reasonably good, Newton_rhapson should converge to the local maximum more quickly than the steepest-ascent.\n",
    "\n",
    "\n",
    "$$\\theta_n = \\theta_{n-1} - \\frac{g(\\theta_{n-1})}{g'(\\theta_{n-1})}$$\n",
    "\n",
    "- Basins of attraction and horizontal asymptotes can prevent convergence"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def newtonrhap(f, x, tolerance=0.001):\n",
    "    while True:\n",
    "        #Newton-rap algo\n",
    "        x1 = x - f(x) / misc.derivative(f, x) \n",
    "        #Check to see if we improved estimate of root\n",
    "        t = abs(x1 - x)\n",
    "        if t < tolerance:\n",
    "            break\n",
    "        x = x1\n",
    "    return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Initial guess: -1.5\n",
      "x0:  -2.25704\n",
      "f(x0) =  0.00058\n"
     ]
    }
   ],
   "source": [
    "f = lambda x: (x**3-2*x+7)/(x**4+2)\n",
    "x = -1.5\n",
    "x0 = newtonrhap(f, x)\n",
    "\n",
    "print('Initial guess:', x)\n",
    "print('x0: ', round(x0,5))\n",
    "print(\"f(x0) = \", round(f(x0),5))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.4 Brent's method\n",
    "\n",
    "- Combination of bisection, secant and inverse quadratic interpolation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-7.864845203343107e-19"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f = lambda x: (x - 2) * x * (x + 2)**2\n",
    "scipy.optimize.brentq(f,-1,.5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2. Optimization: Multi-dimensional\n",
    "- Reference http://people.duke.edu/~ccc14/sta-663-2016/12_MultivariateOptimizationAlgorithms.html\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.1 Basics\n",
    "### 2.1.1 Gradient and Hessian\n",
    "\n",
    "The first derivative of a matrix is an n×1 vector called the gradient \n",
    "\n",
    "$$\\begin{split}\\nabla f(x) = \\left(\\begin{matrix}\\frac{\\partial f}{\\partial x_1}\\\\ \\vdots \\\\\\frac{\\partial f}{\\partial x_n}\\end{matrix}\\right)\\end{split}$$ \n",
    "\n",
    "The second derivative is an n×n matrix called the Hessian \n",
    "\n",
    "$$\n",
    "H=\\begin{bmatrix}\n",
    "  \\dfrac{\\partial^2 f}{\\partial x_1^2} & \\dfrac{\\partial^2 f}{\\partial x_1\\,\\partial x_2} & \\cdots & \\dfrac{\\partial^2 f}{\\partial x_1\\,\\partial x_n} \\\\[2.2ex]\n",
    "  \\dfrac{\\partial^2 f}{\\partial x_2\\,\\partial x_1} & \\dfrac{\\partial^2 f}{\\partial x_2^2} & \\cdots & \\dfrac{\\partial^2 f}{\\partial x_2\\,\\partial x_n} \\\\[2.2ex]\n",
    "  \\vdots & \\vdots & \\ddots & \\vdots \\\\[2.2ex]\n",
    "  \\dfrac{\\partial^2 f}{\\partial x_n\\,\\partial x_1} & \\dfrac{\\partial^2 f}{\\partial x_n\\,\\partial x_2} & \\cdots & \\dfrac{\\partial^2 f}{\\partial x_n^2}\n",
    "\\end{bmatrix}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2.1.1.1 Python example: Hessian with Sympy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import symbols, hessian, Function, init_printing, expand, Matrix, diff\n",
    "x, y, z = symbols('x y z')\n",
    "f = symbols('f', cls=Function)\n",
    "init_printing()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle x^{2} + 2 x y + 2 x z + 2 y^{2} + 3 z^{2}$"
      ],
      "text/plain": [
       " 2                      2      2\n",
       "x  + 2⋅x⋅y + 2⋅x⋅z + 2⋅y  + 3⋅z "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f = x**2 + 2*y**2 + 3*z**2 + 2*x*y + 2*x*z\n",
    "f"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left[\\begin{matrix}2 & 2 & 2\\\\2 & 4 & 0\\\\2 & 0 & 6\\end{matrix}\\right]$"
      ],
      "text/plain": [
       "⎡2  2  2⎤\n",
       "⎢       ⎥\n",
       "⎢2  4  0⎥\n",
       "⎢       ⎥\n",
       "⎣2  0  6⎦"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "H = hessian(f, (x, y, z))\n",
    "H"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "All eigenvalues>0, Hessian is positive definite\n"
     ]
    }
   ],
   "source": [
    "eigs = np.linalg.eigvals(np.array(H).astype('float'))>0\n",
    "if not any(eigs)==True:\n",
    "    print('Not convex')\n",
    "else:\n",
    "    print('All eigenvalues>0, Hessian is positive definite')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.1.2 Convexity"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2.1.2.1 Python example: Check for convexity \n",
    "Reference: [CVXPY library](https://www.cvxpy.org/index.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Problem(Minimize(Expression(CONVEX, NONNEGATIVE, ())), [])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import cvxpy as cp\n",
    "\n",
    "# Problem data.\n",
    "m = 30\n",
    "n = 20\n",
    "np.random.seed(1)\n",
    "A = np.random.randn(m, n)\n",
    "b = np.random.randn(m)\n",
    "\n",
    "# Construct the problem.\n",
    "x = cp.Variable(n)\n",
    "objective = cp.Minimize(cp.sum_squares(A*x - b))\n",
    "prob = cp.Problem(objective)\n",
    "prob"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3 Line search\n",
    "Reference: [Scipy library](https://scipy.github.io/devdocs/generated/scipy.optimize.line_search.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_func = lambda x: (x[0])**2+(x[1])**2\n",
    "test_grad = lambda x: [2*x[0],2*x[1]]\n",
    "start_point = np.array([1.8, 1.7])\n",
    "search_gradient = np.array([-1.0, -1.0])\n",
    "alpha, func_evals, gradient_evals, new_func, old_func, new_slope = scipy.optimize.line_search(test_func,test_grad, start_point, search_gradient)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAALMAAAAOCAYAAABkQC1YAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADJklEQVRoBc2a720TQRDF7YgCTOggdJBAB6EDQgckJSA+2d9Q6ACoAJIOSAch7oB0QOQOzPtZNydj587v0I43I012bvftvB3rZbX3Z7xcLkdhs9nsWPGV/ETxIvrddtd8jR8p10WTb6KW60v13zR9baO+y+bij9qXcnD3LaAJXBxwF1sal8GdkdOtuzZ3w7+l1fF0OkVU3+QP8ldyQM9VmCVm4az5DQ5BhphHis/F9UV+pvha7coU3yn4FH1q4aDvjeJW0C6OpC62NC6DOyOnW3dNbq2xV2sHAizkiAmRfWexQ2zAfIR7Lvzbtfw/mvhj9Gkc3ETturj5x+Ia4a/MxQF2saVxGdwZOd26nwB3r1YPWOCebC4eRImvTD9iG0ef2jM52E27Vcep5kyaARcH3MWWxmVwZ+R0667NDX+n7U3MEuGNnONLez5WHLt0u+NqpadyjjybFsJnHHNxQ7BuTheXwZ2Rs2Y9Q7ipvdP2JubNFUjIFMFN3oXir4yrjV2Xyy47dHEkcLGlcRncGTndumtzw7/Lnu0ClB7Xj8cNJkJ+Lec48UsedtgEsQtHP23s1gjexTHPxZbGZXBn5HTrrs0Nf6/VEDMCxkcSNseMO7X/PM1grMde9IytD7k45rjY0rgM7oycbt1VuasdM6haIuYJBbvwlWJ23Nh9FW5Z7CA8d3ZxJHGxpXEZ3Bk53bprc8Pfa3sTs8R6jD+ymjhmnGo8jhcIe9Oi797FkcDFlsZlcGfkdOuuzQ3/LtuLmPWDIUReenCkCFF2rY2nHUePDMbOHE9DXBypXGxpXAZ3Rk637trc8HfavsS80Arw67WdIBbFW0eMHxTjdXr0rTqaPydq52vzXRzTXWxpXAZ3Rk637trc8HeaLWZ2VPlSzg77P/ZBk36uT1QubgDZqXk8h9hHanlM99CM0UUfmHfy91xj6rNwQ7BuTheXwZ2Rs2Y9Q7ipvc/GfGikhPxnIhh2RFq+f5jLbzX2We3KFP9WwMuP9vsKBnTtzueRHG+bwjhObH1opHysgVfc3OxhPMbjWw3W1JqLY4KLLY3L4M7I6db9BLg7tfYXUTShIxvabq8AAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle 1.1300000000000001$"
      ],
      "text/plain": [
       "1.1300000000000001"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "alpha, func_evals, gradient_evals, new_func, old_func, new_slope = scipy.optimize.line_search(test_func,test_grad,np.array([1.8,1.7]),np.array([-1.,-1.]))\n",
    "new_func"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.4 Steepest descent\n",
    "\n",
    "$$f(x) = \\frac12 x^TQx - b^Tx \\\\ \n",
    "\\nabla f = Qx -b$$\n",
    "\n",
    "\n",
    "Steepest descent with step size:\n",
    "$$f(x_k - \\alpha \\nabla f_k) = \\frac12\\left(x_k - \\alpha \\nabla f_k\\right)^TQ\\left(x_k - \\alpha \\nabla f_k\\right) - b^T \\left(x_k - \\alpha \\nabla f_k\\right)$$\n",
    "\n",
    "Differentiate w.r.t $\\alpha$ and find the zero\n",
    "$$\\alpha_k = \\frac{\\nabla f_k^T\\nabla f_k}{\\nabla f_k^TQ\\nabla f_k}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.5 Newton's method\n",
    "\n",
    "$$p_k = -H^{-1}\\nabla f_k$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "Quad = lambda x: (x[1:])**2.0 + 5*(x[:-1])**2.0\n",
    "DQuad = lambda x,y: np.array([2.0*x,10.0*y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "x = np.linspace(-20,20, 100)\n",
    "y = np.linspace(-20,20, 100)\n",
    "X, Y = np.meshgrid(x, y)\n",
    "Z = Quad(np.vstack([X.ravel(), Y.ravel()])).reshape((100,100))\n",
    "Hinv=-np.array([[0.5,0],[0,0.1]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(12,4))\n",
    "plt.subplot(121)\n",
    "plt.contour(X,Y,Z);\n",
    "\n",
    "#Steepest descent\n",
    "plt.title(\"Steepest Descent\");\n",
    "step=-0.25 #Step size\n",
    "X0,Y0  = [10.0, 1.0] #Starting point\n",
    "sgrad = step*DQuad(X0,Y0) #Gradient\n",
    "plt.quiver(X0,Y0,sgrad[0],sgrad[1],color='red',angles='xy',scale_units='xy',scale=1);\n",
    "X1 = X0 + sgrad[0]\n",
    "Y1 = Y0 + sgrad[1]\n",
    "sgrad = step*DQuad(X1,Y1)\n",
    "plt.quiver(X1,Y1,sgrad[0],sgrad[1],color='green',angles='xy',scale_units='xy',scale=1);\n",
    "X2 = X1 + sgrad[0]\n",
    "Y2 = Y1 + sgrad[1]\n",
    "sgrad = step*DQuad(X2,Y2)\n",
    "plt.quiver(X2,Y2,sgrad[0],sgrad[1],color='purple',angles='xy',scale_units='xy',scale=1);\n",
    "\n",
    "\n",
    "#Newton's method\n",
    "Ngrad=Hinv.dot(DQuad(X0,Y0))\n",
    "plt.subplot(122)\n",
    "plt.contour(X,Y,Z);\n",
    "plt.title(\"Newton's Method\")\n",
    "plt.quiver(X0,Y0,Ngrad[0],Ngrad[1],color='purple',angles='xy',scale_units='xy',scale=1);\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.6.1 Newton CG\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "     fun: 7.483142654194713e-13\n",
       "     jac: array([ 0.00029295, -0.00014705])\n",
       " message: 'Optimization terminated successfully.'\n",
       "    nfev: 40\n",
       "    nhev: 0\n",
       "     nit: 27\n",
       "    njev: 148\n",
       "  status: 0\n",
       " success: True\n",
       "       x: array([0.99999914, 0.99999827])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from scipy import optimize as opt\n",
    "from scipy.optimize import rosen, rosen_der, rosen_hess\n",
    "x0 = np.array([4,-4.1])\n",
    "ps = [x0]\n",
    "opt.minimize(rosen, x0, method='Newton-CG', jac=rosen_der, callback=reporter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ps = np.array(ps)\n",
    "plt.figure(figsize=(12,4))\n",
    "plt.subplot(121)\n",
    "plt.contour(X, Y, Z, np.arange(10)**5, cmap='jet')\n",
    "plt.plot(ps[:, 0], ps[:, 1], '-ro')\n",
    "plt.subplot(122)\n",
    "plt.semilogy(range(len(ps)), rosen(ps.T));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.6.2 BFGS - Broyden–Fletcher–Goldfarb–Shanno\n",
    "\n",
    "- \"Quasi\" Newton method\n",
    "- Variants of Newton where Hessian is replaced by an approximation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "def reporter(p):\n",
    "    \"\"\"Reporter function to capture intermediate states of optimization.\"\"\"\n",
    "    global ps\n",
    "    ps.append(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "      fun: 9.48988612333806e-12\n",
       " hess_inv: array([[0.49995593, 0.99988908],\n",
       "       [0.99988908, 2.00468039]])\n",
       "      jac: array([ 4.39252450e-05, -2.03651389e-05])\n",
       "  message: 'Desired error not necessarily achieved due to precision loss.'\n",
       "     nfev: 540\n",
       "      nit: 56\n",
       "     njev: 132\n",
       "   status: 2\n",
       "  success: False\n",
       "        x: array([0.99999712, 0.99999413])"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from scipy import optimize as opt\n",
    "from scipy.optimize import rosen, rosen_der, rosen_hess\n",
    "x0 = np.array([4,-4.1])\n",
    "ps = [x0]\n",
    "opt.minimize(rosen, x0, method='BFGS', callback=reporter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsEAAAD5CAYAAADGB+idAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdd3zW5dn//9eRvQcQQiAhAdku0IBWWlBw4ETUqqAVFzjqXb3119bW+/7W1tt+27u2/VqrURRFNA6qqKi4igMHKshSRASZYQYIZJJ5/v74JBoxO9fIeD8fjzyS63N9xiGl4ciZ4zwOc84hIiIiItKdhAQ7ABERERGRQFMSLCIiIiLdjpJgEREREel2lASLiIiISLejJFhEREREuh0lwSIiIiLS7YS19EQziwIWA5G11z3nnPudmc0BxgMHa0+90jm3sql79erVy2VlZbUpYBGRYPrss8/2OudSgh1HIOl7toh0Zo19325xEgyUAxOcc8VmFg58YGav1b73S+fccy29UVZWFsuWLWvFo0VEOgYz2xLsGAJN37NFpDNr7Pt2i5Ng503VKK59GV77oUkbIiIiItLptKom2MxCzWwlsAd4yzn3Se1bd5vZajP7u5lFNnLtTDNbZmbL8vPz2xm2iIiIiEjbtSoJds5VO+dGAunAGDM7CvgNMAwYDfQAft3ItbOcc9nOueyUlG5VTiciIiIiHUybukM45w4A7wKTnHM7nacceAwY48P4RERERER8rsVJsJmlmFlS7dfRwKnAV2aWVnvMgPOBL/wRqIiIiIiIr7SmO0Qa8LiZheIlz/Occ6+Y2dtmlgIYsBK43g9xioiIiIj4TItXgp1zq51zo5xzxzjnjnLO/aH2+ATn3NG1xy53zhU3dy8RkaDJzYWsLAgJ8T7n5gY7IhERCYLWrASLiHRuubkwcyaUlnqvt2zxXgNcdlnw4uqCXv9iJ+VVNUwe2S/YoYiINEhjk0Wk+7jjju8S4Dqlpd5x8RnnHLmfbOU/n13Jc5/lBTscEZEGKQkWke6hrMxb+W3I1q2BjaWLMzNm/Sybk47oxS+fW8Uzn+rPV0Q6HiXBItL1rV4No0c3/n7//oGLpZuIjgjlkenZjBucwu3zP+eJJZuDHZKIyPcoCRaRrqumBv72Ny8B3rcPrrjih+fExMDddwc+tm4gKjyUWVccz6nDe/PfL61h9gebgh2SiMi3lASLSNe0fTuccQbcdhtMmuStBvfqBWbQr5/3OTMTZs3Spjg/igwL5YHLjmfSkX2465Uvmbtkc7BDEhEBlASLSFf0/PNwzDHw0Ufw0EPw4osQFwePPQYXXgh5ed4q8ebN3TIBNrNYM/vMzM4JxPMiwkK4b9oofjK4F395Yx3F5VWBeKyISJOUBItI11FcDNdcAxddBAMHwooVXgs0M5g3DwoK4MYbgx2lz5nZo2a2x8y+OOz4JDNbZ2YbzOz2em/9GpgXyBjDQ0O49bQhFB2q4tml2wL5aBGRBikJFpGu4ZNPYORIb7X3t7/1VoGHDPnu/ZwcGDYMTj45aCH60RxgUv0DtdM97wfOBEYAU81shJmdCnwJ7A50kKP6JzMmqwePfrCJyuqaQD9eROR7lASLSOdWVQV/+AOMHet9/d573ka38PDvzlm+3EuSr7/eWxXuYpxzi4H9hx0eA2xwzm10zlUAzwCTgVOAE4FpwAwza/DfATObaWbLzGxZfn6+z2KdOW4g2w+UsfDznT67p4hIWygJFpHOa+NGGD8efvc7uPRSWLUKfvKTH56XkwPR0TB9euBjDJ5+QP26gzygn3PuDufcLcBTwMPOuQaXZJ1zs5xz2c657JSUFJ8FNWFYb45IiWXW4o0453x2XxGR1lISLCKdj3Mwd65X/rBmDTz1FDz5JCQm/vDcgwe996dOhaSkwMcaPA0teX+bdTrn5jjnXglgPACEhBgzfjKQNTsK+eibfYF+vIjIt5QEi0jnUlDgrfpOnw6jRnmrv1OnNn7+3LneaOQuuCGuGXlARr3X6cCOIMXyPeeP6kevuEhmLd4Y7FBEpBtTEiwincc773itz+bPhz/+Ed5+2+v12xjnvFKI0aPh+OMDF2fHsBQYbGYDzCwCuBRYEOSYAG+IxpUnZfLe1/l8tasw2OGISDelJFhEOr7ycvjVr2DiRG/C25Il8JvfQGho09ctXgxr18INNwQmziAxs6eBJcBQM8szs2ucc1XATcAbwFpgnnNuTTDjrO/yEzOJDg/VarCIBE1YsAMQEWnS2rUwbRqsXAnXXQd//SvExrbs2gce8OqAL7nEvzEGmXOuwXoQ59xCYGGAw2mRpJgILhmdwZMfb+GXZwwlLTE62CGJSDejlWAR6Zic85LY447zJry99BI8+GDLE+Bdu7yyiSuv9FaPpcO55scDqHGOu175ktIKTZETkcBSEiwiHc/u3XDuufDzn3vDLT7/HM47r3X3mD3b6xt8/fV+CVHaL6NHDLeeNoTXvtjFOf/4gFXbDgQ7JBHpRlqcBJtZlJl9amarzGyNmf2+9vgAM/vEzNab2bO1GzBERFouNxeysiAkBHr3hsGDYdEiuO8+WLgQ+vRp3f2qq2HWLK+GeOhQv4QsvnHThMHkXnsChyqruTDnI/6xaD1VmiYnIgHQmpXgcmCCc+5YYCQwycxOBP4M/N05NxgoAK7xfZgi0mXl5sLMmbBli1cCkZ8PxcVw551w001tm/C2cCFs3drlN8R1FScd0YvXbhnH2cek8be3vubih5aw/UBZsMMSkS6uxUmw8xTXvgyv/XDABOC52uOPA+f7NEIR6druuMPr41tfXWuztsrJgbS01pdQSNAkRodz76WjuPfSkXy1q4g/Llwb7JBEpItrVU2wmYWa2UpgD/AW8A1woLYVD9SO5WzkWr/MoReRTm7r1tYdb87GjfD66zBjBoSHtz0uCYrJI/tx3rF9eW9dPhVVKosQEf9pVRLsnKt2zo3Emzw0Bhje0GmNXOuXOfQi0sn179+648156CGvtnjGjLbHJEE1cXgqxeVVfLppf7BDEZEurE3dIZxzB4B3gROBJDOr6zfcYcZyikgncffdDbcwS0uDuDivJtjMG4zR3Ojj8nJ49FGvDCI93T/xit/9eFAvIsNC+Pfa3cEORUS6sNZ0h0gxs6Tar6OBU/GmEL0DXFR72nTgJV8HKSJd2GWXeZ0cMjO9ZLd/fzjiCPj4Yygp+e68mhqv1repRPi552DvXm2I6+SiI0IZO6gXi77ajXMN/nJRRKTdWrMSnAa8Y2ar8WbSv+WcewX4NXCrmW0AegKzfR+miHRpl10Gmzd7ie6WLVBZ2fi5Dz7Y+Hs5OTBokNcaTTq1icN7s21/Gev3FDd/sohIG7R4bLJzbjUwqoHjG/Hqg0VEfGPbtsbfa2xlcPVq+PBDuOceryZYOrUJw3oD8O+1uxmSGh/kaESkK9K/FCLS8bRlU1xODkRFeWOSpdNLS4zmyL4JLFq7J9ihiEgXpSRYRDqeu+9u/L24uB8eKyqCJ5+ESy6Bnj39F5cE1MThqSzfWsD+kopghyIiXZCSYBHpeC67DMY0UGUVFtZwTfCTT3pT5rQhrks5dXhvnIN3vtJqsIj4npJgEel4yspg0yY49tjvukZkZsKcOV6CXF/ddLlRoxpOnKXTOqpvIr3jI1n0lVqliYjvtXhjnIhIwMyZA/n5XsuzceOaPvfDD+Hzz702a2YBCa+zM7PzgbOB3sD9zrk3gxxSg0JCjInDe/Pyqp1UVNUQEaZ1GxHxHX1HEZGOparK6/Bwwgnwk580f35ODiQkwLRp/o+tAzOzR81sj5l9cdjxSWa2zsw2mNntAM65F51zM4ArgUuCEG6LTRzmTY/7ZNO+YIciIl2MkmAR6Vjmz4eNG+HXv25+ZbdutXj6dIiNDUx8HdccYFL9A2YWCtwPnAmMAKaa2Yh6p/xX7fsd1tja6XHqEiEivqYkWEQ6Dufgz3+GIUO80cfNefRRqKiA66/3f2wdnHNuMbD/sMNjgA3OuY3OuQrgGWCyef4MvOacW97Q/cxsppktM7Nl+fn5/g2+CXXT4/69VtPjRMS3lASLSMfx9tuwfDn88pcQGtr0udXV8NBDMH48jBjR9LndVz+g/uSRvNpj/wGcClxkZg3+BOGcm+Wcy3bOZaekpPg/0iZMHN6bvIIyvt6t6XEi4jtKgkWk4/jzn6FPH7j88ubPfeMNr4OE2qI1paF6Euec+4dz7njn3PXOuSbmUHcME4elAjB/RV6QIxGRrkRJsIh0DCtWwFtvwS23eJPfmpOTA6mpMGWK/2PrvPKAjHqv04EdQYqlzfokRjFlVD9mLd7I++uDV5ohIl2LkmAR6Rj+938hPh6uu675c7dsgVdfhWuvhYgI/8fWeS0FBpvZADOLAC4FFgQ5pja5e8pRDO4dx83PrGTHgbJghyMiXYCSYBEJvk2bYN48LwFOSmr+/LqewDNn+j+2TsLMngaWAEPNLM/MrnHOVQE3AW8Aa4F5zrk1wYyzrWIiwsi5/Hgqqmq4MXc55VXVwQ5JRDo5JcEiEnx//au3Ee6WW5o/t6ICHnkEzj4b+vf3f2ydhHNuqnMuzTkX7pxLd87Nrj2+0Dk3xDl3hHPu7mDH2R5HpMTxl4uOYeW2A9z96tpghyMinZySYBEJrvx8r9XZ5ZdDv37Nnz9/PuzZow1x3dSZR6cx4ycDmLtkCy+u2B7scESkE9PYZBEJrn/+E8rKvLZoLZGTAwMGwBln+Dcu6bB+PWkYq/IOcvv81azZcZDQkBBCDELMCAkxQgwM73NIiBEaYgzrE89xmckkRIUHO3wR6SCUBItI8JSUeEnweefB8OHNn79mDSxe7LVSC9EvsrqrsNAQ/jltFFfM/pQnPt5CjQPnHNU1jpom5mmYwdDUeLKzkhmVkUxCdDhhoUZ4SIj3OTSEyLAQoiNCiQoPJSoshJiIMKLCQ7DmpheKSKejJFhEgmf2bNi/3xuR3BIPPuh1g7jqKv/GJR1e7/goXr9lXIPvOee+TYxrHByqquaLvIMs3VzAsi37eXHFDp78eGuLnxUeaiRGh5MQHU5idDjJMRGkJkTRNzGKPolRpCVG0y85mv49YggNUbIs0lm0OAk2swxgLtAHqAFmOefuNbM7gRlAXfPG3zrnFvo6UBHpYiorvQ1xY8fCSSc1f35xMcydCz/9KQR5gpl0bGZGqEHdrJCIsBBOGtSLkwb1AqC6xrFpbwllFdVU1tRQVe2oqq6horqG8qoaDlVWc6iymrKKakorqyksq+JgWSWFhyopLKtkd+EhVm07wL6Siu89NyIshCNS4hiaGsfg1HgG9IolLjKM2Miw2s+hxEWGERMRRkSYfpMhEmytWQmuAm5zzi03s3jgMzN7q/a9vzvn7vF9eCLSZc2bB1u3euUQLfHUU1BYqA1x0m6hIcag3nHtvs+hymp2Fx5ix4FDbCsoZf3uIr7eXcynm/bz4sqmZ5KEhxoxEWHERoQSHxVOj9iI732kJkSR2TOG/j1i6JsUrRVmET9ocRLsnNsJ7Kz9usjM1uLNoBcRaR3nvOEYI0Z4rc5acn5ODhxzTMtWjUUCICo8lMyesWT2jOVH9Pzee0WHKtm2v4zSiiqKy6soKa+mpNz7uqzS+7q0wvt8sKyS/SUVrN1ZyL6SCg6WVX7vXuGhRnpyDFk9Y8jqFcvAXrFk9YplQK9Y+iZGE6IEWaRN2lQTbGZZwCjgE2AscJOZXQEsw1stLmjgmpnATID+6u0p0r298QasXg2PPdayDW6ffAIrV3qJsDYoSScQHxXOiL5t60RRWV3D7sJDbN1Xypb9pWzZV8rW/SVs3lvKJ5v2U1rx3aCQ6PBQBvWOY3BqHENS4xmaGk//njGkJkQRF6ltPyJNMeea2Erb0AVmccB7wN3OuflmlgrsBRxwF5DmnLu6qXtkZ2e7ZcuWtTFkEen0JkyAr7+GjRtbNvZ4+nSvP/COHd5o5SAys8+cc9lBDSLA9D2743DOsaeonE17S9iYX8I3+cV8vbuIr3cXsbuw/HvnxkaEkpoQRe+ESBKjw4kODyU6IoyYiFBiIkJJiAonKcbb6Jcc631OS4wmOiI0SP91Iv7R2PftVv2YaGbhwPNArnNuPoBzbne99x8GXmlnrCLSlS1dCu+8A/fc07IEeN8+ePZZuPrqoCfAIsFmZqQmRJGaEMWJA79fgnGwtJKv9xSxvaCM3YWH2F1Yzu6iQ+wpPMSWfaWUVlRTWlFNWUUVpZXVNLYGlhIfSUZtt4v+PWJITYwiJS6S3glRpMRH0isugsgwJcrS+bWmO4QBs4G1zrm/1TueVlsvDDAF+MK3IYpIl5CbC3fcAVu2eCUNiYktu27OHCgv14Y4kWYkxoQzOqsHo7OaP9c5R1F5FQdKKikorfj2Y3tBGdv2l7F1fylLNxewYNWOBnsvpydHMyQ1nsG94xjUu7YUo088UeFKjqXzaM1K8FjgZ8DnZray9thvgalmNhKvHGIzcJ1PIxSRzi83F2bOhNJS77VzcPPNEB0Nl13W+HU1NV4d8NixcPTRgYlVpBswMxKiwkmICqd/z5hGz6usrmFfcQX5ReXsKTpEflE5uwoP8U1+Cet3F/HB+r1UVNcA3ga+4WkJHJuexLEZSRzVL4He8VEkRIURFqqWcNLxtKY7xAfUNV38PvUEFpGm3XHHdwlwndJS73hTSfC//w3ffAN/+IN/4xORBoWHhtCndigI/PC3N1XVNWwrKGPdrkJW5R1k1bYDvLBiO098vOV75yVEhZEUE0FyTDgp8ZGkxEeRmhBJ7/go0hKjGJwaR7+kaE3mk4DS1lER8a/cXK8EoiFbm5nalZPjDca48ELfxyUi7RYWGsKA2nZtk45KA6CmxvFNfjFf7iykoKSCgtJKDpZ5ZRf7SyrIKyhj+dYD7D9s2Eh8VBhDU+MZlhb/7YrysD7xWkUWv1ESLCL+U1cG0Zim2iXm5cGCBfDLX0JkpO9jExG/CAkxBqfGMzi16Y2sFVU17C0uZ/uBMtbtKmLdriK+2lXISyu/G2sdFR7C0f0SGZmRxKj+yYzqn0RaYnQg/jOkG1ASLCL+c/PNPyyDqBMTA3ff3fi1Dz/s1Q5fp20GvmRmscADQAXwrnMuN8ghSTcVERZC36Ro+iZFMzqrx7fHnXPkFZSxYtsBVm49wMptBTy+ZAsPv78JgL6JUYzKTOa4/skcn5nMkX0TCNdqsbSBkmAR8Y/cXK+9WWNmzWq8Hriy0kuCJ02CAQP8E18XYmaPAucAe5xzR9U7Pgm4FwgFHnHO/Qm4AHjOOfeymT0LKAmWDsXMyOgRQ0aPGM47ti/grRp/ubOQ5VsKWL61gBVbD/Dqaq8xVXR4KMdlJjE6qwdjsnpwdHoi8VFtG1Qi3YuSYBHxjzvuaPy9zMymN8S99BLs3OklytISc4B/AnPrDphZKHA/cBqQByw1swVAOvB57WnViHQCEWEhjMxIYmRGElfj/WC8u/AQyzYXsHTzfj7dtJ97F63/tvdxfGTYtxv60hKj6BkXSWxEKLGRYd5HRBhJdZv04rxhIho/3f0oCRYR/2hq01tTZRDgbYjLzIQzz/RtTF2Uc25x7Tj7+sYAG5xzGwHM7BlgMl5CnA6sBPQ7ZOm0UhOiOPuYNM4+xtuQV3ioks+2FPDVziJ2Fx5i58EydhWW8/XufPYVV1DVUMPjWmEhRq+4SDJ6RDOsTwJD+8QzrE88Q/rEk6BV5S5LSbCI+Ef//g13hejZs+lV4HXr4O23vUQ5VI3326EfsK3e6zzgBOAfwD/N7Gzg5cYuNrOZwEyA/k1tYBTpIBKiwjllaG9OGdq7wffLq6opKa+mpLyKkooqDpRWkl9U7n0Ue5837y3hxRXbKSqv+va6Ab1iyc5MJjsrmeysHgzsFatWbl2EkmAR8b3cXCgu/uHxmBi4996mr33wQQgPh2uu8U9s3UdD/0o751wJcFVzFzvnZgGzALKzsxtfQhPpJCLDQokMC6VHbNPj2p1z33asWLuzkJXbDvDW2t3867M8AHrERjBhWG8uzs5gdFayEuJOTEmwiPjW4dPh6vTs6SXATa0Cl5Z6Y5IvuABSU/0aZjeQB2TUe50O7AhSLCKdhpmRnhxDenIME4d734dqahwb9xazbHMBn2zaz2uf7+S5z/IY0CuWi45P56Lj00lNiApy5NJaSoJFxLcamg4HEBfXdAIM8MwzcOAA3Hijf2LrXpYCg81sALAduBSYFtyQRDqnkBBjUO94BvWO59Ix/SmtqGLh57uYt2wbf3ljHX99cx3D+iQwPC2B4WnxjOibwIi0BJJiml51luBSEiwivtXYhrjmpsOBtyHuyCPhJz/xbUxdnJk9DZwM9DKzPOB3zrnZZnYT8AZei7RHnXNrghimSJcRExH27Qrwpr0lvLBiOyu2FvDe1/k8vzzv2/N6xUUysHai3oAU7/OojCR6a9W4Q1ASLCK+1diGuOY2Vy1b5n3cdx+oxq5VnHNTGzm+EFgY4HBEupUBvWK59bQh377OLypn7c5C1u4sZGN+CZv2lrDoqz3sXVb+vWtOHNiDEwb05ISBPTQFL0iUBIuIb115Jfz+998/1tx0OPBWgWNi4Gc/81toIiL+lhIfSUp8CuOGpHzveOGhSjbsKeazzQV8vHEfr6zeydOfeg1cjs9M5qLj0zn7mDS1ZAsgJcEi4jvOwXvvQXw8JCVBXp63Anz33U3XAxcUwNNPw+WXQ2Ji4OIVEQmQhKhwjuvvjXueMW4g1TWOtTsLeX/9XuYvz+M38z/nzgVrmHRUHy48Lp0fHdFT46D9TEmwiPjOokXw7rvwj3/Af/xHy697/HEoK9OGOBHpNkJDjKP6JXJUv0SuHz+Qz7cf5F/L8liwagcvrdxBQlQY44f25tThvTl5SG8SY7RC7GvmXODbP2ZnZ7tly5YF/Lki4kfOwQknwO7d8PXXEBnZ8uuGD4fkZFiyxL8x+oCZfeacyw52HIGk79kigXOospp31+WzaO1u3lm3h73FFYSGGMf3T+a4zGSOSU/k6H6JpCdHq0dxCzX2fVsrwSLSPrm5Xlu0rVu9hHbGjJYnwADvvONNiXv8cf/FKCLSSUSFhzLpqD5MOqoPNTWOlXkHWLR2N4u/3svsDzZSWe0tXvaIjWBkRhKTR/bljCP7EBWuCZutpSRYRNquocEYubkwfnzzPYHr5ORAjx5w8cX+iVFEpJMKCbFv64h/eYY3+nndriJW5x1kdd4BPvpmHzc/s5KkmHCmjOrH1DH9GZIaH+ywO40WJ8FmlgHMBfoANcAs59y9ZtYDeBbIAjYDFzvnCnwfqoh0OA0Nxigt9Y63JAnesQNeeAFuuQWi1DdTRKQpkWGhHJOexDHpSUAmNTWOj77Zx9NLt/Lkx1t47MPNjM5K5nfnHslR/bTJuDmt2XZYBdzmnBsOnAj83MxGALcDi5xzg4FFta9FpDtoz2AMgEcegepquP5638UkItJNhIQYPx7ci/unHcfHv5nIHWcNZ/O+Uibf/yF/fv0rDlVWBzvEDq3FSbBzbqdzbnnt10XAWqAfMBmoK+Z7HDjf10GKSAfV2ACM5gZjAFRVwaxZcPrpMGiQb+MSEelmesZFMmPcQP79n+O5YFQ/ct79hrPufZ+lm/cHO7QOq00N6MwsCxgFfAKkOud2gpcoA70buWammS0zs2X5+flti1ZEOpZf/eqHx1oyGAPglVdg+3a44QbfxyUi0k0lxoTzl58eyxPXjKGiuoafPriE/37xCw6WVQY7tA6n1UmwmcUBzwO3OOcKW3qdc26Wcy7bOZedkpLS/AUi0vGtWAEhIdC3rzfqODPTW91tST1wTg6kp8M55/g/ThGRbuYng1N445ZxXHlSFk9+soWJf32P+cvzCEZr3I6qVUmwmYXjJcC5zrn5tYd3m1la7ftpwB7fhigiHdKqVTB7Ntx8s7eiW1MDmze3LAFevx7efNNrpxamJjUiIv4QGxnGnecdyYKf/5j05GhunbeKix9awtqdLV7D7NJanASb15F5NrDWOfe3em8tAKbXfj0deMl34YlIh+Qc3Hqr19rsv/+79dc/9JCX/F57re9jExGR7zk6PZH5N5zEny88mg17ijnnvg/4w8tfUnSoe5dItGYleCzwM2CCma2s/TgL+BNwmpmtB06rfS0iXdnLL8Pbb8Odd3qT3lqjrAweewzOP98roxAREb8LCTEuGd2fd/6/k7lkdAaPfbSJU//2Hq+s3tFtSyRa/HtI59wHQGPz+Sb6JhwR6bDqT4YLDYW0NLjuutbf51//gv37tSFORCQIkmIi+OOUo7k4O4M7Xvicm55awbwhefzhvCPJ6hUb7PACqk3dIUSkm6mbDLdli1cKUVXlJbLz5rX+Xjk5MHQonHKK7+MUEZEWGZmRxEs/H8vvzh3B8i0FnP7/FnP/Oxuoqek+q8JKgkWkeQ1Nhisv9463xooV8PHH3nAMa+wXS+JvZna+mT1sZi+Z2enBjkdEgiMsNISrxg5g0W3jOW14Kn95Yx2/eGZFtxmyoSRYRJrX3slwdXJyIDoapk9v/lxpkJk9amZ7zOyLw45PMrN1ZrbBzJqc3Omce9E5NwO4ErjEj+GKSCeQmhDFP6eN4vYzh/HK6p1c/sgnFJRUBDssv1MSLCLNa89kuDoHD3plFVOntn4zndQ3B5hU/4CZhQL3A2cCI4CpZjbCzI42s1cO+6g/0Oi/aq8TkW7OzLh+/BH8c9ooVm8/yAU5H7F5b0mww/IrJcEi0rTcXCgu/uHxlk6Gq/PEE15JhTbEtYtzbjFw+BzUMcAG59xG51wF8Aww2Tn3uXPunMM+9pjnz8BrzrnlDT1HUz5FuqdzjunLU9eewIHSCi7I+YjPtnTdsctKgkWkcXUb4vbt+/7xnj1bPhkOvM10OTmQne19iK/1A7bVe51Xe6wx/wGcClxkZtc3dIKmfIp0X9lZPXjhxrEkRIVx2SOf8OGGvcEOyS+UBItI4xraEAcQF9fyBBjg/ffhyy+1Cuw/De0ybHSLt3PuH865451z1zvnHvRjXCLSSWX1iuW5G04iq2csV89ZyuKvu95vhJQEi0jjfLUh7oEHICkJLr20/SzhQvwAACAASURBVDFJQ/KAjHqv04EdQYpFRLqIXnGRPDXjRAamxHHt3GW8u25PsEPyKSXBItK4jIyGj7dmQ9zu3TB/Plx5pVdHLP6wFBhsZgPMLAK4FG+kvYhIu/SIjeCpa09gcO84Zs79jLe/2h3skHxGSbCINK6hgRat3RA3ezZUVnq9gaXdzOxpYAkw1MzyzOwa51wVcBPwBrAWmOecWxPMOEWk60iOjeCpa09kWFo81z3xGf/+smskwkqCRaRhBQXw8sswfLi38msGmZmt2xBXXQ0PPQQTJnhT4qTdnHNTnXNpzrlw51y6c2527fGFzrkhzrkjnHOt+ClFRKR5iTHhPHHNCQztE8+vn19NRVVNsENqNyXBItKwu+7yEuGnnvLGJdfUwObNrdsQ99prXv2wNsSJiHR6idHh3HbaUPaVVLBobedfDVYSLCLfyc2FrCwICYG//x3GjYORI9t+vwcegLQ0mDzZZyGKiEjwjBuSQp+EKJ5Zuq35kzs4JcEi4snNhauu8lZ9XW13rY8+8o63xaZN8PrrMGMGhIf7Lk4REQma0BDj4ux0Fq/PZ/uBsmCH0y5KgkXEc/PN3ga2+iorveNt8dBD3oryjBntj01ERDqMn2Z7nYOeW5YX5EjaR0mwiHgOnwrX3PGmlJd7XSHOPRfS09sXl4iIdCgZPWL48aBezFu2jeqaRufydHhKgkXE955/Hvbu1YY4EZEu6pLRGWw/UNapRyq3OAk2s0fNbI+ZfVHv2J1mtt3MVtZ+nOWfMEXE7xITGz7es2fr7/XAAzBoEJx6avtiEhGRDum0Eakkx4TzbCfeINealeA5wKQGjv/dOTey9mOhb8ISkYCqqIC4uB8ej4iAe+9t3b0+/xw+/NAbjhGiXzaJiHRFkWGhTBmVzptf7mJfcXmww2mTFv8L5ZxbDOz3YywiEix/+xts3w633eYNxKgbjPHoo63rCwyQkwORkd6YZBER6bIuGZ1BZbXjhRXbgx1Km/himeYmM1tdWy6R7IP7iUgg1O8J/NvfQnY23HOPNxCjLYMxAIqK4Ikn4JJL2lZGISIincbQPvGM6p/Es0u34Vzn2yDX3iQ4BzgCGAnsBP7a2IlmNtPMlpnZsvz8/HY+VkTaJTcXZs78riewc7BmTdt7Ate/b3GxNsSJiHQTl47OYP2eYpZvPRDsUFqtXUmwc263c67aOVcDPAyMaeLcWc65bOdcdkpKSnseKyLtdccdUFr6/WNlZd7xtnLO2xA3ciSccEL74hMRkU7hnGP6EhsRypyPNne61eB2JcFmllbv5RTgi8bOFZEOZOvW1h1viY8+8jbF3XijV1MsIiJdXmxkGFeOzeLlVTt4+P2NwQ6nVcJaeqKZPQ2cDPQyszzgd8DJZjYScMBm4Do/xCgivta/v1cK0dDxtsrJgYQEmDat7fcQEZFO57bThrJ5Xyl/XPgVKfGRTBnVOYYktTgJds5NbeDwbB/GIiKBMnUq/OlP3z8WEwN33922++Xnw7/+5dUZx8a2Pz4REek0QkKMv118LPuLK/jlv1bTIzaS8UM6fumrmniKdDfFxfDMM9CnD2RkfNcObdas1neDqPPYY16v4euv922s4hdmFmtmn5nZOcGORUS6hsiwUB664ngGp8Zzw5OfsTqv42+UUxIs0h3Ub4fWt6/X/mzePK8GuK3t0OrU1MCDD8K4cXDkkT4MWg7X0OTO2uOTzGydmW0ws9tbcKtfA/P8E6WIdFcJUeE8ftVoesRGcNVjS9m0tyTYITVJSbBIV3d4O7SiIggLa98muPreeAM2bfI2xIm/zeGwyZ1mFgrcD5wJjACmmtkIMzvazF457KO3mZ0KfAnsDnTwItL19U6IYu7VY6hxjjsXrAl2OE1SEizS1TXUDq2qqn3t0OrLyYHUVJgyxTf3k0Y1MrlzDLDBObfROVcBPANMds597pw757CPPcApwInANGCGmTX474B6u4tIWw1MiePC49JZ8s0+Siuqgh1Oo5QEi3R1/miHVv8er74K11wDERHtv5+0RT9gW73XebXHGuScu8M5dwvwFPBwbZ/3hs5Tb3cRabPxQ1OoqK7hk42H/9zecSgJFunqGmt71p52aHVmzfJKLGbObP+9pK0aasrcbMd659wc59wrfohHRITRWT2ICg/hva877m+SlASLdHW3N7BPqj3t0OpUVMAjj8DZZ3vdJSRY8oCMeq/TgR1BikVEBICo8FB+NLCnkmARCbD63SBuvdVrg5aW5pt2aHVeeAF279aGuOBbCgw2swFmFgFcCiwIckwiIowfksKmvSVs2dcxu0QoCRbpag7vBlFW5nWD+Mtf2t8Orb6cHBgwAM44o/33khapndy5BBhqZnlmdo1zrgq4CXgDWAvMc8517C3ZItItjB/aG4DFHXQ1WEmwSFfTUDeIykrfdYMA+PJLeO89uO46b7VZAsI5N9U5l+acC3fOpTvnZtceX+icG+KcO8I51846FxER38jqGUP/HjEdtiRC/3qJdDX+7AZR58EHvW4QV1/tu3uKiEiXYmaMH5LCR9/so7yqOtjh/ICSYJGuxp/dIABKSuDxx+Gii0Cts0REpAnjh6RQWlHNZ5sLgh3KDygJFukq6jbDbdnyw/d80Q2izlNPQWGhNsSJiEizfnRET8JDrUOWRCgJFukK6m+Gq2O17WN91Q0CvI12OTlw9NFw0kntv5+IiHRpsZFhjM7qoSRYRPykoc1wznkJsK+6QQB8+imsWAE33PBdki0iItKE8UNS+GpXEbsOHgp2KN+jJFiks8vNbbgEAny7GQ68VeC4OLj8ct/eV0REuqzxQ739Ix2tVZqSYJHOrK4MojG+2gwHsG8fPPuslwDHx/vuviIi0qUNTY0nNSGyw5VEKAkW6cwaKoOo48vNcABz5sChQ14phIiISAvVtUp7f30+VdU1wQ7nWy1Ogs3sUTPbY2Zf1DvWw8zeMrP1tZ+T/ROmiPxAU2UQ4LvNcOBNmnvwQRg7Fo45xjf3FBGRbmP8kN4UHqpiVd6BYIfyrdasBM8BJh127HZgkXNuMLCo9rWI+FtzZRCZmb5LgAEWLYING7QKLCIibfLjQb0IMXjnq45TEtHiJNg5txjYf9jhycDjtV8/Dpzvo7hEpCmBLIMAb0Ncr17egAwREZFWSowJ58eDU3hm6VZKyquCHQ7Q/prgVOfcToDaz70bO9HMZprZMjNblp/fcX4KEOl0AlkGAZCXBwsWeCOSIyN9d18REelWbp44mL3FFTy+ZHOwQwECuDHOOTfLOZftnMtO0ahVkbYJdBkEwMMPezXB113n2/uKiEi3cnxmMhOG9eah9zZysKwy2OG0OwnebWZpALWf97Q/JBFpVKDLICorvSR40iQYONC39xYRkW7n1tOGcLCsktkfbAp2KO1OghcA02u/ng681M77iUhTmhp+4esyCPDKIHbu1IY4ERHxiaP6JXLW0X149INN7C+pCGosrWmR9jSwBBhqZnlmdg3wJ+A0M1sPnFb7WkR8LTfXK3VwruH3/VEGAd6GuP794ayzfH9vCQozCzGzu83sPjOb3vwVIiK+9Z+nDqGkooqHFn8T1Dha0x1iqnMuzTkX7pxLd87Nds7tc85NdM4Nrv18ePcIEWmvujrgxlaB/VEGAbBundcabeZMCA31/f2l1Rrq1157fJKZrTOzDWbWXKvKyUA/oBLI81esIiKNGZwaz/kj+/H4R5vZU3goaHFoYpxIR9dUHXBmpn/KIMAbjhEeDtdc4/t7S1vN4bB+7WYWCtwPnAmMAKaa2QgzO9rMXjnsozcwFFjinLsVUJ2LiATFzRMHU1nteODd4K0GhwXtySLSMo2tAJvB5s3+eWZpqTcm+YILoE8f/zxDWs05t9jMsg47PAbY4JzbCGBmzwCTnXP/Fzjn8HuYWR5QV4hX3dizzGwmMBOgf//+7Y5dRKS+rF6xXJydzlOfbGXGuIH0S4oOeAxaCRbpiHJzISsLQkIarwP2Z2Ly7LNw4IA2xHUO/YBt9V7n1R5rzHzgDDO7D1jc2Elqayki/nbThME4HHOXbA7K87USLNLR1NUAN1YCAf6rA66TkwMjRsC4cf57hviKNXCskZ+cwDlXCqjGRUSCrl9SNEekxPHNnuKgPF8rwSIdTWM1wKGhXgmEP+uAAT77DJYuheuv954nHV0ekFHvdTqwI0ixiIi0SnpyDHkFZUF5tlaCRTqaxmqAa2q8D3/LyfFWmq+4wv/PEl9YCgw2swHAduBSYFpwQxIRaZn05Gg+3rgP5xwW4IUXrQSLdBTN9QIOxOakggJ46ilvlTkx0f/Pk1ZpqF+7c64KuAl4A1gLzHPOrQlmnCIiLZWeHE1xeVVQxihrJVikI2iuDtjfNcB15s6FsjJtiOugnHNTGzm+EFgY4HBERNotPTkGgLyCMpJiIgL6bK0EiwRbbi5Mnx6cXsD1Oef1Bj7hBBg1yr/PEhERwVsJBsgraGIzuJ9oJVgkmOpWgKsbadfqz17Ah3v3XfjqK68/sIiISABk1FsJDjStBIsEU1PT4CAwdcB1cnKgRw+4+OLAPVNERLq1hOgw4iPDlASLdAv1B2Fs2dL4eYGqAwbYuRNeeAGuugqiAz+1R0REuiczo19ytMohRLq8lgzCAK8ncCDqgOs88ghUVcF11wXmeSIiIrW8XsGBT4K1EiwSKM1tgKsTEwOPPx64BLiqyku4TzsNBg8OzDNFRERqpSdHk1dQhmusRaifKAkWCYTmNsBBYKbBNeTVVyEvT23RREQkKILVK1jlECKB0NwGuMzMwHWBOFxODvTrB+eeG5zni4hItxasXsFaCRYJhMZGIUNgN8AdbsMGeOMNb5U6TD8Ti4hI4AWrV7CSYBF/qusE0VidU6A3wB3uoYe8GK69NjjPFxGRbi9YvYJ9svRjZpuBIqAaqHLOZfviviKdWktGIQczAT50CB57DM4/H/r2DU4MIiLS7QWrV7Avf/95inNurw/vJ9I55eZ6NcBN9QDOzPRKIIKVAAP861+wb582xImISFAFq1ewyiF8zDnHokXbgh2GBEvd6m9TCXDdKOQmEuDi4gqWLNnp+/jqy8mBIUNgwgT/PkdERKQZXq/gwK4E+yoJdsCbZvaZmc1s6AQzm2lmy8xsWX5+vo8e27F88cU+xo+fz6mnvsi77+YFOxwJhua6QECLRiH/v/+3ipNOeo4rr3yL/Hw/fFNYuRKWLPFWgc18f38REZFWCEavYF8lwWOdc8cBZwI/N7Nxh5/gnJvlnMt2zmWnpKT46LEdQ3l5Nf/n/3zMqFHP8OWX+3n44QmMG9cv2GFJINVtgGtqBRha3AnilluO5de/Po6nnvqa4cOfJDd3nW+/MeTkeOORp0/33T1FRETaKBi9gn2SBDvndtR+3gO8AIzxxX07g1Wr8snOfpa77lrK1KmDWbfucq699khCQrS61i3k5kKvXnD55c0nwK0YhBEXF8Gf/jSWlSunMmRIEpdf/iZTprzKnj0+qJcqLPTivvRSSE5u//1ERETaKT0IHSLanQSbWayZxdd9DZwOfNHe+3Z0zjn+8Y9VjBkzj717y3j55XOYO/d0evaMDnZoEih19b/79jV9XkwMPPlks3XADRkxogfvv38h99wzltdf38qxxz7Nv//dRM/hlnjiCSgp0Ya4bsrM+pvZAjN71MxuD3Y8IiIQnF7BvlgJTgU+MLNVwKfAq865131w3w6rsLCCiy56jZtvXswZZ2Ty+efTOOecAcEOSwIpNxeuuKL5+l8fjEEODQ3httuOY+nSi0lOjuT001/i97//hJqaNpRHOOeVQhx/PIwe3eaYJDhqE9c9ZvbFYccnmdk6M9vQgsR2CN736auBEX4LVkSkFYLRK7jdLdKccxuBY30QS6ewceNBzj33FdatK+AvfxnLbbeNwrSxCICionLy8orYsaOI/PxS9u4t5cCBcgoLyykqquDQoSrKy6uprq759prw8FAiIkKIjg4nISGShIQIkpOjSEmJpXfvGPr1i6dv33iiojrQNLMbb/QSyeb4eBTy0Uf3YunSS7jxxne5885PWbEinyefPJ24uFaMmHz/fVizBmbP9llcElBzgH8Cc+sOmFkocD9wGpAHLDWzBUAo8H8Pu/5qYAVwh5ldAjwRgJhFRJoVjF7BHSiz6PiWLNnJeee9Qk0NvPnmZCZMyAh2SAFXXV3DunX7+OKLfL74Ip916/axYUMB33xTwMGD5Q1eEx0dRlxcBFFRYURGhhIW5v0CwjmorKymvLyasrIqiorKqaysafAeqamxDBqUzKBBPRg+vCdHHZXC0Uf3JiMjIbA/hOTmwoMPNn+en0Yhx8aGM2fOqRx3XAq33voB48bN59VXzyUtLbZlN8jJgaQkrx5YOh3n3GIzyzrs8BhgQ+2CBGb2DDDZOfd/gXMOv4eZ/X/A72rv9RzwWEPPqu30MxOgfws6moiItEcwegUrCW6hN9/cyvnnv0rfvrG89tp5DB6cFOyQAmLfvlI++GAb77+/jU8+2cHy5bsoLfV2boaEGAMGJDFoUDInntiPzMxEMjIS6Ns3jpSUGFJSYkhKiiI8PLTFzzt0qIr9+8vIzy9lz54Stm8vYtu2QjZvPsg33xTw1lsbefzx1d+e36tXDKNHp3Hiif0YN64/J5zQl+jocJ//OXzrjjsaH4Fcp2dPuPdevw3CMDNuvnkkQ4Yk8dOfvs7Ysc+xaNH5DBiQ2PSFu3fD8897K9kxMX6JTYKiH1C/OXkecEIT578O3Glm04DNjZ3knJsFzALIzs4OXM8iEem2vF7BSoI7lIULNzNlyqsMH96DN96YTGpq100gqqtrWLJkOwsXbuD1179hxYrdAERGhnLccX249tqRHH98H445pjfDhvXyeZlCVFQYfft6JRCNOXjwEF98kc+qVbtZtmwnS5fu5PXXv8E5iIgI5cc/zmDSpIGcffYghg/v1f6V4roJcFu3tiwB3huYwYlnnpnFO+9M4YwzXmLcuPm8++4FHHFEE4nwo49CZSVcf31A4pOAaegveKN/UZ1zXwAX+S8cEZG2SU+O5uON+3DOBeS3vEqCm/H229uYMuVVjjqqJ2+9dT49ekQFOySfq6lxvP/+Vp555kvmz1/Hnj0lhIYaY8dmcNdd4zn55ExGj04jMrJj/HVJTIxi7NgMxo79rhzlwIFDfPjhNt55ZwtvvrmJX/3qbX71q7cZOrQnP/3pMKZNO4rhw3u1/mE33uiVP7SkR294uLcCHECjR6fyzjtTmDjxRU45ZT4ffngRGRkN/ABRXQ0PPQSnnALDhgU0RvG7PKB+bVY6sCNIsYiItFn9XsFJMa3Y79JGHSOr6aA+/3wvU6YsZPDgpC6ZAO/aVczs2St59NFVbNx4gJiYcM4+exAXXjiMSZMGkpjYef57k5KiOPvswZx99mAA8vIKWbDga5577iv++MeP+J//+ZATT+zHNdccy7RpRxET00zJRG4u3Hxz8+3P6sTGekmmn0ogmnLssSm89db5nHzyfM4662U++OBCEhMjv3/Sa695fYzvuSfg8YnfLQUGm9kAYDtwKTAtuCGJiLRe/V7BgUiCfTUxrsvJzy/j3HNfIS4unNdfn9ylEuA1a/K56qqXycz8J//1X++RmZnIE0+cx549tzBv3gVccsmITpUANyQ9PYEbb8zm7bcvZ/v2X3DPPRMpLCxnxoyFZGTcx3/917vs2VPS8MUt7f9r5nWAePJJKC4OSgJcZ9SoFObPP4uvvipg6tQ3vteBA/A2xKWlweTJwQlQfMLMngaWAEPNLM/MrnHOVQE3AW8Aa4F5zrk1wYxTRKQtAt0rWElwA2pqHJdd9ga7dpXy0ktnk54eF+yQfGL9+v1ceukLHHXULObNW8uMGSNZt+563n77ci6//GhiY/3/U1cw9OkTx223ncgXX8zkvfd+xrhxGfzxjx8yYMD93H772xTUtWO58UYIC/Omv7Wk/29NTZsGYPjLxIkZ3HffOF57bQt33bX0uzc2bfJWgq+91ivZkE7LOTfVOZfmnAt3zqU752bXHl/onBvinDvCOef7tiQiIgEQ6F7BKodowN//voK33trGrFmnkJ2dGuxw2q2oqJzf/W4x9923jIiIUH7725O49dYT6Nmz627wa4iZMW5cf8aN68+6dfv4wx/e53//dwmzZq1gZe9nyVi3tMEdRg3cyC/tz3zhuuuOYsmSXdx111JOP70/J52U5g3rMIMZM4IdnoiISKMC3StYSfBh1q8/wB13fMzkyQO49tojgx1Ou73++jfMmPEq27cXce21I/nDH8bTp0/XWNluj6FDe5Kbez5/PGoHif/n1yQWFLc8Ab7++g6z+ns4M+Of/xzPe+9t56qr/s2qTy8gavZsOPdcyOh+fa1FRKTzCHSvYJVD1OOc4xe/eI/IyFByck7p1JPgKiurufXWtzjzzGeIj4/kww+nM2vW2UqAwav5zcoCMzLvuImkqhYmwD17whNPwAMP+DnA9omPj2DWrAl8/fUBXpvxd8jP90o9REREOjivV7BWggPurbe28frrW/nrX3/c8glcHVBBQRkXXTSft9/ezE03ZfOXv0zsWGOHg+nwkcctaX2WmemVP3TQ1d+GnH56f6ZMGUjq8zdTlTWQsFNPDXZIIiIizQpkr2CtBNfz+99/Sv/+8fz858cEO5Q2y88vYfz4J3n//a3MmXMu9913hhLg3Fzo1csrZaifADfDATXXX9+hNr+1xl+vTOKkmm94I2sShOj/6iIi0vHV7xXsb908O/rOp5/u4qOPdvKPf4wjMrLlY347kuLiCiZNeob16/fz2muXMnHigGCHBHilGdu2FbJ3byn79pV+O3YZICEhkp49Y0hNjaVv33jf/tTXmkEXh3HAmwxkXsXZPBKgyTW+NuCNp6gICeemzwZyckklsbHqDCEiIh1bIHsFKwmu9cgjXxIbG8706cODHUqbOOe44ooFrFq1mwULLg5aAuyc4+uv97Fo0SYWL97C6tW72bBhP5WVNc1eGxsbzrBhvTjuuDROPjmLCRMGtL2GOTkZDhxo27U9e2L33ssHX/Xj0f/5kBEjenHbbSe27V7BUlwMTzxBwannsfnNCJ5/fgNXXNE5/26LiEj3Ub9X8FH9Ev36LCXBeCuVzz23gSlTBpKQ0Dl75T700HJeeGEdf/3rqZx11qCAPz8/v4Q5c1by2GMrWbt2LwD9+sWTnd2XyZOHMnhwT3r3jqVXrxhiYsIx8/oxFxaWs29fGTt3FvHVV3v58su9zJu3hocfXg7A+PGZXH31KC6++MiWl3UceWTbEuDDan//4BxffrmX229/hwkTshg1qk/r7xksublQVETvO29jwPqveeaZ9UqCRUSkwwtkr2AlwcCSJbsoKChnypSBwQ6lTfbvL+M3v3mXiROz+M//HBPQZ5eUVPA//7OYv//9Y8rLqxk7NoMHHjiL0047giOOSG5TGUF1dQ0rVuzitdfW88QTq5k+/UV++cu3+OMfJ3DVVaMICWnmnl9+2boHhoTA3Lk/qPs1Mx555GyGDXuIX/ziTRYv/lnnKItwzutgMXIkduKJTJ5cRU7O55SWVjY/LlpERCSIEqLD6BEbwbpdRX5/lnbLAIsX7wDglFPSgxxJ2zzwwGccOHCIv/3t1IAmaZ98ksfRR+fwpz99yMUXH8maNTfywQdXc8MNoxk0qEebYwkNDSE7uy///d/jWbfuJhYtuoLBg3tw7bUvM3HiXHbs8OH/MXr2bDABrpOcHM2dd/6EDz7YxnvvbfXdc/1pyRJYvRpuuAHMOPXUdMrLq/n0093BjkxERKRJZsax6Yms3NbGksZWUBIMLF++hyFDkkhOjgp2KK3mnGP27JWcdtoAjjkmcNPtPvkkjwkT5uIcLF58JXPnTmHEiBSfP8fMmDBhAO+/fxWPPHIuS5duZ9y4x8jPL2n7TWNj4cknvRXTvXub7fxw5ZXHkJwcxSOPrGz7MwMpJwfi42HaNADGjPHKOJYvzw9mVCIiIi0yqn8yG/KLKTzk3w4RPkmCzWySma0zsw1mdrsv7hlI69cfZPjw5GCH0SZr1+5l8+aDXHxx4Oo9S0oq+OlP/0Vqaiwff3wNP/lJpt+faWZcc81xvPXWz8jLK+Taa19u/OQRIxp/74YbvE1jrWh5Fh0dznnnDeG1176hpqb1nSYCau9emDcPrrgC4rxNhSkp0fToEcX69f7/qVpERKS9RmYk4Rys3nbQr89pdxJsZqHA/cCZwAhgqpk1kYV0PDt3ltC3b+ecpLZ8+S4AfvSjwJVyPP74KrZtK2Tu3Cmkprb8z23z5gOcfvoTJCX9iaSkP9Gjx5+ZMWMBZa3oBfijH2Vw550ns2DBOlavbuTX+2vW/DARDg31Vn/bOO3tpJP6sX9/Gdu2Fbbp+oB57DGoqPCS/Xr69Ytl5852rJ6LiIgEyLEZSQCs3Fbg1+f4YmPcGGCDc24jgJk9A0wGWrk7KXiKiiqIj++cG4Z27fISm4yMhIA9c/HiLWRlJfHjH/dv1XXTpj3PsmU7mDHjOMLDQykoOMQjj6wgOTma//3f01p8n5/97Bh+85tFLF68pfESkDVrWhVbc9LTvT/fnTuLycz0b8uWNqup8foijxvndcioJyEhgqIi/zceFxERaa/E6HAG9Y5jxVb//gbTF+UQ/YBt9V7n1R77HjObaWbLzGxZfn7Hqk3sFDv+OxAzw7VhAEVYWAjOwZo1+ZSVVX47NCMsrHV/DetKEvQ/22HefBM2bvzBKnAd/XmJiEhnMTIjiRXbDrQp32gpXyTBDf3T+oOInXOznHPZzrnslBTfb6Bqj7i48E67SpaW5pUjbN3q37qZ+k4+OZMtWw7yzjubWnXd009fyPTpx5KXV8iCBV+zZMk2fvGLMfzud+NbdZ85c1bWxpHVquvao+7Pt0OXzeTkQO/ecMEFP3jr4MEK6DOlBAAAFNFJREFU4uM7Zw9saR8zG2hms83suXrHYs3scTN72Mw630xwEenyRvVPYn9JBdv2+69fsC+S4Dwgo97rdGCHD+4bMH37xpKXVxzsMNrk+OO9nf8ffZQXsGf+7GfHMmBAEtOnv8j27S2vke3XL4FHHjmPDRt+wc6dt5GXdyv33nsmkZEtr8p5773N3HXXYi66aARH/v/t3Xl4VPW5wPHvm5CFQAgQAoQlCSACArKDwqMSFUIFVBAsFfsUNYpU1OLtvSj0Wjes11uvRbQiuwsVLRWFFFBki1ZFkCVSQFmEsMSwhiVg0iTv/WMGpCGRkMzMmTN5P88zT2bOhDnvO5zzyztnfkv7hpUJv1I++2w/DRrEBLTbySXJzoaMDLjnHoi8sNjdv/8UiYm1HAjMVIWIzBKRgyKyudT2Cg9GVtVdqnpPqc1Dgfmqei9ws4/DNsaYKuvs7Re8wY/9gn1RBK8FWotICxGJBEYAC33wugHTunVdtm3zb+drf2nTJp5Wreoxb17gumDHxEQwf/7t5OX9QK9eM1i2bKff91lSorz88pcMGDCXVq3q89prg/y+z7NOn/4XCxd+y8CBlwVv15np0z1Tvo0efcFTubmnOXasgNatg7Qvs/kpc4AB528obzCyiHQUkYxSt/I+KTbjx25sxX6K3RhjKq1No1hqRoT7tV9wlYtgVS0CxgIfAluBd1XVt6OS/KxbtwS2b8/jyBH/L9HnayJCenpnVq7cw/r1OQHbb9euiaxePYratSPp3/8thg171y/7Ly4uISPjW3r2nM6DDy6hb98UVq8eRf36NX2+r/LMmLGR48cLSE/vHLB9XpLCQk8RPHCgZ+nnUs4uktGtW+CunBvfUNVM4GipzecGI6tqITAPuEVVv1bVQaVuB8t56X14CmEo5+9AMI/jMMaEvhrhYVzZLI4Nflw0wyfzBKvqYlW9XFVbqeokX7xmIF13nWcc34oVgetS4EtjxnQlPr4mv/nNsoDOY9ulSyIbN97Pk0/2ZenSHXTrNo2uXV/jhRc+Iysrt9KxFBYWk5m5hwkTlpOSMpnBg98mNzefuXOHsnjxHTRsGLiv9Q8fPs1TT31CamoyffoE6YqC778PubnlDoj7+OO9REeH06NH4BZTMX5VocHIZ4lIvIhMBbqIyGPeze8Bt4nIq0CZk24H8zgOY0z10DmpLlsPnKCgyD9fWPliijTX69WrMfHx0SxYsIvhw1s7Hc4li4uL5vnnr+eee/7O889/zqOP9g7YvqOja/D449fx0EO9eOutLGbP3shvf7sMWEZ8fE26dk2kXbsGtGxZjyZNYomPj6FWrQhEhJIS5fjxHzhy5Aw5OSfZtu0wW7ceZv36HM6cKSIsTEhLa8WLL6Zxyy1tiIgID1he4OmCcdddizh5spDJk/sHb1eIV1+FlBRIS7vgqZIS5f33d3Hjjc2pWdNO9xBRocHI555QPQLcX2pbPnCXj+Myxhif6tK8Hq8V7+KfB07QNcn3i5rZX0U8U3QNH34Zr7++jby8AurWjXI6pEt2112d+Oij75gwYSVt2tRnyJC2Ad1/3brRjB3bk7Fje5KdfZwVK74jM3MPWVm5zJy5gTNnii56ZbhBgxjatWvAvfd25frrW3DttcnUqxe4bg+ljR+/goyMHUyZ0p+OHYO0K8HWrbBqFfzhD54FQUpZvXo/2dknefbZqwMfm/EX1w9GNsaYiuiS5B0cl51nRbA/pae3Z+rUzcyevYVx47o4Hc4lExFmzRrEnj3HGTHifd577zYGDnTmqnZSUhyjRnVm1ChPH9qSEuXgwXwOHcrnyJEz5+YHBoiLiyI+PoaGDWsFtJ/vT1FVnnrqE/74xy/49a+78cAD3Z0OqXxTp3pmg7j77jKffvnlLOrVi2Lo0FYBDsz40bnByMB+PIOR73A2JGOM8b1GdaJpEhfNRj/1C7Yi2Ktbt4Zce20TXnhhA2PGdCQ62n1vTUxMBIsX/5x+/f7CLbf8lZdfTuP++7s5HRZhYULjxrVp3DiI59j1KiwsZuzYpUyfvpFRo65kypS04O0GkZ8Pc+bAsGGe+YFL2bLlKAsW7OSxx7pbVwiXEpG3gb5AAxHZB/xeVWeKyNnByOHALLcNRjbGmIrqnFSXDdn+mcHLJwPjQsUTT/Ri//58Jk/e5HQolVavXk1WrryTtLSWjBmzlPT0DPLzC50OyxWys4+TmvoW06dvZMKE3sycOYiwsCAtgAHefhtOnCh3QNz48f8gNjaSceOCdFYLc1Gq+gtVTVTVCFVtpqozvdtdPRjZGGMqqkvzeuw7doZDJwt8/tpWBJ8nNbUZgwe34Jln1rJ370mnw6m02NgoFi68nYkT+zBz5iY6dZrBqlV7nA4raJWUKNOmradDh2lkZR3knXeGMGlSanAXwKqeAXEdOkCfPhc8nZHxHRkZu/nd73rQoEFwdDMxxhhjLtXZfsH+6BJhRXApkydfQ0mJMnr0Sr+uV+1v4eFhPPNMX1auvBOA1NS3+OUvPwjo8spusGbNfq655g1Gj15C9+6JbNqUzu23X+F0WBe3di2sX++5Clyqu0ZeXgFjxqyiffv6PPxwJ4cCNMYYY6quQ9M4aoQJG/2wcpwVwaW0aBHHc8/1ZsmSPbzySpbT4VRZ377JZGXdy4QJvfnrX7dy+eWvMm7cMnJy3Hul2xeysnIZOnQ+V101hx07jjF79iCWLx9Jy5a+H33qF6++CrVrw513/ttmVeX++1eSk5PP7Nk3EhkZ2GnljDHGGF+KjginXWIdv6wcZ0VwGR544EoGDkzhkUc+5bPPArcKm7/ExEQwaVIq3347hjvuaM9LL60lJeUV7r57EVlZuU6HFzAlJcqHH+5kwIC36dRpBsuX7+bJJ69lx44xjBrVKXgHwJV29CjMm+cpgOvU+benXnppE++8s52nn77KFscwxhgTEjo3r8umvXkU+3hBMCuCyxAWJrzxRj+SkmIZMuTvfPddaHQhSEqKY9aswXz77RjS0zszb94WOnWawdVXz2HatPXk5f3gdIh+sWfPcZ5++hNat/4zAwbMIyvrIJMm9WX37gd4/PFriI112bzQc+bADz9cMCBu8eLdPPLIp9x6a0vGj3d+VhBjjDHGF7ok1SW/sJgdB0/59HXFiX6v3bt313Xr1gV8v5dq27aj9O49n4SEmnzyyW00bBjjdEg+dfToGebMyWLmzI1s2XKYiIgw0tJactttbbnppssCujyxL6kq27cfZeHC7fztb9v44ov9AKSmJpOe3pnbbmtLVJRLpwwrKYG2bSEhAf7xj3Ob16z5nhtueJ/LL69LZuZQateOdDDI0CYiX6lqEE8e7XtuabONMaHpu8P5pP5xFc8N7ciInkmX/O/La7ddWgkERtu29Vm0aBD9+n3ADTe8z/Llt4ZUIVy/fk0eeaQX48b1ZN26HObN28L8+VvJyNgBQPfuifTv34Lrrkumd+9mQV1Y5eaeIjNzL6tW7WHp0p3s2uXpO9SlSyOefbYvI0a0p0WLug5H6QMrVsD27fD44+c2rV2bS1raBzRqVJPFiwcH9f+TMcYYc6lS4mPof0Uj6tfy7d83uxJcAcuX72Xw4AxSUmJZtuxWmjYN/kUfKktVWb/+e5Ys2cmSJTtZs2Y/xcVKeLjQoUMCPXo0oVu3xlx5ZSPat29AXFx0wOPLzc3n668PkpV1kLVrc1i79sC5ordWrQhSU5NJS2vJwIGtQ6PwBZg7FyZOhD17ICwMZs6EUaP49NMDDBy4iPj4aFatGkpSUqzTkYY8uxJsjDHuUl67bUVwBa1evZ9BgxZRv340ixcPpn37eKdDCohTpwr5/PN9ZGZm8+WXOaxbl8PRo2fOPZ+YWJvLLqtHq1b1SE6Oo3nzOjRpUpuEhBgSEmpRr140tWtHVmjO3aKiEk6eLODIkTMcOnSaQ4dOs3//SbKzT7B7dx47dx5jx45jHDv2Y9/lpKQ69OjRhF69mnDddUl06dKYiIgQmxFh7ly47z44ffrHbTExrL3vGa6dGkVSUiwff3wrzZv7oAA+W2xnZ0NSEkyaBCNHVv11Q4gVwcYY4y5WBPvA+vUHGThwEadPFzFvXho/+1mK0yEFnKqyZ89xNm8+xObNh/jmmyPnitPvvz9FeYdT7dqRREWFExUVTnh4GGFhgqpSWFhMQUExP/xQxJkzRWX+2xo1wmjevM65YrtduwZ07JhAhw4JJCS4s9/yJUlJ8VwBLuUwtfhT63v5z4lXEdewDkRFQWSk52d59yMjPbeyZsIop9hm2jQrhM9jRbAxxriLFcE+snfvSW6+OYNNmw7z5JO9mDixR3CvLBZAhYXF5OSc4sCBk+eu5B4/XsCJE55bQUExBQVFFBfruWI5MjKMyMhwoqNrEBcXRWxsFPXrR3uvJMfQtGksjRrVrt7vcVgY5X66qKyzxfD5RfK+fVBUxgeR5GTYvdu3+3cxK4KNMcZdbGCcjzRvHsunnw5j9OiVPP74GjIzD/DGG/1ITKwGVyQvIjIynOTkOJKT45wOJbQkJZV5JVibNEE++ggKCqCw8N9/lnf/p55/882y95+d7ecEjTHGmMCzIrgSatWK4M03+9G3b1MeeiiTjh3/wtSpqQwbdpnToZkQVPTU05Sk30fkv86bxzkmBnn+eWjf3nc7yswss9gm6dKnozHGGGOCXZUWyxCRJ0Rkv4hs9N5u8lVgwU5ESE9vz1df/ZwWLeowfPgShg9fwvff5zsdmgkhGzYcouefIhj1r+EcimmIini6J/ijn+6kSZ4+wOeLifFsN8YYY0KML1aMe1FVO3tvi33weq7Srl19Pv98OM8+ezWLFn1H27ZvMWXKJoqKSpwOzbhYXl4BDz+cSffu75CTk8/w935PQn4uUlLi6Z/rj4FqI0d6iuvkZM/AOX8V28YYY0wQsGWTfaBGjTAee6w7WVm/oFevxjz0UCaffZbjdFjGxf785yymTNnE6NEd2LJlJEOGtArMjkeO9BTZ/iy2jTHGmCBQpdkhROQJYBRwAlgH/IeqHivnd+8D7vM+bAN8U+kdV1wD4HAA9hMooZRPKOUClk+w82U+yaqa4KPXcgUROQSU0WH8okLhOAqFHCA08giFHCA08nBbDmW22xctgkXkY6BxGU9NBL7A8yYo8DSQqKp3Vz1W3xCRdaE0lVEo5RNKuYDlE+xCLR+3CIX3PRRygNDIIxRygNDIIxRygArMDqGqN1bkhURkOpBR5YiMMcYYY4zxs6rODpF43sMhwOaqhWOMMcYYY4z/VXWe4OdFpDOe7hC7gdFVjsi3pjkdgI+FUj6hlAtYPsEu1PJxi1B430MhBwiNPEIhBwiNPEIhB2eWTTbGGGOMMcZJNkWaMcYYY4ypdqwINsYYY4wx1U61KYJF5LcioiLSwOlYKktE/ldEtolIlogsEJG6TsdUGSIyQES+EZEdIvKo0/FUhYg0F5GVIrJVRP4pIg87HVNViUi4iGwQEdfP9iIidUVkvve82SoiVzsdU3XhxvNcRGaJyEER2XzetvoiskxEtnt/1nMyxospr01yYR7RIvKliGzy5vGkd3sLEVnjzeMdEYl0OtaLKd2mujSH3SLytYhsFJF13m2uOqbKUi2KYBFpDvQDsp2OpYqWAR1U9UrgW+Axh+O5ZCISDrwC/Ay4AviFiFzhbFRVUoRnkZh2wFXAAy7PB+BhYKvTQfjIZGCpqrYFOhE6eQU1F5/nc4ABpbY9CixX1dbAcu/jYFZem+S2PAqA61W1E9AZGCAiVwH/A7zozeMYcI+DMVZU6TbVjTkApKpq5/PmB3bbMXWBalEEAy8C/4VnFgvXUtWPVLXI+/ALoJmT8VRST2CHqu5S1UJgHnCLwzFVmqrmqOp67/2TeBq6ps5GVXki0gwYCMxwOpaqEpE6wLXATABVLVTVPGejqjZceZ6raiZwtNTmW4DXvfdfB24NaFCX6CfaJLfloap6yvswwntT4Hpgvnd70OdRuk0VEcFlOfwEVx1TZQn5IlhEbgb2q+omp2PxsbuBJU4HUQlNgb3nPd6Hi4vG84lICtAFWONsJFXyJzwfGEucDsQHWgKHgNneryJniEgtp4OqJkLpPG+kqjngKTCBhg7HU2Gl2iTX5eHtRrAROIjnm9CdQN55F4PccFyVblPjcV8O4PkA8pGIfCUi93m3ue6YKq2q8wQHhYss7TwB6B/YiCrvp3JR1Q+8vzMRz1decwMZm49IGdtcfYUeQERqA38DfqOqJ5yOpzJEZBBwUFW/EpG+TsfjAzWArsCDqrpGRCbj+bruv50Nq1oIyfPcTUq3SZ4LkO6iqsVAZ+/4lwVAu7J+LbBRVVw5bapbz40+qnpARBoCy0Rkm9MB+UJIFMHlLe0sIh2BFsAmbwPQDFgvIj1V9fsAhlhhF1umWkR+BQwCblB3TvK8D2h+3uNmwAGHYvEJEYnA88dmrqq+53Q8VdAHuFlEbgKigToi8paq3ulwXJW1D9inqmevzM/HhX3WXCqUzvNcEUlU1RzvKqkHnQ7oYsppk1yXx1mqmiciq/D0ca4rIjW8V1KD/bi6oE3Fc2XYTTkAoKoHvD8PisgCPF2eXHtMnRXS3SFU9WtVbaiqKaqagqdh7hqsBfDFiMgAYDxws6qedjqeSloLtPaOjo0ERgALHY6p0rz9u2YCW1X1/5yOpypU9TFVbeY9V0YAK1xcAOM9z/eKSBvvphuALQ6GVJ2E0nm+EPiV9/6vgA8cjOWifqJNclseCd4rwIhITeBGPP2bVwLDvL8W1HmU06aOxEU5AIhILRGJPXsfz7frm3HZMVWWkLgSXI28DETh+SoC4AtVvd/ZkC6NqhaJyFjgQyAcmKWq/3Q4rKroA/wS+Nrbdw1ggqoudjAm86MHgbneQmwXcJfD8VQLbj3PReRtoC/QQET2Ab8HngPeFZF78MwwNNy5CCukzDYJ9+WRCLzunWkkDHhXVTNEZAswT0SeATbgHfjqMuNxVw6NgAXeuqMG8BdVXSoia3HXMXUBWzbZGGOMMcZUOyHdHcIYY4wxxpiyWBFsjDHGGGOqHSuCjTHGGGNMtWNFsDHGGGOMqXasCDbGGGOMMdWOFcHGGGOMMabasSLYGGOMMcZUO/8PINDNx3CJfZkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 864x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ps = np.array(ps)\n",
    "plt.figure(figsize=(12,4))\n",
    "plt.subplot(121)\n",
    "plt.contour(X, Y, Z, np.arange(10)**5, cmap='jet')\n",
    "plt.plot(ps[:, 0], ps[:, 1], '-ro')\n",
    "plt.subplot(122)\n",
    "plt.semilogy(range(len(ps)), rosen(ps.T));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.6.3 Nelder-mead simplex\n",
    "\n",
    "- Nelder-Mead is a zero-order method (no derivatives necessary)\n",
    "    - Requires only function itself \n",
    "    \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       " final_simplex: (array([[0.99998846, 0.99997494],\n",
       "       [0.99994401, 0.99989075],\n",
       "       [1.0000023 , 1.0000149 ]]), array([5.26275688e-10, 3.87529507e-09, 1.06085894e-08]))\n",
       "           fun: 5.262756878429089e-10\n",
       "       message: 'Optimization terminated successfully.'\n",
       "          nfev: 162\n",
       "           nit: 85\n",
       "        status: 0\n",
       "       success: True\n",
       "             x: array([0.99998846, 0.99997494])"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ps = [x0]\n",
    "opt.minimize(rosen, x0, method='nelder-mead', callback=reporter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ps = np.array(ps)\n",
    "plt.figure(figsize=(12,4))\n",
    "plt.subplot(121)\n",
    "plt.contour(X, Y, Z, np.arange(10)**5, cmap='jet')\n",
    "plt.plot(ps[:, 0], ps[:, 1], '-ro')\n",
    "plt.subplot(122)\n",
    "plt.semilogy(range(len(ps)), rosen(ps.T));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.6.4 Powell's method"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "   direc: array([[3.62381017e-02, 7.42105813e-02],\n",
       "       [3.31274020e-09, 5.93345832e-09]])\n",
       "     fun: 2.4158865222393487e-30\n",
       " message: 'Optimization terminated successfully.'\n",
       "    nfev: 535\n",
       "     nit: 18\n",
       "  status: 0\n",
       " success: True\n",
       "       x: array([1., 1.])"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ps = [x0]\n",
    "opt.minimize(rosen, x0, method='Powell', callback=reporter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ps = np.array(ps)\n",
    "plt.figure(figsize=(12,4))\n",
    "plt.subplot(121)\n",
    "plt.contour(X, Y, Z, np.arange(10)**5, cmap='jet')\n",
    "plt.plot(ps[:, 0], ps[:, 1], '-ro')\n",
    "plt.subplot(122)\n",
    "plt.semilogy(range(len(ps)), rosen(ps.T));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3. Local & global minima"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.1 One dimensional minimization\n",
    "### 3.1.1 Random start point\n",
    "- Yields only local minimum"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "f = lambda x, offset: -np.sinc(x-offset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.lines.Line2D at 0x7ff544d0e150>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(-20, 20, 100)\n",
    "plt.plot(x, f(x, 3))\n",
    "plt.axvline(scipy.optimize.minimize_scalar(f, args=(5,)).x, c='red')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.1.2 Random start point\n",
    "- Yields global minimum"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "lower = np.random.uniform(-20, 20, 100)\n",
    "upper = lower + 1\n",
    "sols = [scipy.optimize.minimize_scalar(f, args=(5,), bracket=(l, u)) for (l, u) in zip(lower, upper)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "idx = np.argmin([sol.fun for sol in sols]) #sol.fun\n",
    "sol = sols[idx]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD4CAYAAADvsV2wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dd3yT17nA8d+j6Q0YbDAbwl5hGEggZEKbkEF2k44kzeC2SW6bNmlLmqa3bdreNh25HWlamkVGk2aRkNUMshhhmL2DwQyzbLO8kGxJ5/4hyci2li2DLfv5fj58LEvvq/cgv3p09JznPUeMMSillGr/LK3dAKWUUqeHBnyllOogNOArpVQHoQFfKaU6CA34SinVQdhauwGRdOvWzfTv37+1m6FU8ti2zf9z6NDWbYdqVatWrSozxuSEe6zNBvz+/ftTUFDQ2s1QKnmcf77/5yeftGYrVCsTkd2RHtOUjlJKdRAa8JVSqoPQgK+UUh2EBnyllOogNOArpVQH0SIBX0QuFpFtIlIoInPCPP59EdksIutFZKGI9GuJ4yqllIpfwgFfRKzAo8AlwAjgRhEZ0WCzNUC+MWYM8ArwcKLHVUop1TQt0cOfBBQaY3YaY2qAF4FZoRsYYz42xlQHfl0G9G6B4yrVrq3afZR1e4+1djNUO9ISAb8XsDfk9+LAfZHcBrwb7gERmS0iBSJSUFpa2gJNUyp5/fzNTdz38rrWboZqR1oi4EuY+8KuqiIiXwfygd+Fe9wYM9cYk2+Myc/JCXtlsFIdxoHjLraXVLLv2IkWe05jDHuPVKMLH3VMLRHwi4E+Ib/3BvY33EhEpgMPAFcYY9wtcFyl2i2P10dZpf9t8um2lvu2u3FfOdMe/phHPviixZ5TJY+WCPgrgcEiMkBEHMANwILQDURkHPAP/MG+pAWOqVS7VlZZQ7AT/ukXLfeWOVjuAuDPHxXy+KKdLfa8KjkkHPCNMR7gbuA9YAvwkjFmk4j8QkSuCGz2OyADeFlE1orIgghPp5QCDgUCc4+sFJYUHqbW62uR561yewAY37czv3x7Cy+u2NMiz6uSQ4vU4Rtj3jHGDDHGnGGM+VXgvp8aYxYEbk83xnQ3xowN/Lsi+jMq1bEFA/61E3pT6fawavfRFnneikDA/+tXx3PekBzun7+BDcXHW+S5VdunV9oq1QaVVPjz91eO64XNInz6Rcvk8Std/oDfJc3Br64ahTGwcb8G/I5CA75SbVBJuQuLQP+uaUzo16XFBm4r3bVYLUKK3UJOphOA0gqtoegoNOAr1QYdKnfTLcOJzWrh/KG5bD5QTkkgzZOISpeHDKcNEcFps9I5za4BvwPRgK9UG3SowkX3rBQAzhvivyalJdI6lW4vGc6TC93lZDjryj9V+6cBX6k26FC5m+5Z/pTL8LxMcjOdfNIiAb+WzJSQgJ/p1B5+B6IBX6k2qKTcRW6ghy8inNmnM4WHKhN+3kq3h3Rng4CvPfwOQwO+Um1MjcfH4aoaumem1N2X4bRRXetJ+LmDOfygnAzt4XckGvCVamOCPe7cQEoHINVh5USNN+HnrnB7yAhJ6XTLdFJd4627IEu1bxrwlWpjgtU43UMCfrrDSnULBPwqt4fMBj180NLMjkIDvlJtzKHyQA8/JKWT6rBxotaLz5fYLJeNUjrBWnzN43cIGvCVamNKKoI9/JMBP81hxRhweZrfy/f6DFU13kaDtqA9/I5CA75SbcyhchdWi9A13VF3X5rDCpBQWqeqxp+nb1iWCWgtfgehAV+pU8RV6+Xel9ax/VBFk/Y7VO4mN9OJxXJybaE0hz9IJzJwG5xHJzSl0yXNgdUi2sPvIDTgK3WKrNx1hFdXFzPntQ1NWmHqUEgNflCL9PADlTihVTrBbxLxBnxjjK6WlcRssTdRSjVHcErjVbuPMn/NPq4e3zuu/UrK3fTrmlbvvtRAwA+mZZojODVyaA8fmna17Q1zl7HlQDnD8rIY3iOTayb0Zkzvzs1ukzq9tIev1Cmyes8xBudmcGafzvzvu1upcNXGtV/oPDpBaXZ/wG/plA5At4z4rrZ11XpZuesIfbLT8Hh9vLByL798a0uz26NOPw34Sp0CPp9hzZ6j5PfP5udXjKS0ws1fPiqMuZ+r1sux6tp6NfhAXWVNIimdyjApHYi/h7/rcBU+A7PPHchrd07lhol92LT/eMKlour00YCvVBSHK918uPlQk/PWO0orqXB5GN+3M2P7dOb6/N48ubiIHaXR58MJBt6GOfzUuhx+81M6kXr4OZn+GTNjBe7CEn/bz8jJAGBUr05U1XgpOlzV7Dap00sDvlJR/Pqdrdz+TAEPvbWlST3ZYP5+fL8uAPzgy8Pw+AzvrD8Qdb9wNfjQMoO2wR5+ptNe7/6cDCe1XsPxE9FTTjtKqhA5GfBH9+oEwMZ98a2YtaH4OPe/tp4XVuxhZ2mlDv62Ah20VSoCt8fL+5sP0i3DyZNLiih31fKbq0djs8buJ63ec5TOaXYGdksH/L3oHlkpMXvDJ6+yrZ/SSbO3XEon3Wmtd39oLX6XkNr/hgpLK+nVObXu28bg3AycNgsbio8za2yvmMd/fPFO3li7nxdW7AVgWI9M5t85te751KmnPXzVrhlj+OZTK7jt6ZVsPVjepH0Xby+jwuXhd9eO4Z7pg3llVTHffXFtXD3T1XuOMb5vF0RO1tIP6JbOrrJYAT98Dz8YFE8kktJxe0ixWxp9YMV7tW1hSSWDcjPqfrdZLQzLy4prTVyfz7CksIxZY3uy8N7z+N70IWw9WMHiwrK42u6q9fKT1zfwj093UBTjNVSRacBXbZ7b4+X55bvZUHy8yWmAJYWH+XhbKZ9tL+WSPy3iBy+vq0ubxPL2+gN0SrUzdVA37pk+hO9cOIi3Nxxge0n0PPzx6loKSyoZ37d+uWL/bunsOlwddd9D5W7sVqFLWv20i8NmwW6VhHr4FS4PGQ3SORDffDpen2FnaSWDcjLq3T+6Vxab9pXHTHdtPVhBWWUN0wbncEZOBt8+/wwynTY+2noorrb/Z+NBnlu2h/99dysX/P4TZvzxUzY1YfH1T78o5blluzlSVRP3Pu2RBnx1WmzeX84Ti4v4aOshdh+uwtuEfPjji4p4YP5GLv/rYqb+5iN+/uamuvRELE8uKaJbhoMlP7qQ288ZwBtr9/P9f6+LuZ+r1ssHmw/x5ZHdcdj8b5NrJvjr6JfvPBx139V76+fvgwZ0S+NIVQ3HqyPnykvKXeRmptT7ZhCUak9sxsxKt6fetApB8fTw9x09gdvjq9fDB38ev8LtYfeR6B9kiwv9q3WdM6gb4P8AO3dIDgu3lMQ1NvJSwV76Zqex6IcX8LPLR1BW6eaRD7bH3A/8H8B3P7+an7y+kUm/+pDb5xVQsOtIXPuCPz33jSeW89yy3XGfd6GKyqriLsk91TSHn6Q8Xh+llW46pzrizoH6fIbVe45ytLqW6hoPqXYrFw3vjtXSOLg05Kr18uP5Gyg+coIUh5V0h5VbpvRn8sCuMfetcnu445kC9h07UXff4NwMFtx9Tsy2H6mq4e+f7OCCoTnMHJ3H+5sP8fTSXWQ4bdz7paFR991RWslHW0u4Z/pgcrNSeODSEaQ5bPz5o+31VpQKZ9H2MircHi4d07Puvr7ZafTISmFZ0RG+cXb/iPuu2X0Ui8CZDS5I6t/Vn88vOlzF2LTwFyv5a/CdYR9Lc9gSqtKpcnsaVegAZDptOGyWqAG/sNQ/PUTDgD8qZOB2QGC8IpxF28sYlJtBj04nX/MLh+Xy9oYDbNpfzujenSLuu+dwNUt3HObeGUPok53GLVMHcKjCzT8+3cHB4656zxnO44t3UuH28OhXx7Ou+Bivrd7HrU+vZPGcC8lKafyNJ5Sr1st9L61jz5FqFm0v49fvbOGa8b154NLhpNhjv++W7TzM1x5fTorNwnX5fbjp7H4MbPAt6XRqkR6+iFwsIttEpFBE5oR53Cki/w48vlxE+rfEcRNVfLSa+WuKeWD+Bp5cXBR3r9Pj9bGksIy/fVLIt55dxU1ProhZbhe679NLivjev9dy+V8WM+4X7/PHD76IK1VhjOGXb23mrF8vZMhP3uXs//2I83//MXtj9K6CHnxjI9f+/XPueKaA7764ltnPruKRD76Ia9/fvLuV11bvA+D4iVpWFB3h28+vjmvSrUc++IJ9x07w1C0TefXbZ/PAzOFsL6nkicU7Y+776MeFVNV4+PHM4VyX34d/3pTP9OHdeW7Z7pgXIT29ZBcOq4Wvn9Wv7r7Lz+yJMfBWjGqZt9fvp3OanSlnnPxAExEmD8xm+c4jUf9eq/ccY1iPrHqzUgJ1ATFaHv/g8cYXXQWlORPs4bvCB3wRibnyVcOSzKDBuZk4rJaolTrBC7aCvfugC4blIgIfbome1nll1V5ETn7DArhhYh98Bl4u2Bt136NVNTy1ZBeXjs7j0jF5/HjmcJ7+5kTKXR7mLdkVdV+Av35UyM6yKp765kTm3zmFmaPzeHbZbv7+6Y6Y+x487uLuf62mX9c0vjyyB88v382Ff/iUv30S+3qMUyXhgC8iVuBR4BJgBHCjiIxosNltwFFjzCDgEeC3iR43EQeOn2DWo0s457cf871/r+O11fv4xVub+cYTy+sGzSKpcNXyjSdW8LXHl/Pwf7ax5WA564uPcdWjS1i0Pfoi0x6vj++/tI6fvbmZZTsP0znNzqhenfjzwu38/M3NMb/aPvzeNh5fXMSoXp2464JB/PSyEbhqfdz05IqYgfe5Zbt5fvkebpnSnzfvPocPv38e103ozV8/LuT9TQej7vvRVn+v+pYp/XnpW2fzxl1TeXH2WVS6PDz4+saowW9D8XGeXFLEVyf35YJhuUzol80d5w7kyyO789gnO6Lm04uPVvPs57u5dkJvBnfPrLv/jmkDOVpdyyuriyPue6y6hldWFTNrbE+6ZZzsMQ/KzWBEXhYL1u2PuG8wnXPxyB7YGwxwTh7QlbJKNzsjBG1v4IKr8f0a9+D7dk1DhIiDjj6fofjoCXp3SQ37eFqCq15VNFjPNlSstW0LSyrpmu5oVMXjsFkYlpfJhigBf/Xuo7hqfUwbXD/gZ6c7GN+3Cx9tLYm4r9dneGVVMdMG59Cz88nXpV/XdKYO6sqLK/dGfd/8c9FOqmo8fHf64Lr7RvXqxPThuTy+uChqqmXrwXL+/ukOrh7fi2mDcxjXtwu/v+5MLh2Tx2Of7Ija0arx+LjrX6uprvHyj69P4I9fGcvSORdx8cge/OH9L1iz52jEfU+llujhTwIKjTE7jTE1wIvArAbbzALmBW6/Alwk4ZKULcDrM9z38jrWFx8L+/j64mPM+usSdpZU8pNLh/POd6ax8edf5uFrx7BmzzEu+dOiiANJhyvdfPWfy1mx6wi/vHIUa386g09/cAFv3n0OeZ1SueWplcxbuitsAAy2a8G6/fzw4qF8fv9FPHvbZJ65dRK3Th3A00t3Mee19RG/ZTy1pIjHPtnBVyf35Z83TeDeLw3l1nMG8OQt+Rw4foJbnloR8eRdUXSEny3YxPlDc3jwshGM7t2JQbkZPHTlKMb07sS9L61jZ4RvKCXlLu57eT3D87KYc8mwuvsHd8/knhmDeXfjwYi9ZY/Xx5zX1tM1w8mPLh5W77EfXTwMt8cXNQ/7xw++QATumT6k3v0T+3fhzD6deWLRzoiv1wsr9nKi1ss3pw5o9NgVY3uydu8x9kQYQP30i1KqarxcOiav0WOTB2YDsHxn+BzwtoMVVNV4Gd+3S6PHnDYrvTqnsitCaWZppRu3x0ffruFTI2l2W0Jz6VS6a8Pm8CH21bY7Sqs4Izd8KmJUr05s3Bd5QH1RYRk2i4RN/100PJcN+45H7GgtKSxj/3EX1+c3nofoxkl92XfsBIsiVPocqaph3lJ/735ISIcB4DsXDeb4iVqe+Xx32H29PsOPXt1Ap1Q7D15av//6wMzhWET41duRp5X49TtbWLX7KA9fO6aus5KT6eTh68bQPdPJvS+ti/jh/VLBXuYt3RXxuRPREgG/FxD6vao4cF/YbYwxHuA40OivLyKzRaRARApKS6P3liPZe6SaRdtLuepvS/nde1txBxaMqHR7eKlgL9f/43McNguv3jmF26cNZETPLKwW4fr8Prz531PJzXRy69MF/Hj+hrrZBY0xbNp/nOv+/jlfHKrgnzdN4Otn9aNzmr+30yc7jVfvnMIFQ3P4nwWbuPuFNfUG5ipctdz38jpeX7ufH3x5KHeePyj0/8yDlw3nOxcO4qWCYm6bt7JeJYEx/h7OL97azJdHduehWaPqDehN6JfN3742ni0HKrjt6YJGVQi7yqr49nOr6Judxp9uGFcvX59it/LY1ydgt1n4r2dXNbrwpsbj/0ZSXePhLzeObZSznD1tIGf26cxP39gYNlj8c1ERm/aX87PLR9IptX6udGBOBl8/qx//XrmHL8JMH7xx33Hmr9nHLVP71+vZBV+zO6YNYNfh6rDpAFetl3lLdzHljK6M6JnV6PHLz/Tn5d9cH76X//qafWSnOzg7TIAa2C2dbhlOlheFH7j9PDCgG2lsI1pp5p5Aj7FvdlrYxxNd1zZSSgdOXm0bjjGmUUlmqNG9OlHu8rD3yImwjy/eXsa4vp3DHvuiYd0BIvbyXyrYS+c0OzNGdG/02IwR3clOd/DC8j1h95372U6qa73cE9K7DxrTuzMXDM3h8UU7w67n+9SSItbtPcZPLx/R6FtNz86p3H3hIP6z6SCLtzf+sHl1VTFPL93FbecM4LKQMSCArBQ7v7/uTHaWVfGbdxt/YHy09RD3v7aBhVtLmlTYEK+WCPjheuoNWxrPNhhj5hpj8o0x+Tk5Oc1qTP9u6bz/vfO4alwvHv14B5f+eTHXPLaUsT9/nx++sp4ReVm8ftfURp/4AINyM3n9rqnMPncgL6zYw8w/L+J3721lxiOfcemfF1Na6ea52ydz4bDGJ1+G08Y/vpHPDy8eynsbD3LJnz7jnQ0H+NmCTZz9vx8xf80+7vvSEO66YFCjfUWE739pKA9dOYqlhYeZ+adFrNx1hDV7jnLD3GXc9/I6JvbPbhSwgy4c1p1HvjKWtcXHuPwvi1lffAyfz/Dsst3M/PMiar0+5t6U3yjoAvTqnMpfbhxHUVkVV/1tSV1P/0hVDV9/YjmLC8v4+RUjGZTb+PWyWS384boxVNV4+fZzqzhWffLD5o21+3j4va1cPLIHM0f3CPu3+u5Fg0l32vjl2/WvYq1ye/jOi2vIyXBy53mNXy+Ai0f2oFfnVB5f1Hgc4MklRRwsd3H3heH37dU5lfx+XViwtnHAL6lw8cHmQ1wzvlfYC6xi5fGXFpYxoFs6vTqHT8v075rOzrKqsPsGv3FECvjpiebwGyxgHionw8nhqho8Xl+jx8oqazh+orZRSWbQqJ7+AddwaZ2jVTVs3H+ccwaFfz8P6Z5B7y6pLAzzwX20qob3Nx3iyrG9cNoaD5A6bVaundCbD7ccapQa3H24iieXFDHrzJ5hz12A/75oMEera3l2Wf1e/ub95Tz8n21MH96dK87sGXbf26cNoF/XNP5nwUZctSf/Jmv3HuP++RuYckZX7r9kWNh9pwzqxjen9mfe57t5fc2+unN/7d5j3PX8GkbkZfHY18bHVUzRVC0R8IuBPiG/9wYavpPqthERG9AJiL8uqok6pfo/RZ+6ZSLGGDw+w+xzB/Kv2yfz7/86u15Ot6EUu5UfzxzOi3echddn+NsnO8hOd/DQrJF8ct/5TOyfHXFfq0W48/xBvPLtKdhtFu58fjXPL9/NjBHdeeOuqdx9YeOeRqhvnNWP1+6cgtNu4Sv/+Jyr/raUHaWVPDRrJM/dNjlqVcAVZ/bklW+dDcC1j33O1Y8t5cHXNzKhXxfevefciL0zgKmDuvH87ZM5Vl3LlY8u4YUVe7jy0SWs3XuMP90wlq9M7Btx30G5mTxy/VjWFx/n6seWsvdINe9vOsj3X1rHpP7Z/N8NY8OWGAJ0SXfw/RlD+OyLUn706sl01oNvbGRXWRV/umEcndLCV1HYrBZuO2cAK3cdZVlImWRZpZu/fbyD6cO7M+WMbmH3BX8vf9uhCrYdrP/t4uWCYjw+w42TIv+fzxqQzcFyV6MercfrY3nRkXoDvQ3175ZOhcsTth58z5FqRIj4YZFqtzU74Ls9Xmq9JmoP3xjCtis4YBvpHBrSIwO7VcIG/KU7DmMMnDM4/N9CRLhoWC6LC8saVSA9taSIGq8v6t/ihol98PgMf/v45CCqMYafvrEJh9XC/TOHR9x3fN8unDskhz99uJ3/bPSPY52o8fKdF9fQKc3Ow9eOiXjuOm1Wfnb5SHaUVvGlRz7jo63+D51vPbuK3Ewnf/3q+KhXZP/o4mEMz8vinn+vZcYjnzL3sx3c+vRKcjKdPHnLxIhjLYlqiWddCQwWkQHAPuAG4KsNtlkA3Ax8DlwLfGROw0QaFwzL5YJhuc3ad/LAriy89zyq3d6ol5uHM7ZPZ97+zjQ+2VbCpP7ZUcv/GhrVqxNv/fc5PPyfbeRkOrntnAFx//HH9O7Mm/99Dt99cQ2rdx/l11eN5sZJfSKetKEmD+zKG3dN5Y5nCrj/tQ10y3Dwwh1nMaFf41x0Q5eOySMn08kdzxRw5aNLqHB5GNWrE0/cMjFm6dotU/pz/EQt//fhdqprvEwb3I3XVu/juxcN5uwogRPgKxP78NTSIr713CpenH0Ww3pk8cgHX+Cq9XL/zPC9q6CZo/P4+ZubeHPdfob28Jd3+nyGF1bs4eyBXaOWzgXTNcuKDtM3ZN76dcXHqXR7mDoo8gdNcKqFXYer6Nqg47HnSDU9O6XW1f03lOawcqK2eQE/0sRpQcFa/JIKd6PztbA0esB32qwM7ZHJ2r2NByI/2lpCZoqNM6OUXV4xtifzPt/NPz7dyfdm+MdrjlfX8tSSXVwyqgdDe4TvoYM/NXjT2f14eukuBnfP4GuT+/GfjQf59ItSHrxsRMSKp6DfXzuGO55dxbeeW8W9M4ZwqMJFYUklz942iewY7/sLhuXyr9sn8+AbG7n16QK6pNlx1fp49dtTYu6bYrfyxl1TeWfDAZ5YXMSv39lKdrqDebdOqvtbnAoJB3xjjEdE7gbeA6zAk8aYTSLyC6DAGLMAeAJ4VkQK8ffsb0j0uKeD02YN+1UyHhlOW6P8XbwyU+w8dOWoZu2bne7gmVsn4fb44qoTDtUnO41Xvz2F55fv5tIxPSP2NMOZNCCbV789hVufXkluVgrzvjkxYnAJJSLcM30IGYHUztsbDjB5QDbfuSj6tyHwTxn8/G1ncf0/Pufrj6/gl1eO4oUVe7jp7P6Nygcbysl0cv7QXJ5aUsTlZ/ZkaI9MPtteSvHRE40GmBsanJtBdrqD5TuPcH3+yS+3SwvLECFs7j+ofyDgF5VVM6Ff/W+Le45UR0zngD/gh8s3x6MywuInQcFvveEqdXaUVJLusJIXpd79gqG5PPpxYb26+OoaD//ZeIDLxvSM2tud0C+bK87syWOBiph+XdN5YkkRFW5PXOfBTy8bQfHREzz4+kY6pdr55VtbGJGXxc1n94u5b25WCv+efRZzXl3PHwIlyrefM4Bpg+NLKU8Z1I13v3suTy0p4sklRfzqqtFhx43CcdgsXDmuF7MCRQTZ6Q76RRiwbyktUodvjHnHGDPEGHOGMeZXgft+Ggj2GGNcxpjrjDGDjDGTjDGxC7BVs4lIk4N9ULrTxuxzz2hSsA8alJvBh98/jwV3T60b0I7X7dMG8vA1Yxjft3PEsYpw+nZN47nbJ2OM4VvPrSLdaYsrSAD8+qrRpDlt3P7MSo5W1fCv5Xvomu7gyyPDjzkEiQiT+mc3GrhdsqOMEXlZUb8R9u6SitUiFJU1roqKFfBTHVbcHl+zBvMqXOHnwg8KTtZWEqZaprCkkjNyM6J+U7x2Qm98Bl4NKZV9f9Mhqmq8XD0+9sRqD1w6HLtF+MWbm/29+8VFXDKqB8PzYgdPm9XCX24cx4ieWdz9rzUcqnDxy6tGxTXJHfh72498ZSw/uXQ4l43J4wcXR7+gryGHzcJ/nXcGy388nZmjG1d2xSIijOvb5ZQHe9CpFVQL88/50rzT6vqJfXjtzqkxr5xsaFBuBs/eNpmenVKYc8mwmF+ng3p0SmHuNyZwqNzNrfNWsnBrCdfm946YUgl11sBsio+eqLvg6ESNl9W7j0VN5wDYrRb6dEllV1n9ktATNV5KK9z1UkQNpQcXMm9GWufk1MjhA35epxRS7Ba2HWz8QVRYUhnzG1O/rulMHpDNywV76wakX11dTO8uqVHHvYK6Z6Vwz/QhLNxawuxnC+Lu3QelO208efNEBuakc9vUAWHLYqMREW6fNpC/fnV8s7/VJwMN+KpdGNEziyVzLuRrk2N/jQ81rm8XfnvNaNbsOYbXZ7gxygB1qCvH9aJbhoMfz9+A12dYuesINV5f1AHboAHd0htdfBUsyewTo4cPzVsEpapuauTwAd9mtTA8zMyXZZVuDpa7GJ4XOY8edF1+H3YdrqZg91EOHnexuLCMq8f3xhLnt7VbpvZncG4Gy4uOcPHI+Hr3oXKzUvjwe+fxk8saXvepgjTgq3ajudfyXTWuNz+5dDjfOu+Muhx7LJ3THPzP5SNZX3ycp5YUsWRHGXarMGlA7N6sf9bM+qWZsWrwIWQRFHfze/iRUjrgr6ffvL/+zJfr9vovYBzbJ3aPeeboHqQ7rLxcsJfX1+7DGLh6XOx0TpDdauHXV4/mjJz0usHbpor3w6Wj0snTlMI/htBUl43JY/6affzh/S/IyXQyrk8X0hyx31IDuqVTXeOlpMJdV0XSpIDfjNLMYA4/UkoH/PX0z3y+m12Hq+qqlNbuPYbVIozqFbu3neawcemYPN5af4AeWSlM6Ncl7g/QoIn9s1l47/lN2kfFT3v4SjWTiPDQlaOwiD9gTxkUO50DIbNmhqR19h6pJtNpazQPfqi0uhx+01M68fTwgzNfhtbTr917jCHdM+P6IAO4Pr8P1TVedpZVxTVYq04vDfhKJaBX51R+GCjjPG9IfKV84WbN3H24ij7ZaV+lsooAABWtSURBVFHTUon08CtdHizin1M/ksHdM3BYLWza718ZzOczrNt7jLF9ItfQNzShXxcGdkvHYbVw2ejmlSWrU0dTOkol6Kaz+3HukJyo88GH6tk5lXSHlVW7j3JD4CrSPUeqGRxhCoCg4KBtVTNz+OlOW9QPFLvVP/NlsPKo6HAV5S4PY/uEn7s/HBHhF7NGceD4iYhXSavWoz18pRIkInEHe/BPwXHJ6Dze3XiQEzVefD7D3qMnopZkQuIpnWj5+6DQmS+bMmAb6pzB3bguv0/sDdVppwFfqVZwzfjeVLo9vLfpICUVbmo8vqglmQDpCaZ0ouXvg0b1PDnz5dq9x0h3WKPOw6SSi6Z0lGoFkwdk07tLKq+uLq6bsqBfjIAfTOk0Z4rkygjLGzY0Orhk4f7jrNt7jNG9O52SWRtV69AevlKtwGIRrh7fm8WFZawo8k8cG60kE06mdJqTw69we8iIsX4r+Ge+tFmEVbuPsvlAOWc2IX+v2j4N+Eq1kmvG98IYeGJJERah0UIvDVktgsNmoboZOXz/Auaxpwxw2qwM6Z7J62v2Ues1jNOA365owFeqlfTrms7E/l04Vl1LXpRpkUOlN3PVq2irXTU0ulcnDgfmxdcefvuiAV+pVnTNeP9arbHSOUFpjuYtguLP4cdXJhm8qrZ7lpO8Tk2fNVW1XRrwlWpFM8fkkWK3MDAnvrLOVIe1yZOn+Xwm6vKGDQWvuG1K/b1KDlqlo1Qrykqx88q3psQ9JXSao+nr2lbVxJ5HJ9TwvCy6pNnjXgREJQ8N+Eq1smCPOh7NCviBqp54l8pMsVv5/P6LcMYxpqCSi/5FlUoiaQ5bkwdtK921QPSJ0xpKsVubPd20ars04CuVRFId1roUTbzimRpZdQwa8JVKImn2ppdlxjM1suoYNOArlUTSnU0vywwubxicXll1XBrwlUoiqc248Cq46Hm0ufBVx6ABX6kkkma3UuP1Uev1xb2Pq9a/bYoG/A5PA75SSSS1GVMkuwI9fA34KqGALyLZIvKBiGwP/Gy0UoKIjBWRz0Vkk4isF5GvJHJMpTqyYC19U9I6J3v42r/r6BI9A+YAC40xg4GFgd8bqgZuMsaMBC4G/k9E9JptpZrh5Lq28Zdm1vXwbdrD7+gSDfizgHmB2/OAKxtuYIz5whizPXB7P1AC6DXbSjVDcOC1KSkdt8eHw2rBoguZdHiJBvzuxpgDAIGfudE2FpFJgAPYEeHx2SJSICIFpaWlCTZNqfYnuAhKU3P4Tk3nKOKYS0dEPgR6hHnogaYcSETygGeBm40xYUsMjDFzgbkA+fn5pinPr1RHkNqMlI7b49UBWwXEEfCNMdMjPSYih0QkzxhzIBDQSyJslwW8DfzEGLOs2a1VqoNLdzZ9XVtXrU8HbBWQeEpnAXBz4PbNwBsNNxARBzAfeMYY83KCx1OqQ0uzNy+lowO2ChIP+L8BZojIdmBG4HdEJF9EHg9scz1wLnCLiKwN/Bub4HGV6pCak9Jx1WpKR/klNJuSMeYwcFGY+wuA2wO3nwOeS+Q4Sim/tGZdeKUpHeWnZ4FSSaQ5ZZkujxenpnQUGvCVSioWi5Bqt9ZNiBYP7eGrID0LlEoyaQ5r3ZTH8XDXenFqDl+hAV+ppNPUKZK1SkcFacBXKsmkO5q2CIrboykd5adngVJJJtVhpbpJOXwty1R+GvCVSjJpDivVTcjhu7SHrwL0LFAqyaQ5rHGndGq9Prw+ozl8BWjAVyrppDlscZdl6mpXKpQGfKWSTKrdGvfUCrralQqlZ4FSSSbFbqkL5LEEe/hah69AA75SSSfFYa0L5LG4PZrSUSdpwFcqyaTYrLg9PoyJvUZQXUrHpm91pQFfqaQT7K27PbHTOprSUaE04CuVZIIDsPFMr6A9fBVKzwKlkkywh+/yxBPwNYevTtKAr1SSCc6JH0+lTjDtowFfgQZ8pZJOMKUTT6XOyR6+vtWVBnylko6zrocfR8DXskwVQgO+UkkmOC9OPNMrnBy01YCvNOArlXSC6Rl3HDn8k2WZ+lZXGvCVSjqpjvhTOu5aLyLg1LJMhQZ8pZJOMD0TV1mmx4fTZkFETnWzVBLQgK9UkklpQlmmrnalQiUU8EUkW0Q+EJHtgZ9domybJSL7ROSviRxTqY6uaVfa6gLm6qREe/hzgIXGmMHAwsDvkTwEfJrg8ZTq8Jp2pa0ub6hOSvRMmAXMC9yeB1wZbiMRmQB0B95P8HhKdXjBAdh4UzpO7eGrgEQDfndjzAGAwM/chhuIiAX4A/CDWE8mIrNFpEBECkpLSxNsmlLtk4iQYrfgjqdKRxcwVyFssTYQkQ+BHmEeeiDOY9wJvGOM2RurUsAYMxeYC5Cfnx97sm+lOqgUe3yLoLhqvTo1sqoTM+AbY6ZHekxEDolInjHmgIjkASVhNjsbmCYidwIZgENEKo0x0fL9SqkoUmzW+K609fjolGo/DS1SySDR73oLgJsDt28G3mi4gTHma8aYvsaY/sB9wDMa7JVKTLzr2rprvToXvqqT6JnwG2CGiGwHZgR+R0TyReTxRBunlAqvKSkdrcNXQTFTOtEYYw4DF4W5vwC4Pcz9TwNPJ3JMpVQg4Me1xKEO2qqT9ExQKgml2C244rnwyqM9fHWSBnylkpC/h68pHdU0GvCVSkIpttg5fGOMP6Wjg7YqQM8EpZJQqsMas0onuJ6t1uGrIA34SiUhf1lm9B5+cIEUTemoIA34SiUhZxwXXrk9uoC5qk/PBKWSUIrdGnOJw2DKRydPU0Ea8JVKQil2CzVeH15f5CmnXNrDVw3omaBUEkoN5OXdUUozgzl+XQBFBWnAVyoJxbPMoUsHbVUDGvCVSkJ1yxxGGbit6+FrSkcF6JmgVBI62cOPJ+BrD1/5acBXKgkFK2+iBnxPMKWjb3Plp2eCUkko1RFPDt//YaBlmSpIA75SSSg4P060dW3dmtJRDWjAVyoJBYN49EFbTemo+vRMUCoJxVeWqT18VZ8GfKWSULDXHm3Q1u3xYbUIdqu+zZWfnglKJaHglbbRFkFx6QLmqgE9G5RKQs54Ujoer86Fr+rRgK9UEoonpaOrXamG9GxQKgk5rBZEYl9pqwO2KpQGfKWSkIjEXNfWVevTlI6qRwO+Ukkq1rq2bo9Xa/BVPQmdDSKSLSIfiMj2wM8uEbbrKyLvi8gWEdksIv0TOa5Syn+1bcyUjk6roEIk+vE/B1hojBkMLAz8Hs4zwO+MMcOBSUBJgsdVqsNLsUdf19ZV69Mevqon0bNhFjAvcHsecGXDDURkBGAzxnwAYIypNMZUJ3hcpTo8pz16SkcHbVVDiQb87saYAwCBn7lhthkCHBOR10RkjYj8TkTCnoUiMltECkSkoLS0NMGmKdW+pdot0Zc49GjAV/XZYm0gIh8CPcI89EATjjENGAfsAf4N3AI80XBDY8xcYC5Afn5+5NWZlVKk2KNX6bg1paMaiBnwjTHTIz0mIodEJM8Yc0BE8gifmy8G1hhjdgb2eR04izABXykVvxS7lXJXbcTHXbVenQtf1ZPox/8C4ObA7ZuBN8JssxLoIiI5gd8vBDYneFylOrwUuyXG1Ao+TemoehIN+L8BZojIdmBG4HdEJF9EHgcwxniB+4CFIrIBEOCfCR5XqQ4v2oVXPp+hxqMpHVVfzJRONMaYw8BFYe4vAG4P+f0DYEwix1JK1ZcS5cIrd2A9W03pqFD68a9UkkqxWSMucXhy8RN9i6uT9GxQKkml2C0RL7wKzpOvOXwVSgO+UkkqxW7F4zN4vI3TOrqerQpHzwalklTdnPiecAE/0MPXHL4KoQFfqSRVt8xhmLSOLmCuwtGAr1SSckYN+IEqHU3pqBB6NiiVpFKiBHy3DtqqMDTgK5WkguvVhqvFrxu01Ry+CqEBX6kkFV8PX9/i6iQ9G5RKUqmOYMCPUqWjKR0VQgO+UkkqmK4J18OvcHkASHcmNHuKamc04CuVpILpmnBX21a4PIhApgZ8FUIDvlJJKloOv9xVS4bThsUip7tZqg3TgK9UknJGudK2/ISHrBT76W6SauM04CuVpIJX2oabMbPCVUtmiqZzVH0a8JVKUrFSOlmp2sNX9WnAVypJ2a0WrBYJO2jrT+loD1/VpwFfqSSWYgu/rm25q1Zz+KoRDfhKJbEUe/h1bStcHk3pqEY04CuVxPwBv34P3+czVLhqNaWjGtGAr1QSS7Fb6pYzDKqq8eAzkKkpHdWABnylkliK3Yqrpn7ALw9Mq5CVqj18VZ8GfKWSWIrd2qiHX+GqBdBBW9WIBnylkliKvXGVTvkJfw9fUzqqoYQCvohki8gHIrI98LNLhO0eFpFNIrJFRP4sIjrBh1ItIDVMlU75iUAPX1M6qoFEe/hzgIXGmMHAwsDv9YjIFGAqMAYYBUwEzkvwuEop/OvaNrzwqsKtKR0VXqIBfxYwL3B7HnBlmG0MkAI4ACdgBw4leFylFP458d0RUjpah68aSjTgdzfGHAAI/MxtuIEx5nPgY+BA4N97xpgtCR5XKUUwhx8+paOTp6mGYp4RIvIh0CPMQw/EcwARGQQMB3oH7vpARM41xnwWZtvZwGyAvn37xvP0SnVoqXYr1Y3KMmtJtVuxW7UmQ9UXM+AbY6ZHekxEDolInjHmgIjkASVhNrsKWGaMqQzs8y5wFtAo4Btj5gJzAfLz8018/wWlOq6uGU5O1HqprvGQFrjPP62C9u5VY4l2ARYANwdu3wy8EWabPcB5ImITETv+AVtN6SjVAnIznQCUlLvr7it31WpJpgor0YD/G2CGiGwHZgR+R0TyReTxwDavADuADcA6YJ0x5s0Ej6uUAnKzAgG/IiTg69TIKoKEzgpjzGHgojD3FwC3B257gf9K5DhKqfByM1MAKKlw1d1X7qolO93RWk1SbZiO6iiVxIIpnUMhKZ0Kl65nq8LTgK9UEuucZsdhtdTv4Z/Q9WxVeBrwlUpiIkJOppPSQA/foOvZqsg04CuV5HKznHWDtj5jqPUaTemosDTgK5XkcjOddSkdr89/+YqmdFQ4GvCVSnK5mSl1PfxgwNeUjgpHA75SSS4308mx6lp8xuDxBgK+9vBVGBrwlUpy3bP8tfg1XqM9fBWVBnylklxO4GrbWo8Pj097+CoyDfhKJbngxVe1Xh9en39ufK3SUeFoN0CpJBecXqHG69OUjopKA75SSa5rugOrRaj1+DCA3So4bfrlXTWmAV+pJGexCN0yHNR4fYgIWSl2RKS1m6XaIO0GKNUOdM9KqavS0XSOikR7+Eq1A7mZTmo9PrBZtEJHRaRnhlLtQE5mCrVeHxYLutqVikgDvlLtQG6mk1qvD6tFdD1bFZHm8JVqB4JLHbo8Pq3BVxFpwFeqHQjW4mOMzpSpItKAr1Q70D3Qwwe9ylZFpgFfqXagroePXmWrItOAr1Q70C3DUXdbB21VJBrwlWoHbFYLdqv/7Zzp1B6+Ck8DvlLtRDDga0pHRZJQwBeR60Rkk4j4RCQ/ynYXi8g2ESkUkTmJHFMpFZ7dFgz4mtJR4SXaw98IXA18FmkDEbECjwKXACOAG0VkRILHVUo14LD6J0zTK21VJAl1BYwxW4BYM/NNAgqNMTsD274IzAI2J3JspVR9jmAOX+vwVQSn48zoBewN+b0YmHwajqtUh9It04nFIlqHryKKGfBF5EOgR5iHHjDGvBHHMcJ1/02EY80GZgP07ds3jqdWSgWl2q306pza2s1QbVjMgG+MmZ7gMYqBPiG/9wb2RzjWXGAuQH5+ftgPBaWUUs1zOsoyVwKDRWSAiDiAG4AFp+G4SimlQiRalnmViBQDZwNvi8h7gft7isg7AMYYD3A38B6wBXjJGLMpsWYrpZRqqkSrdOYD88Pcvx+YGfL7O8A7iRxLKaVUYvRKW6WU6iA04CulVAehAV8ppToIDfhKKdVBiDFts9xdREqB3Qk8RTegrIWa05K0XU2j7WoabVfTtMd29TPG5IR7oM0G/ESJSIExJuIMnq1F29U02q6m0XY1TUdrl6Z0lFKqg9CAr5RSHUR7DvhzW7sBEWi7mkbb1TTarqbpUO1qtzl8pZRS9bXnHr5SSqkQGvCVUqqDaFcBX0R+JyJbRWS9iMwXkc4hj90fWER9m4h8+TS3K+xi7yLSX0ROiMjawL+/t4V2BR5rtderIRH5mYjsC3mdZsbe65S15eLAa1IoInNaqx3hiMguEdkQeI0KWrEdT4pIiYhsDLkvW0Q+EJHtgZ9d2ki7WvXcEpE+IvKxiGwJvBe/G7j/1Lxexph28w/4EmAL3P4t8NvA7RHAOsAJDAB2ANbT2K7hwFDgEyA/5P7+wMZWfL0itatVX68w7fwZcF8bOL+sgddiIOAIvEYjWrtdIe3bBXRrA+04Fxgfem4DDwNzArfnBN+bbaBdrXpuAXnA+MDtTOCLwPvvlLxe7aqHb4x53/jn3wdYhn91LfAvmv6iMcZtjCkCCvEvrn662rXFGLPtdB0vXlHa1aqvVxs2CSg0xuw0xtQAL+J/rVQIY8xnwJEGd88C5gVuzwOuPK2NImK7WpUx5oAxZnXgdgX+NUN6cYper3YV8Bu4FXg3cDvcQuq9TnuLwhsgImtE5FMRmdbajQloi6/X3YFU3ZOtkQ4IaIuvSygDvC8iqwLrQ7cl3Y0xB8Af5IDcVm5PqLZwbiEi/YFxwHJO0euV0AIorSGeRdVF5AHAAzwf3C3M9i1aj9rMxd4PAH2NMYdFZALwuoiMNMaUt3K7Tvnr1eiAUdoJPAY8FGjDQ8Af8H+gn26n/XVpoqnGmP0ikgt8ICJbA71aFVmbOLdEJAN4FbjHGFMuEu5US1zSBXwTY1F1EbkZuAy4yAQSYDRhIfVT1a4I+7gBd+D2KhHZAQwBWmzArTnt4jS8Xg3F204R+Sfw1qlsSxSn/XVpCuNfaQ5jTImIzMefgmorAf+QiOQZYw6ISB5Q0toNAjDGHArebq1zS0Ts+IP988aY1wJ3n5LXq12ldETkYuBHwBXGmOqQhxYAN4iIU0QGAIOBFa3RxlAikiMi1sDtgfjbtbN1WwW0sdcrcMIHXQVsjLTtKbYSGCwiA0TEAdyA/7VqdSKSLiKZwdv4Cxha63UKZwFwc+D2zUCkb5enVWufW+Lvyj8BbDHG/DHkoVPzerXW6PQpGvEuxJ9jXRv49/eQxx7AX2GxDbjkNLfrKvy9QzdwCHgvcP81wCb81R6rgcvbQrta+/UK085ngQ3A+sAbIa8V2zITfyXFDvxpsVZ7XRq0a2DgPFoXOKdarW3AC/jTlbWB8+s2oCuwENge+JndRtrVqucWcA7+dNL6kLg181S9Xjq1glJKdRDtKqWjlFIqMg34SinVQWjAV0qpDkIDvlJKdRAa8JVSqoPQgK+UUh2EBnyllOog/h8F430mNrqffQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x, f(x, 5))\n",
    "plt.axvline(sol.x, c='red');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.1.3 Stochastic algorithm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "                        fun: -1.0\n",
       " lowest_optimization_result:       fun: -1.0\n",
       " hess_inv: array([[0.30396607]])\n",
       "      jac: array([1.49011612e-08])\n",
       "  message: 'Optimization terminated successfully.'\n",
       "     nfev: 18\n",
       "      nit: 5\n",
       "     njev: 6\n",
       "   status: 0\n",
       "  success: True\n",
       "        x: array([5.])\n",
       "                    message: ['requested number of basinhopping iterations completed successfully']\n",
       "      minimization_failures: 0\n",
       "                       nfev: 1686\n",
       "                        nit: 100\n",
       "                       njev: 562\n",
       "                          x: array([5.])"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from scipy.optimize import basinhopping\n",
    "\n",
    "x0 = 0\n",
    "sol = basinhopping(f, x0, stepsize=1, minimizer_kwargs={'args': (5,)})\n",
    "sol"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x, f(x, 5))\n",
    "plt.axvline(sol.x, c='red');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.2 Multivariate minimization"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.2.1 Condition number\n",
    "- Recall: condition number is largest eigenvalue/ smallest eigenvalue\n",
    "- When the condition number is high, the gradient may not point in the direction of the minimum"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left( \\left[\\begin{matrix}802 & -400\\\\-400 & 200\\end{matrix}\\right], \\  2508.00960127744\\right)$"
      ],
      "text/plain": [
       "⎛⎡802   -400⎤                  ⎞\n",
       "⎜⎢          ⎥, 2508.00960127744⎟\n",
       "⎝⎣-400  200 ⎦                  ⎠"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import symbols, hessian, Function, N\n",
    "\n",
    "x, y = symbols('x y')\n",
    "f = symbols('f', cls=Function)\n",
    "\n",
    "f = 100*(y - x**2)**2 + (1 - x)**2\n",
    "\n",
    "H = hessian(f, [x, y]).subs([(x,1), (y,1)])\n",
    "H, N(H.condition_number())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.2.2.1. Plot: Condition number\n",
    "- [Rosenbrock function](https://en.wikipedia.org/wiki/Rosenbrock_function)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "def rosen(x):\n",
    "    \"\"\"Generalized n-dimensional version of the Rosenbrock function\"\"\"\n",
    "    return sum(100*(x[1:]-x[:-1]**2.0)**2.0 +(1-x[:-1])**2.0)\n",
    "x = np.linspace(-5, 5, 100)\n",
    "y = np.linspace(-5, 5, 100)\n",
    "X, Y = np.meshgrid(x, y)\n",
    "Z = rosen(np.vstack([X.ravel(), Y.ravel()])).reshape((100,100))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.contour(X, Y, Z, np.arange(10)**5, cmap='jet')\n",
    "plt.text(1, 1, 'x', va='center', ha='center', color='red', fontsize=20);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(0, 2, 100)\n",
    "y = np.linspace(0, 2, 100)\n",
    "X, Y = np.meshgrid(x, y)\n",
    "Z = rosen(np.vstack([X.ravel(), Y.ravel()])).reshape((100,100))\n",
    "plt.contour(X, Y, Z, [rosen(np.array([k, k])) for k in np.linspace(1, 1.5, 10)], cmap='jet')\n",
    "plt.text(1, 1, 'x', va='center', ha='center', color='red', fontsize=20);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.2.2 Gradient descent"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Start [1. 1.]\n",
      "0 [0.8 0.8]\n",
      "5 [0.262144 0.262144]\n",
      "10 [0.08589935 0.08589935]\n",
      "15 [0.0281475 0.0281475]\n",
      "20 [0.00922337 0.00922337]\n",
      "25 [0.00302231 0.00302231]\n",
      "30 [0.00099035 0.00099035]\n",
      "35 [0.00032452 0.00032452]\n",
      "40 [0.00010634 0.00010634]\n"
     ]
    }
   ],
   "source": [
    "def f(x):\n",
    "    return x[0]**2 + x[1]**2\n",
    "\n",
    "def grad(x):\n",
    "    return np.array([2*x[0], 2*x[1]])\n",
    "\n",
    "a = 0.1 # learning rate\n",
    "x0 = np.array([1.0,1.0])\n",
    "print('Start', x0)\n",
    "for i in range(41):\n",
    "    x0 -= a * grad(x0)\n",
    "    if i%5 == 0:\n",
    "        print(i, x0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.2.2.1 Gradient descent: least squares"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "def f(x, y, b):\n",
    "    \"\"\"Helper function.\"\"\"\n",
    "    return (b[0] + b[1]*x - y)\n",
    "\n",
    "def grad(x, y, b):\n",
    "    \"\"\"Gradient of objective function with respect to parameters b.\"\"\"\n",
    "    n = len(x)\n",
    "    return np.array([\n",
    "            sum(f(x, y, b)),\n",
    "            sum(x*f(x, y, b))\n",
    "    ])\n",
    "\n",
    "x, y = map(np.array, zip((0,1), (1,2), (2,3), (3,3.5), (4,6), (5,9), (6,8)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.0325 0.1355]\n",
      "[0.54071459 1.36439344]\n",
      "[0.56745345 1.35808126]\n",
      "[0.57091409 1.35726431]\n",
      "[0.57136199 1.35715858]\n",
      "[0.57141995 1.35714489]\n",
      "[0.57142746 1.35714312]\n",
      "[0.57142843 1.35714289]\n",
      "[0.57142855 1.35714286]\n",
      "[0.57142857 1.35714286]\n"
     ]
    }
   ],
   "source": [
    "a = 0.001 # learning rate\n",
    "b0 = np.zeros(2)\n",
    "for i in range(10000):\n",
    "    b0 -= a * grad(x, y, b0)\n",
    "    if i%1000 == 0:\n",
    "        print(b0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x, y, s=30)\n",
    "plt.plot(x, b0[0] + b0[1]*x, color='red');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4. Constrained Optimization and Lagrange Multipliers¶\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.1 Minimization with constraints\n",
    "\n",
    "- F (x, y, z, λ, μ) = xy + yz − λ(x + 2y − 6) − μ(x − 3z)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Minimum of -6.0 @ X:3.0, Y:1.5, Z:1.0\n"
     ]
    }
   ],
   "source": [
    "A = np.array([\n",
    "    [0, 1, 0, -1, -1],\n",
    "    [1, 0, 1, -2, 0],\n",
    "    [0, 1, 0, 0, 3],\n",
    "    [1, 2, 0, 0, 0],\n",
    "    [1, 0,-3, 0, 0]])\n",
    "\n",
    "b = np.array([0,0,0,6,0])\n",
    "\n",
    "sol = np.linalg.solve(A, b)\n",
    "x,y,z, constraint1, constraint2 = sol\n",
    "def f(x, y, z):\n",
    "    return x*y + y*z\n",
    "min_solu = -f(x,y,z)\n",
    "\n",
    "print(\"Minimum of {} @ X:{}, Y:{}, Z:{}\".format(min_solu,x,y,z))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.1.1 Confirm 4.1.1 with scipy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "def f(x):\n",
    "    return -(x[0]*x[1] + x[1]*x[2]) #negative included for minmization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "cons = ({'type': 'eq',\n",
    "         'fun' : lambda x: np.array([x[0] + 2*x[1] - 6, x[0] - 3*x[2]])})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "x0 = np.array([2,2,0.67])\n",
    "cx = opt.minimize(f, x0, constraints=cons)\n",
    "x,y,z = cx.x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Minimum of -6.0 @ X:3.0, Y:1.5, Z:1.0\n"
     ]
    }
   ],
   "source": [
    "print(\"Minimum of {:.1f} @ X:{:.1f}, Y:{:.1f}, Z:{:.1f}\".format(cx.fun,x,y,z))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.2 Graph: Min with constraints"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "def f(x):\n",
    "    return -(2*x[0]*x[1] + 2*x[0] - x[0]**2 - 2*x[1]**2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.2.1 Unconstrained optimization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "      fun: -1.9999999999996365\n",
       " hess_inv: array([[0.99829115, 0.50105608],\n",
       "       [0.50105608, 0.4993548 ]])\n",
       "      jac: array([ 1.25169754e-06, -1.41561031e-06])\n",
       "  message: 'Optimization terminated successfully.'\n",
       "     nfev: 24\n",
       "      nit: 5\n",
       "     njev: 6\n",
       "   status: 0\n",
       "  success: True\n",
       "        x: array([2.00000043, 0.99999985])"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x0 = [0, 2.5]\n",
    "ux = opt.minimize(f, x0, constraints=None)\n",
    "ux"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.2.2 Constrained optimization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "     fun: 2.049915472024102\n",
       "     jac: array([-3.48747933,  5.49674535])\n",
       " message: 'Optimization terminated successfully.'\n",
       "    nfev: 25\n",
       "     nit: 6\n",
       "    njev: 6\n",
       "  status: 0\n",
       " success: True\n",
       "       x: array([1.26089314, 2.00463288])"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cons = ({'type': 'eq',\n",
    "         'fun' : lambda x: np.array([x[0]**3 - x[1]]),\n",
    "         'jac' : lambda x: np.array([3.0*(x[0]**2.0), -1.0])},\n",
    "        {'type': 'ineq',\n",
    "         'fun' : lambda x: np.array([x[1] - (x[0]-1)**4 - 2])})\n",
    "\n",
    "bnds = ((0.5, 1.5), (1.5, 2.5))\n",
    "\n",
    "cx = opt.minimize(f, x0, bounds=bnds, constraints=cons)\n",
    "cx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.contour(X, Y, Z, np.arange(-1.99,10, 1), cmap='jet');\n",
    "plt.plot(x, x**3, 'k:', linewidth=1)\n",
    "plt.plot(x, (x-1)**4+2, 'k:', linewidth=1)\n",
    "plt.text(ux['x'][0], ux['x'][1], 'x', va='center', ha='center', size=20, color='blue')\n",
    "plt.text(cx['x'][0], cx['x'][1], 'x', va='center', ha='center', size=20, color='red')\n",
    "plt.fill([0.5,0.5,1.5,1.5], [2.5,1.5,1.5,2.5], alpha=0.3)\n",
    "plt.axis([0,3,0,3]);"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}