{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercice 2: Implementing the indirect simple shooting method"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Author: Olivier Cots\n",
    "* Date: March 2021\n",
    "\n",
    "------\n",
    "\n",
    "* Back: [Exercice 1](../exercices/ex1_application_simple_shooting.ipynb) -\n",
    "[Correction](../corrections/ex1_cor_application_simple_shooting.ipynb)\n",
    "* Next: [Exercice 3](../exercices/ex3_multiple_shooting_bsb.ipynb) -\n",
    "[Correction](../corrections/ex3_cor_multiple_shooting_bsb.ipynb)\n",
    "\n",
    "------"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The energy min 2D integrator problem with friction and simple limit conditions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Consider the following optimal control problem (Lagrange cost, fixed final time):\n",
    "\n",
    "$$ \n",
    "    \\left\\{ \n",
    "    \\begin{array}{l}\n",
    "        \\displaystyle J(u)  := \\displaystyle \\frac{1}{2} \\int_0^{1} u^2(t) \\, \\mathrm{d}t \\longrightarrow \\min \\\\[1.0em]\n",
    "        \\dot{x}(t) = (x_2(t), -\\mu x_2^2(t) + u(t)), \\quad  u(t) \\in \\mathrm{R}, \\quad t \\in [0, 1] \\text{ a.e.},    \\\\[1.0em]\n",
    "        x(0) = (-1, 0), \\quad x(1) = (1, 0).\n",
    "    \\end{array}\n",
    "    \\right. \n",
    "$$\n",
    "\n",
    "We consider the normal case ($p^0 = -1$), so the pseudo-Hamiltonian of the problem is\n",
    "\n",
    "$$\n",
    "    H(x,p,u) = p_1 x_2 + p_2 (-\\mu x_2^2 + u) - \\frac{1}{2} u^2.\n",
    "$$\n",
    "\n",
    "We denote by $t_0$, $t_f$ and $x_0$ the initial time, final time and initial condition.\n",
    "\n",
    "<div class=\"alert alert-warning\">\n",
    "\n",
    "**Main goal**\n",
    "\n",
    "Code the simple shooting method to solve this optimal control problem.\n",
    "    \n",
    "</div>\n",
    "\n",
    "Steps:\n",
    "\n",
    "1. Use nutopy package to solve the problem: see this [page](https://ct.gitlabpages.inria.fr/gallery/shooting_tutorials/simple_shooting_general.html) for a general presentation of the simple shooting method with the use of nutopy package. See this [page](https://ct.gitlabpages.inria.fr/gallery/smooth_case/smooth_case.html) for a more detailed use of nutopy package on a smooth example.\n",
    "2. Replace the [numerical integrator](https://en.wikipedia.org/w/index.php?title=Numerical_integration&oldid=1000975450). It is asked to code Euler (order 1) and Runge (order 2) methods and a Runge-Kutta method of order 4.\n",
    "3. Replace the [Newton solver](https://en.wikipedia.org/wiki/Newton%27s_method). It is asked to code a simple version of a Newton solver."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Preliminaries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Import packages\n",
    "#\n",
    "import nutopy as nt\n",
    "import nutopy.tools as tools\n",
    "import nutopy.ocp as ocp\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.rcParams['figure.dpi'] = 150"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Parameters\n",
    "# This parameters are used all through the notebook.\n",
    "#\n",
    "t0          = 0.0                   # initial time\n",
    "tf          = 1.0                   # final time\n",
    "x0          = np.array([-1.0, 0.0]) # initial condition\n",
    "xf_target   = np.array([1.0, 0.0])  # final target\n",
    "mu          = 0.5                   # friction parameter\n",
    "dimx        = x0.shape[0]           # dimension of the state space"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 1: Resolution of the shooting function with nutopy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The maximized Hamiltonian is\n",
    "\n",
    "$$\n",
    "    h(x, p) = H(x, p, u[x, p]) = x_2 p_1 - \\mu x_2^2 p_2 + \\frac{1}{2} p_2^2, \\quad z = (x, p),\n",
    "$$\n",
    "\n",
    "where $u[x, p] = p_2$ is the maximizing control in feedback form."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Maximized Hamiltonian with its derivatives and its flow\n",
    "def hfun(t, x, p):\n",
    "    x2 = x[1]\n",
    "    p1 = p[0]\n",
    "    p2 = p[1]\n",
    "    h  = p1*x2-mu*x2**2*p2+0.5*p2**2 \n",
    "    return h\n",
    "\n",
    "def dhfun(t, x, dx, p, dp):\n",
    "    x2  = x[1]\n",
    "    dx2 = dx[1]\n",
    "    p1  = p[0]\n",
    "    p2  = p[1]\n",
    "    dp1 = dp[0]\n",
    "    dp2 = dp[1]\n",
    "    hd  = dp1*x2+p1*dx2-2.0*mu*x2*dx2*p2-mu*x2**2*dp2+p2*dp2\n",
    "    return hd\n",
    "\n",
    "def d2hfun(t, x, dx, d2x, p, dp, d2p):\n",
    "    # d2h = dh_xx dx d2x + dh_xp dp d2x + dh_px dx d2p + dh_pp dp d2p\n",
    "    x2   = x[1]\n",
    "    dx2  = dx[1]\n",
    "    d2x2 = d2x[1]\n",
    "    p1   = p[0]\n",
    "    p2   = p[1]\n",
    "    dp1  = dp[0]\n",
    "    dp2  = dp[1]\n",
    "    d2p1 = d2p[0]\n",
    "    d2p2 = d2p[1]\n",
    "    hdd  =    dp1*d2x2 \\\n",
    "            + d2p1*dx2 \\\n",
    "            - 2.0*mu*d2x2*dx2*p2 - 2.0*mu*x2*dx2*d2p2 \\\n",
    "            - 2.0*mu*x2*d2x2*dp2 \\\n",
    "            + d2p2*dp2\n",
    "    return hdd\n",
    "\n",
    "hfun = nt.tools.tensorize(dhfun, d2hfun, tvars=(2, 3))(hfun)\n",
    "h    = ocp.Hamiltonian(hfun)   # The Hamiltonian object\n",
    "f    = ocp.Flow(h)             # The flow associated to the Hamiltonian object is \n",
    "                               # the exponential mapping with its derivative\n",
    "                               # that can be used to define the Jacobian of the \n",
    "                               # shooting function"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The shooting function is given by\n",
    "\n",
    "$$\n",
    "    S(p_0) = \\pi_x(z(t_f, x_0, p_0)) - x_f,\n",
    "$$\n",
    "\n",
    "where $x_f = (1, 0)$ is the target, where $\\pi_x(x,p) := x$ is the canonical projection into the state space and where $z(t_f, x_0, p_0)$ is the solution at time $t_f$ of \n",
    "\n",
    "$$\n",
    "    \\dot{z}(t) = \\vec{H}(z(t), u[z(t)]) = \\vec{h}(z(t)), \\quad z(0) = (x_0, p_0),\n",
    "$$\n",
    "\n",
    "with $\\vec{H}(z, u) := (\\nabla_p H(z,u), -\\nabla_x H(z,u))$ and $\\vec{h}(z) := (\\nabla_p h(z), -\\nabla_x h(z))$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Shooting function and its derivative\n",
    "def dshoot(p0, dp0):\n",
    "    (xf, dxf), _ = f(t0, x0, (p0, dp0), tf)\n",
    "    s  = xf - xf_target # code duplication (in order to compute dxf, shooting also needs to compute xf;\n",
    "                        # accordingly, full=True)\n",
    "    ds = dxf\n",
    "    return s, ds\n",
    "\n",
    "@tools.tensorize(dshoot, full=True)\n",
    "def shoot(p0):\n",
    "    xf, _ = f(t0, x0, p0, tf)\n",
    "    s = xf - xf_target\n",
    "    return s"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We solve with the nutopy package\n",
    "$$\n",
    "    S(p_0) = 0.\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "     Calls  |f(x)|                 |x|\n",
      " \n",
      "         1  1.967300768937284e+00  1.414213562373095e-01\n",
      "         2  1.719731572785037e+00  1.798534093044436e+01\n",
      "         3  1.410906422430211e+00  3.487107124079308e+01\n",
      "         4  1.991207495319282e+00  3.937341638076422e+01\n",
      "         5  7.277880985715982e-01  3.625515294040530e+01\n",
      "         6  4.725619938021095e-01  3.555941926121004e+01\n",
      "         7  3.166103150678147e-02  3.433969876028567e+01\n",
      "         8  2.245063172754588e-03  3.442461252396225e+01\n",
      "         9  6.943644107728013e-04  3.442864514091167e+01\n",
      "        10  1.078577109865398e-04  3.442751328490402e+01\n",
      "        11  2.201216767879966e-07  3.442730460220397e+01\n",
      "        12  2.084484933152670e-09  3.442730418046803e+01\n",
      "        13  1.938651563244826e-11  3.442730418446997e+01\n",
      "\n",
      " Results of the nle solver method:\n",
      "\n",
      " xsol    =  [31.89425568 12.96131661]\n",
      " f(xsol) =  [4.30899760e-12 1.89015747e-11]\n",
      " nfev    =  13\n",
      " njev    =  1\n",
      " status  =  1\n",
      " success =  True \n",
      "\n",
      " Successfully completed: relative error between two consecutive iterates is at most TolX.\n",
      "\n",
      " p0_nutopy        = [31.89425568 12.96131661] \n",
      " shoot(p0_nutopy) = [4.30899760e-12 1.89015747e-11]\n"
     ]
    }
   ],
   "source": [
    "# Resolution of the shooting function S(p0) = 0\n",
    "#\n",
    "p0_guess = np.array([0.1, 0.1])\n",
    "sol = nt.nle.solve(shoot, p0_guess, df=shoot); p0_nutopy = sol.x\n",
    "print(' p0_nutopy        =', p0_nutopy, \\\n",
    "      '\\n shoot(p0_nutopy) =', shoot(p0_nutopy))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Functions needed to plot the solution\n",
    "@tools.vectorize(vvars=(1,))\n",
    "def ufun(p):\n",
    "    u = p[1] # u = p2\n",
    "    return u\n",
    "\n",
    "def plotSolution(p0):\n",
    "\n",
    "    N      = 100\n",
    "    tspan  = list(np.linspace(t0, tf, N+1))\n",
    "    xf, pf = f(t0, x0, p0, tspan)\n",
    "    u      = ufun(pf)\n",
    "\n",
    "    fig = plt.figure()\n",
    "    ax  = fig.add_subplot(711); ax.plot(tspan, xf); ax.set_xlabel('t'); ax.set_ylabel('$x$'); ax.axhline(0, color='k')\n",
    "    ax  = fig.add_subplot(713); ax.plot(tspan, pf); ax.set_xlabel('t'); ax.set_ylabel('$p$'); ax.axhline(0, color='k')\n",
    "    ax  = fig.add_subplot(715); ax.plot(tspan,  u); ax.set_xlabel('t'); ax.set_ylabel('$u$'); ax.axhline(0, color='k')\n",
    "    \n",
    "    x1  = np.zeros(N+1)\n",
    "    x2  = np.zeros(N+1)\n",
    "    for i in range(0, N+1):\n",
    "        x1[i] = xf[i][0]\n",
    "        x2[i] = xf[i][1]\n",
    "    \n",
    "    ax  = fig.add_subplot(717); ax.plot(x1,  x2); ax.set_xlabel('x1'); ax.set_ylabel('$x2$'); ax.axhline(0, color='k')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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rwG2Al8ELljIzLfOuUG8KuJP4EXkLwR68H7lucTPlyZRxXtfmM8hiPdL2ysrLNIkqvn/XlpLlT/zk8DTgXfhzdf0XLwvMT8FrnbO/V1VCy9LUq1779eovxR4Ld5wyKfj/b3filf7/lzd+6ayGi84LSzgDV1cum31fE7UKt/zTK0+RERERESk2anGRUREREREmp4CFxERERERaXoKXEREREREpOkpcBERERERkaanwEVERERERJqeAhcREREREWl6ClxERERERKTpKXAREREREZGmp8BFRERERESangIXERERERFpegpcRERERESk6SlwERERERGRpqfARUREViQz22pmzsx+1uiyiIjI3BS4iIiIiIhI01PgIiIiIiIiTU+Bi4iIrDhm9h7gUf/hlX6TscLyhcaVTEREKgk1ugAiIiINcBfwTeBa4ChwY0nezQ0pkYiIzMqcc40ug4iISN2Z2Va8WpefO+ee2tDCiIjInNRUTEREREREmp4CFxERERERaXoKXEREREREpOkpcBERERERkaanwEVERERERJqeAhcREVmp0n6qqQFERFqAAhcREVmpBoEMsM3Mgo0ujIiIzE7zuIiIyIplZt8Bng/sAu7Aq4X5pXPu8w0tmIiInESBi4iIrFhmtgb4P8CzgNVAEPiic+5VjSyXiIicTIGLiIiIiIg0PfVxERERERGRpqfARUREREREmp4CFxERERERaXoKXEREREREpOkpcBERERERkaanwEVERERERJqeAhcREREREWl6ClxERERERKTpKXAREREREZGmp8BFRERERESangIXERERERFpegpcRERERESk6SlwERERERGRpqfARUREREREmp4CFxERERERaXoKXEREREREpOkpcBERERERkaYXanQB5GRmdgRoB/Y3uiwiIiIiIlWyGYg759Yt5mBzzlW5PLJUZjYejUa7tm3b1uiiiIjUhfP/cdOPKP3zVFid3uZO2F5YqfQXzVV8MAs7IamUXWFfw6z8vt52w08qnl9EZLnZs2cPqVRqwjnXvZjjVePSnPZv27btnF27djW6HCLSYrK5PMlsnlQmRyqb95cc6Wy+uKRyfuo/zuS8JZ3Nk87lyWTd9DY/LW7LO7KFbTlHNu+lmVyebM6RzTty+byfOrI5P817++ZyjpzzHuf97eIJBoygGYEAhAIBggEjFLBi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\n",
      "text/plain": [
       "<Figure size 900x600 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot solution\n",
    "plotSolution(p0_nutopy)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 2: Replacing the numerical integrator"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us consider an Initial Value Problem (IVP) or Cauchy problem of the form\n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "    \\tag{IVP}\n",
    "    \\dot{x}(t) = f(t, x(t)), \\quad x(t_0) = x_0,\n",
    "    \\label{eq:ivp}\n",
    "\\end{equation}\n",
    "$$\n",
    "\n",
    "with $f : \\Omega \\in \\mathrm{R} \\times \\mathrm{R}^n \\to \\mathrm{R}^n$, \n",
    "$\\Omega$ an open set and $(t_0, x_0) \\in \\Omega$. Let us assume that $f$ is **continuous**.\n",
    "\n",
    "**_Definition._**  We call a solution of $\\eqref{eq:ivp}$ any pair $(I, x)$ such that $I$ is an open interval of $\\mathrm{R}$ containing $t_0$, $x : I \\to \\mathrm{R}^n$ is a differentiable mapping on $I$ and such that:\n",
    "\n",
    "* $(t, x(t)) \\in \\Omega$, $\\forall t \\in I$,\n",
    "* $\\dot{x}(t) = f(t, x(t))$, $\\forall t \\in I$,\n",
    "* $x(t_0) = x_0$.\n",
    "\n",
    "Such a solution is also called an *integral curve* of the differential equation $\\dot{x}(t) = f(t, x(t))$.\n",
    "\n",
    "**_Differential equation vs. integral equation._** The differential equation $\\dot{x}(t) = f(t, x(t))$ with the initial condition $x(t_0) = x_0$ is equivalent to the *integral equation* (see [the fundamental theorem of calculus](https://en.wikipedia.org/wiki/Fundamental_theorem_of_calculus))\n",
    "\n",
    "$$\n",
    "    x(t) = x_0 + \\int_0^s f(s, x(s)) ~\\mathrm{d}s.\n",
    "$$\n",
    "\n",
    "**_Remark._** If $f$ is continuous (resp. $C^k$) and $(I, x)$ is a solution, then $x$ is $C^1$ (resp. $C^{k+1})$ on $I$.\n",
    "\n",
    "<div class=\"alert alert-warning\">\n",
    "\n",
    "**Goal**\n",
    "\n",
    "Compute a numerical approximation of a solution $(I, x)$.\n",
    "    \n",
    "</div>\n",
    "\n",
    "We consider a partition $t_0 < t_1 < \\cdots < t_N = t_f$, $[t_0, t_f] \\subset I$. Let $h_i := t_{i+1}-t_i$ denote the time steps (not necessarily equal) for $i = 0, \\cdots, N-1$ and $h_\\mathrm{max} = \\max_i(h_i)$ the longest step.\n",
    "The goal is to compute iteratively approximations of $x(t_1), \\cdots, x(t_N)$ that we will denote by $x_1, \\cdots, x_N$."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Preliminaries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Parameters for integration\n",
    "Nsteps = 10 # Number of integration steps"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Euler"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The [Euler scheme](https://en.wikipedia.org/wiki/Euler_method) is simply given by the following approximation of the integral:\n",
    "\n",
    "$$\n",
    "    \\int_{t_i}^{t_{i+1}} f(s, x(s)) ~\\mathrm{d}s \\approx h_i f(t_i, x_i).\n",
    "$$\n",
    "\n",
    "Hence the Euler scheme is given by\n",
    "\n",
    "$$\n",
    "    x_{i+1} = x_i + h_i f(t_i, x_i).\n",
    "$$\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-info\">\n",
    "\n",
    "**_Question 1:_**\n",
    "    \n",
    "Complete the code of `ode_euler` (see the documentation of the function for details).\n",
    "      \n",
    "</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " ||(cos(t), -sin(t)) - x|| =  [-2.0000000e+00 -1.2246468e-16] \t t =  3.141592653589793\n"
     ]
    }
   ],
   "source": [
    "# ----------------------------\n",
    "# Answer 1 to complete here\n",
    "# ----------------------------\n",
    "#\n",
    "# Euler integrator\n",
    "#\n",
    "def ode_euler(f, t0, x0, tf, N):\n",
    "    \"\"\"\n",
    "        Computes the approximated solution at time tf of \n",
    "\n",
    "            dx = f(t, x), x(t0) = x0\n",
    "            \n",
    "        with the Euler scheme and uniform step size.\n",
    "        \n",
    "        Inputs: \n",
    "        \n",
    "            - f  : dynamics\n",
    "            - t0 : initial time, float\n",
    "            - x0 : initial condition, array\n",
    "            - tf : final time, float\n",
    "            - N  : number of steps, integer\n",
    "            \n",
    "        Outputs:\n",
    "        \n",
    "            - x  : the solution x(tf)     \n",
    "    \"\"\"\n",
    "    \n",
    "    tspan = np.linspace(t0, tf, N+1)\n",
    "    h = (tf-t0)/N\n",
    "    x = x0\n",
    "    \n",
    "    ### TO COMPLETE\n",
    "    \n",
    "    ###\n",
    "        \n",
    "    return x\n",
    "\n",
    "# Test of the Euler integrator\n",
    "# We have x(t) = (cos(t), -sin(t))\n",
    "t = np.pi\n",
    "x = ode_euler(lambda t, x: np.array([x[1], -x[0]]), 0.0, np.array([1.0, 0.0]), t, 100)\n",
    "print(' ||(cos(t), -sin(t)) - x|| = ', np.array([np.cos(t), -np.sin(t)])-x, \\\n",
    "      '\\t t = ', t)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-info\">\n",
    "\n",
    "**_Question 2:_**\n",
    "    \n",
    "Complete the code of `hvfun` implementing the Hamiltonian system $\\vec{H}(z(t), u[z(t)]) = \\vec{h}(z(t))$.\n",
    "      \n",
    "</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# ----------------------------\n",
    "# Answer 2 to complete here\n",
    "# ----------------------------\n",
    "#\n",
    "# Hamiltonian system\n",
    "#\n",
    "def hvfun(t, z):\n",
    "    n  = dimx\n",
    "    x  = z[0:n]\n",
    "    p  = z[n:2*n]\n",
    "    ### TO COMPLETE\n",
    "    hv = np.array([0.0, 0.0, 0.0, 0.0])\n",
    "    return hv"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-info\">\n",
    "\n",
    "**_Question 3:_**\n",
    "    \n",
    "Complete the code of `shoot_euler` implementing the shooting function using `ode_euler` for integration.\n",
    "      \n",
    "</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# ----------------------------\n",
    "# Answer 3 to complete here\n",
    "# ----------------------------\n",
    "#\n",
    "# Shooting function with Euler method\n",
    "#\n",
    "def shoot_euler(p0):\n",
    "    n  = dimx\n",
    "    z0 = np.hstack((x0, p0))\n",
    "    ### TO COMPLETE\n",
    "    s = np.zeros([n])\n",
    "    ###\n",
    "    return s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "     Calls  |f(x)|                 |x|\n",
      " \n",
      "         1  0.000000000000000e+00  1.414213562373095e-01\n",
      "         2  0.000000000000000e+00  1.414213562373095e-01\n",
      "\n",
      " Results of the nle solver method:\n",
      "\n",
      " xsol    =  [0.1 0.1]\n",
      " f(xsol) =  [0. 0.]\n",
      " nfev    =  2\n",
      " njev    =  1\n",
      " status  =  1\n",
      " success =  True \n",
      "\n",
      " Successfully completed: relative error between two consecutive iterates is at most TolX.\n",
      "\n",
      " p0_euler               = [0.1 0.1] \n",
      " ||p0_euler-p0_nutopy|| = 34.29705758448007 \n",
      " shoot(p0_euler)        = [-1.96666508  0.05000781]\n"
     ]
    }
   ],
   "source": [
    "# Resolution of the shooting function\n",
    "p0_guess = np.array([0.1, 0.1])\n",
    "sol_euler = nt.nle.solve(shoot_euler, p0_guess); p0_euler = sol_euler.x\n",
    "\n",
    "# we compare the solution with the one obtained with nutopy\n",
    "# we call the shooting function from nutopy\n",
    "print(' p0_euler               =', p0_euler, \\\n",
    "      '\\n ||p0_euler-p0_nutopy|| =', np.linalg.norm(p0_euler-p0_nutopy), \\\n",
    "      '\\n shoot(p0_euler)        =', shoot(p0_euler))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 900x600 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot solution\n",
    "plotSolution(p0_euler)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Runge"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can show for the Euler method that the global error $||x_N - x(t_f)||$ behaves like $Ch_\\mathrm{max}$, where $C$ is a constant depending on the problem and $h_\\mathrm{max}$ is the maximal step size. Hence, if we want a precision of 6 decimals for instance, then, one would need about a million steps, which is not very satisfactory. The obvious idea to improve the numerical accuracy is to approximate the integral by a quadrature formulae of higher order. If we exploit the middle point, we have\n",
    "\n",
    "$$\n",
    "    x(t_{i+1}) \\approx x_i + h_i f(t_i + \\frac{h_i}{2}, x(t_i + \\frac{h_i}{2})).\n",
    "$$\n",
    "\n",
    "The problem here is that we do not know the value of $x(t_i + \\frac{h_i}{2})$. At this stage, the idea is to approximate it by an Euler step: $x(t_i + \\frac{h_i}{2}) \\approx x_i + \\frac{h_i}{2} f(t_i, x_i)$. At the end, we obtain what we call the [Runge scheme](https://en.wikipedia.org/wiki/Midpoint_method) (or midpoint method):\n",
    "\n",
    "$$\n",
    "     x_{i+1} = x_i + h_i f(t_i + \\frac{h_i}{2}, x_i + \\frac{h_i}{2} f(t_i, x_i)).\n",
    "$$\n",
    "\n",
    "Using the Runge, we can show that the global error is bounded by $Ch_\\mathrm{max}^2$. Hence, to obtain a precision of 6 digits, a thousands steps will usually do."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-info\">\n",
    "\n",
    "**_Question 4:_**\n",
    "    \n",
    "Complete the code of `ode_runge` (see the documentation of the function for details).\n",
    "      \n",
    "</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " ||(cos(t), -sin(t)) - x|| =  [-2.0000000e+00 -1.2246468e-16] \t t =  3.141592653589793\n"
     ]
    }
   ],
   "source": [
    "# ----------------------------\n",
    "# Answer 4 to complete here\n",
    "# ----------------------------\n",
    "#\n",
    "#  Runge integrator\n",
    "#\n",
    "def ode_runge(f, t0, x0, tf, N):\n",
    "    \"\"\"\n",
    "        Computes the approximated solution at time tf of \n",
    "\n",
    "            dx = f(t, x), x(t0) = x0\n",
    "            \n",
    "        with the Runge scheme and uniform step size.\n",
    "        \n",
    "        Inputs: \n",
    "        \n",
    "            - f  : dynamics\n",
    "            - t0 : initial time, float\n",
    "            - x0 : initial condition, array\n",
    "            - tf : final time, float\n",
    "            - N  : number of steps, integer\n",
    "            \n",
    "        Outputs:\n",
    "        \n",
    "            - x  : the solution x(tf)    \n",
    "    \"\"\"\n",
    "    tspan = np.linspace(t0, tf, N+1)\n",
    "    h = (tf-t0)/N\n",
    "    x = x0\n",
    "    \n",
    "    ### TO COMPLETE\n",
    "    \n",
    "    ###\n",
    "    \n",
    "    return x\n",
    "\n",
    "# Test of the Runge integrator\n",
    "# We have x(t) = (cos(t), -sin(t))\n",
    "t = np.pi\n",
    "x = ode_runge(lambda t, x: np.array([x[1], -x[0]]), 0.0, np.array([1.0, 0.0]), t, 100)\n",
    "print(' ||(cos(t), -sin(t)) - x|| = ', np.array([np.cos(t), -np.sin(t)])-x, \\\n",
    "      '\\t t = ', t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Shooting function with Runge method\n",
    "def shoot_runge(p0):\n",
    "    n  = dimx\n",
    "    z0 = np.hstack((x0, p0))\n",
    "    zf = ode_runge(hvfun, t0, z0, tf, Nsteps)\n",
    "    xf = zf[0:n]\n",
    "    s  = xf - xf_target\n",
    "    return s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "     Calls  |f(x)|                 |x|\n",
      " \n",
      "         1  2.000000000000000e+00  1.414213562373095e-01\n",
      "         2  2.000000000000000e+00  1.424248669034822e+01\n",
      "         3  2.000000000000000e+00  7.171765024202418e+00\n",
      "         4  2.000000000000000e+00  1.424248669034822e+01\n",
      "         5  2.000000000000000e+00  7.171765024202418e+00\n",
      "         6  2.000000000000000e+00  3.636908959705556e+00\n",
      "         7  2.000000000000000e+00  1.870442030802686e+00\n",
      "         8  2.000000000000000e+00  9.889523220543228e-01\n",
      "         9  2.000000000000000e+00  5.510905984031288e-01\n",
      "        10  2.000000000000000e+00  3.361878921439011e-01\n",
      "        11  2.000000000000000e+00  2.330324401496058e-01\n",
      "        12  2.000000000000000e+00  1.846626688546979e-01\n",
      "        13  2.000000000000000e+00  1.621333129900975e-01\n",
      "        14  2.000000000000000e+00  1.515020485910709e-01\n",
      "        15  2.000000000000000e+00  1.463856265069262e-01\n",
      "        16  2.000000000000000e+00  1.438834767961824e-01\n",
      "        17  2.000000000000000e+00  1.426472825371728e-01\n",
      "        18  2.000000000000000e+00  1.420330192228565e-01\n",
      "        19  2.000000000000000e+00  1.417268605814199e-01\n",
      "        20  2.000000000000000e+00  1.415740263572520e-01\n",
      "        21  2.000000000000000e+00  1.414976707510402e-01\n",
      "        22  2.000000000000000e+00  1.414595083534572e-01\n",
      "        23  2.000000000000000e+00  1.414404310096839e-01\n",
      "        24  2.000000000000000e+00  1.414308933020068e-01\n",
      "        25  2.000000000000000e+00  1.414261246892776e-01\n",
      "        26  2.000000000000000e+00  1.414237404431974e-01\n",
      "        27  2.000000000000000e+00  1.414225483352293e-01\n",
      "        28  2.000000000000000e+00  1.414219522850133e-01\n",
      "        29  2.000000000000000e+00  1.414216542608474e-01\n",
      "        30  2.000000000000000e+00  1.414215052490000e-01\n",
      "        31  2.000000000000000e+00  1.414214307431351e-01\n",
      "        32  2.000000000000000e+00  1.414213934902174e-01\n",
      "        33  2.000000000000000e+00  1.414213748637622e-01\n",
      "        34  2.000000000000000e+00  1.414213655505356e-01\n",
      "        35  2.000000000000000e+00  1.414213608939225e-01\n",
      "        36  2.000000000000000e+00  1.414213585656160e-01\n",
      "        37  2.000000000000000e+00  1.414213574014627e-01\n",
      "\n",
      " Results of the nle solver method:\n",
      "\n",
      " xsol    =  [0.1 0.1]\n",
      " f(xsol) =  [-2.  0.]\n",
      " nfev    =  37\n",
      " njev    =  2\n",
      " status  =  1\n",
      " success =  True \n",
      "\n",
      " Successfully completed: relative error between two consecutive iterates is at most TolX.\n",
      "\n",
      " p0_runge               = [0.1 0.1] \n",
      " ||p0_runge-p0_nutopy|| = 34.29705758448007 \n",
      " shoot(p0_runge)        = [-1.96666508  0.05000781]\n"
     ]
    }
   ],
   "source": [
    "# Resolution of the shooting function\n",
    "p0_guess = np.array([0.1, 0.1])\n",
    "sol_runge = nt.nle.solve(shoot_runge, p0_guess); p0_runge = sol_runge.x\n",
    "\n",
    "# we compare the solution with the one obtained with nutopy\n",
    "# we call the shooting function from nutopy\n",
    "print(' p0_runge               =', p0_runge, \\\n",
    "      '\\n ||p0_runge-p0_nutopy|| =', np.linalg.norm(p0_runge-p0_nutopy), \\\n",
    "      '\\n shoot(p0_runge)        =', shoot(p0_runge))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 900x600 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot solution\n",
    "plotSolution(p0_runge)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Rk4"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The Euler method is a order 1 method while the Runge method is of order 2. A method of order $p$ has a global error bounded by $Ch_\\mathrm{max}^p$. To improve the numerical accuracy we can continue and define new methods of higher orders. The main method of order 3 is given by the [Heun scheme](https://en.wikipedia.org/wiki/Heun%27s_method). In this part, we will implement a method of order 4 simply called *rk4 method*. The Euler, Runge, Heun and rk4 methods are parts of what we call  explicit [Runge-Kutta](https://en.wikipedia.org/wiki/Runge–Kutta_methods) methods.\n",
    "\n",
    "**_Remark_.** In the following definition, we give only the first iteration: $x_1 = x_0 + h \\Phi(t_0, x_0, h)$.\n",
    "\n",
    "**_Definition._** Let $s$ be an integer (the number of *stages*). \n",
    "We call a *s-stages explicit Runge-Kutta* method for (IVP), a method defined by the scheme\n",
    "\n",
    "$$\n",
    "\\begin{equation}\\label{eq:Runge-Kutta}\n",
    "\\begin{array}{l}\n",
    "k_1=f(t_0,x_0)\\\\\n",
    "k_2=f(t_0+c_2h,x_0+ha_{21}k_1)\\\\\n",
    "\\vdots\\\\\n",
    "k_s=f(t_0+c_sh,x_0+h\\sum_{i=1}^{s-1}a_{si}k_i)\\\\\n",
    "x_1=x_0+h\\sum_{i=1}^{s}b_ik_i\n",
    "\\end{array}\n",
    "\\end{equation}\n",
    "$$\n",
    "\n",
    "where the coefficients $c_i$, $a_{ij}$ and $b_i$ are constants.\n",
    "\n",
    "**_Assumptions._** We introduce $c_1=0$ and assume that $c_i=\\sum_{j=1}^{i-1}a_{ij}$ for $i=2,\\ldots,s$.\n",
    "\n",
    "A Runge-Kutta method is represented in practice by its *Butcher table*:\n",
    "\n",
    "$$\n",
    "\\begin{array}{c|ccccc}\n",
    "c_1 & & & & &\\\\\n",
    "c_2 & a_{21} & & & & \\\\\n",
    "c_3 & a_{31} & a_{32} & & &\\\\\n",
    "\\vdots & \\vdots & \\vdots & \\ddots & & \\\\ \n",
    "c_s & a_{s1} & a_{s2} & \\ldots & a_{ss-1} &    \\\\ \\hline\n",
    "    & b_1    & b_2    & \\ldots & b_{s-1}  & b_s\\\\\n",
    "\\end{array}\n",
    "$$\n",
    "\n",
    "We give the following Butcher tables:\n",
    "\n",
    "$$\n",
    "\\begin{array}[t]{cccc}\n",
    "\\begin{array}{c}\n",
    "\\\\ \\\\ \\\\\n",
    "\\begin{array}{c|c}\n",
    "0 &   \\\\\\hline\n",
    "& 1\n",
    "\\end{array}\n",
    "\\end{array}\n",
    "& \n",
    "\\begin{array}{c}\n",
    "\\\\ \\\\\n",
    "\\begin{array}{c|cc}\n",
    "0 &  &\\\\\n",
    "1/2 & 1/2 &\\\\ \\hline\n",
    " & 0 & 1\n",
    "\\end{array}\n",
    "\\end{array}\n",
    "&\n",
    "\\begin{array}{c}\n",
    "\\\\\n",
    "& \\begin{array}{c|ccc}\n",
    "0 &  &  & \\\\\n",
    "1/3 & 1/3 & & \\\\\n",
    "2/3 & 0 & 2/3 & \\\\ \\hline\n",
    " & 1/4 & 0 & 3/4\n",
    "\\end{array}\n",
    "\\end{array}\n",
    "& \n",
    "\\begin{array}{c|cccc}\n",
    "0 &  &  & &\\\\\n",
    "1/2 & 1/2 & & &\\\\\n",
    "1/2 & 0 & 1/2 & &\\\\ \n",
    "1 &   0 & 0   & 1 &\\\\ \\hline\n",
    " & 1/6 & 2/6 & 2/6 & 1/6\n",
    "\\end{array} \\\\\n",
    "\\textrm{Euler (order 1)} & \\textrm{Runge (order 2)} & \\textrm{Heun (order 3)} & \\textrm{rk4 method (order 4)}\n",
    "\\end{array}\n",
    "$$\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-info\">\n",
    "\n",
    "**_Question 5:_**\n",
    "    \n",
    "Complete the code of `ode_rk4` (see the documentation of the function for details).\n",
    "      \n",
    "</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " ||(cos(t), -sin(t)) - x|| =  [-2.0000000e+00 -1.2246468e-16] \t t =  3.141592653589793\n"
     ]
    }
   ],
   "source": [
    "# ----------------------------\n",
    "# Answer 5 to complete here\n",
    "# ----------------------------\n",
    "#\n",
    "#   RK4 integrator\n",
    "#\n",
    "def ode_rk4(f, t0, x0, tf, N):\n",
    "    \"\"\"\n",
    "        Computes the approximated solution at time tf of \n",
    "\n",
    "            dx = f(t, x), x(t0) = x0\n",
    "            \n",
    "        with the rk4 scheme and uniform step size.\n",
    "        \n",
    "        Inputs: \n",
    "        \n",
    "            - f  : dynamics\n",
    "            - t0 : initial time, float\n",
    "            - x0 : initial condition, array\n",
    "            - tf : final time, float\n",
    "            - N  : number of steps, integer\n",
    "            \n",
    "        Outputs:\n",
    "        \n",
    "            - x  : the solution x(tf)    \n",
    "    \"\"\"\n",
    "    tspan = np.linspace(t0, tf, N+1)\n",
    "    h = (tf-t0)/N\n",
    "    x = x0\n",
    "    \n",
    "    ### TO COMPLETE\n",
    "    \n",
    "    ###\n",
    "    \n",
    "    return x\n",
    "\n",
    "# Test of the RK4 integrator\n",
    "# We have x(t) = (cos(t), -sin(t))\n",
    "t = np.pi\n",
    "x = ode_rk4(lambda t, x: np.array([x[1], -x[0]]), 0.0, np.array([1.0, 0.0]), t, 100)\n",
    "print(' ||(cos(t), -sin(t)) - x|| = ', np.array([np.cos(t), -np.sin(t)])-x, \\\n",
    "      '\\t t = ', t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Shooting function with rk4 method\n",
    "def shoot_rk4(p0):\n",
    "    n  = dimx\n",
    "    z0 = np.hstack((x0, p0))\n",
    "    zf = ode_rk4(hvfun, t0, z0, tf, Nsteps)\n",
    "    xf = zf[0:n]\n",
    "    s  = xf - xf_target\n",
    "    return s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "     Calls  |f(x)|                 |x|\n",
      " \n",
      "         1  2.000000000000000e+00  1.414213562373095e-01\n",
      "         2  2.000000000000000e+00  1.424248669034822e+01\n",
      "         3  2.000000000000000e+00  7.171765024202418e+00\n",
      "         4  2.000000000000000e+00  1.424248669034822e+01\n",
      "         5  2.000000000000000e+00  7.171765024202418e+00\n",
      "         6  2.000000000000000e+00  3.636908959705556e+00\n",
      "         7  2.000000000000000e+00  1.870442030802686e+00\n",
      "         8  2.000000000000000e+00  9.889523220543228e-01\n",
      "         9  2.000000000000000e+00  5.510905984031288e-01\n",
      "        10  2.000000000000000e+00  3.361878921439011e-01\n",
      "        11  2.000000000000000e+00  2.330324401496058e-01\n",
      "        12  2.000000000000000e+00  1.846626688546979e-01\n",
      "        13  2.000000000000000e+00  1.621333129900975e-01\n",
      "        14  2.000000000000000e+00  1.515020485910709e-01\n",
      "        15  2.000000000000000e+00  1.463856265069262e-01\n",
      "        16  2.000000000000000e+00  1.438834767961824e-01\n",
      "        17  2.000000000000000e+00  1.426472825371728e-01\n",
      "        18  2.000000000000000e+00  1.420330192228565e-01\n",
      "        19  2.000000000000000e+00  1.417268605814199e-01\n",
      "        20  2.000000000000000e+00  1.415740263572520e-01\n",
      "        21  2.000000000000000e+00  1.414976707510402e-01\n",
      "        22  2.000000000000000e+00  1.414595083534572e-01\n",
      "        23  2.000000000000000e+00  1.414404310096839e-01\n",
      "        24  2.000000000000000e+00  1.414308933020068e-01\n",
      "        25  2.000000000000000e+00  1.414261246892776e-01\n",
      "        26  2.000000000000000e+00  1.414237404431974e-01\n",
      "        27  2.000000000000000e+00  1.414225483352293e-01\n",
      "        28  2.000000000000000e+00  1.414219522850133e-01\n",
      "        29  2.000000000000000e+00  1.414216542608474e-01\n",
      "        30  2.000000000000000e+00  1.414215052490000e-01\n",
      "        31  2.000000000000000e+00  1.414214307431351e-01\n",
      "        32  2.000000000000000e+00  1.414213934902174e-01\n",
      "        33  2.000000000000000e+00  1.414213748637622e-01\n",
      "        34  2.000000000000000e+00  1.414213655505356e-01\n",
      "        35  2.000000000000000e+00  1.414213608939225e-01\n",
      "        36  2.000000000000000e+00  1.414213585656160e-01\n",
      "        37  2.000000000000000e+00  1.414213574014627e-01\n",
      "\n",
      " Results of the nle solver method:\n",
      "\n",
      " xsol    =  [0.1 0.1]\n",
      " f(xsol) =  [-2.  0.]\n",
      " nfev    =  37\n",
      " njev    =  2\n",
      " status  =  1\n",
      " success =  True \n",
      "\n",
      " Successfully completed: relative error between two consecutive iterates is at most TolX.\n",
      "\n",
      " p0_rk4               = [0.1 0.1] \n",
      " ||p0_rk4-p0_nutopy|| = 34.29705758448007 \n",
      " shoot(p0_rk4)        = [-1.96666508  0.05000781]\n"
     ]
    }
   ],
   "source": [
    "# Resolution of the shooting function\n",
    "p0_guess = np.array([0.1, 0.1])\n",
    "sol_rk4 = nt.nle.solve(shoot_rk4, p0_guess); p0_rk4 = sol_rk4.x\n",
    "\n",
    "# we compare the solution with the one obtained with nutopy\n",
    "# we call the shooting function from nutopy\n",
    "print(' p0_rk4               =', p0_rk4, \\\n",
    "      '\\n ||p0_rk4-p0_nutopy|| =', np.linalg.norm(p0_rk4-p0_nutopy), \\\n",
    "      '\\n shoot(p0_rk4)        =', shoot(p0_rk4))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 900x600 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot solution\n",
    "plotSolution(p0_rk4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 3: Replacing the Newton solver"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this part, we define a Newton method to solve the shooting equations. In the description of the shooting equations, we use the rk4 integrator to compute the flow of the Hamiltonian system."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Preliminaries\n",
    "\n",
    "The following methods may be used to print information during the interations of the Newton solver."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "def static_vars(**kwargs):\n",
    "    def decorate(func):\n",
    "        for k in kwargs:\n",
    "            setattr(func, k, kwargs[k])\n",
    "        return func\n",
    "    return decorate\n",
    "\n",
    "@static_vars(counter=0)\n",
    "def callbackPrint(x,f):\n",
    "    if(callbackPrint.counter==0):\n",
    "        print('\\n     Calls  |f(x)|                 |x|\\n ')\n",
    "    print('{0:10}'.format(callbackPrint.counter+1) + \\\n",
    "            '{0:23.15e}'.format(np.linalg.norm(f)) + \\\n",
    "            '{0:23.15e}'.format(np.linalg.norm(x)))\n",
    "    callbackPrint.counter += 1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Coding the Newton solver"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us recall the [Newton method](https://en.wikipedia.org/wiki/Newton%27s_method). Let us consider the nonlinear system of equations\n",
    "\n",
    "$$\n",
    "    f(x) = 0_{\\mathrm{R}^n},\n",
    "$$\n",
    "\n",
    "with $f : \\Omega \\subset \\mathrm{R}^n \\to \\mathrm{R}^n$, differentiable on the open set $\\Omega$. The Newton method consists in solving iteratively a linear approximation of the system of equations. Let $k$ be the current iteration and $x^{(k)}$ the current iterate. The linear approximation reads\n",
    "\n",
    "$$\n",
    "    f(x^{(k)} + d) = f(x^{(k)}) + J_f(x^{(k)}) d + o(||d||), \\quad d \\in \\mathrm{R}^n,\n",
    "$$\n",
    "\n",
    "where $J_f$ is the Jacobian of $f$ and where we have used the [Landau notation](https://en.wikipedia.org/wiki/Big_O_notation). Let us set\n",
    "\n",
    "$$\n",
    "    f_k(d) = f(x^{(k)}) + J_f(x^{(k)}) d.\n",
    "$$\n",
    "\n",
    "We update the iterate as follows:\n",
    "$\n",
    "    x^{(k+1)} = x^{(k)} + d^{(k)},\n",
    "$\n",
    "where $d^{(k)}$ is the solution of \n",
    "$\n",
    "    f_k(d) = 0.\n",
    "$\n",
    "\n",
    "This system being linear, if $J_f(x^{(k)})$ is invertible, then the next iterate is given by\n",
    "\n",
    "$$\n",
    "    x^{(k+1)} = x^{(k)} - \\left( J_f(x^{(k)}) \\right)^{-1} f(x^{(k)}).\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-info\">\n",
    "\n",
    "**_Question 6:_**\n",
    "    \n",
    "Complete the code of `newton` (see the documentation of the function for details).\n",
    "      \n",
    "</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# ----------------------------\n",
    "# Answer 6 to complete here\n",
    "# ----------------------------\n",
    "#\n",
    "# Newton solver\n",
    "#\n",
    "def newton(f, jf, x0):\n",
    "    '''\n",
    "        Solve f(x) = 0, with a Newton method, starting from the iterate x0.\n",
    "        \n",
    "        Usage:\n",
    "        \n",
    "            x, y, flag, it = newton(f, jf, x0)\n",
    "        \n",
    "        Newton iteration:\n",
    "        \n",
    "            x_{k+1} = x_k - d_k, d_k solution of f'(x_k) d = - f(x_k)\n",
    "        \n",
    "        Inputs: \n",
    "        \n",
    "            - f  : function f(x)\n",
    "            - jf : Jacobian of f\n",
    "            - x0 : initial iterate\n",
    "            \n",
    "        Returns:\n",
    "        \n",
    "            - x    : solution of f(x)=0 if convergence, last iterate otherwise\n",
    "            - y    : f(x)\n",
    "            - flag : -1 if itermax is reached,\n",
    "                      1 if ||d|| < tolx * max(||x||, 1) at the last iterate\n",
    "            - it   : number of iterations\n",
    "        \n",
    "        Numpy use:\n",
    "        \n",
    "            - linear.solve to solve Ax=b.\n",
    "            - linalg.norm to compute the norm of a vector\n",
    "            - maximum\n",
    "        \n",
    "        Remark: you can use callbackPrint to plot infos during the iterations.\n",
    "        Do not forget to reset the counter: callbackPrint.counter=0 before return.\n",
    "        \n",
    "    '''\n",
    "    tolx    = 1e-6\n",
    "    itermax = 50\n",
    "    \n",
    "    i    = 0\n",
    "    x    = x0\n",
    "    flag = 0\n",
    "    \n",
    "    while flag == 0:\n",
    "    \n",
    "        # get f(x) and Jf(x)\n",
    "        A = 0.0 ### TO COMPLETE\n",
    "        b = 0.0 ### TO COMPLETE\n",
    "        \n",
    "        # print\n",
    "        callbackPrint(x, b)\n",
    "        \n",
    "        # solve the linear system\n",
    "        d = 0.0 ### TO COMPLETE\n",
    "        \n",
    "        # update the iterate\n",
    "        # x = 0.0 ### TO COMPLETE\n",
    "        \n",
    "        # test stop criterion\n",
    "        i = i + 1 \n",
    "        if(i==itermax):\n",
    "            flag = -1\n",
    "        ### TO COMPLETE\n",
    "        # ...\n",
    "        ### END TO COMPLETE\n",
    "   \n",
    "    # print\n",
    "    b = f(x)\n",
    "    callbackPrint(x, b)\n",
    "    \n",
    "    # reset counter\n",
    "    callbackPrint.counter=0\n",
    "    \n",
    "    # return\n",
    "    return x, b, flag, i"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "     Calls  |f(x)|                 |x|\n",
      " \n",
      "         1  0.000000000000000e+00  1.414213562373095e+00\n",
      "         2  0.000000000000000e+00  1.414213562373095e+00\n",
      "         3  0.000000000000000e+00  1.414213562373095e+00\n",
      "         4  0.000000000000000e+00  1.414213562373095e+00\n",
      "         5  0.000000000000000e+00  1.414213562373095e+00\n",
      "         6  0.000000000000000e+00  1.414213562373095e+00\n",
      "         7  0.000000000000000e+00  1.414213562373095e+00\n",
      "         8  0.000000000000000e+00  1.414213562373095e+00\n",
      "         9  0.000000000000000e+00  1.414213562373095e+00\n",
      "        10  0.000000000000000e+00  1.414213562373095e+00\n",
      "        11  0.000000000000000e+00  1.414213562373095e+00\n",
      "        12  0.000000000000000e+00  1.414213562373095e+00\n",
      "        13  0.000000000000000e+00  1.414213562373095e+00\n",
      "        14  0.000000000000000e+00  1.414213562373095e+00\n",
      "        15  0.000000000000000e+00  1.414213562373095e+00\n",
      "        16  0.000000000000000e+00  1.414213562373095e+00\n",
      "        17  0.000000000000000e+00  1.414213562373095e+00\n",
      "        18  0.000000000000000e+00  1.414213562373095e+00\n",
      "        19  0.000000000000000e+00  1.414213562373095e+00\n",
      "        20  0.000000000000000e+00  1.414213562373095e+00\n",
      "        21  0.000000000000000e+00  1.414213562373095e+00\n",
      "        22  0.000000000000000e+00  1.414213562373095e+00\n",
      "        23  0.000000000000000e+00  1.414213562373095e+00\n",
      "        24  0.000000000000000e+00  1.414213562373095e+00\n",
      "        25  0.000000000000000e+00  1.414213562373095e+00\n",
      "        26  0.000000000000000e+00  1.414213562373095e+00\n",
      "        27  0.000000000000000e+00  1.414213562373095e+00\n",
      "        28  0.000000000000000e+00  1.414213562373095e+00\n",
      "        29  0.000000000000000e+00  1.414213562373095e+00\n",
      "        30  0.000000000000000e+00  1.414213562373095e+00\n",
      "        31  0.000000000000000e+00  1.414213562373095e+00\n",
      "        32  0.000000000000000e+00  1.414213562373095e+00\n",
      "        33  0.000000000000000e+00  1.414213562373095e+00\n",
      "        34  0.000000000000000e+00  1.414213562373095e+00\n",
      "        35  0.000000000000000e+00  1.414213562373095e+00\n",
      "        36  0.000000000000000e+00  1.414213562373095e+00\n",
      "        37  0.000000000000000e+00  1.414213562373095e+00\n",
      "        38  0.000000000000000e+00  1.414213562373095e+00\n",
      "        39  0.000000000000000e+00  1.414213562373095e+00\n",
      "        40  0.000000000000000e+00  1.414213562373095e+00\n",
      "        41  0.000000000000000e+00  1.414213562373095e+00\n",
      "        42  0.000000000000000e+00  1.414213562373095e+00\n",
      "        43  0.000000000000000e+00  1.414213562373095e+00\n",
      "        44  0.000000000000000e+00  1.414213562373095e+00\n",
      "        45  0.000000000000000e+00  1.414213562373095e+00\n",
      "        46  0.000000000000000e+00  1.414213562373095e+00\n",
      "        47  0.000000000000000e+00  1.414213562373095e+00\n",
      "        48  0.000000000000000e+00  1.414213562373095e+00\n",
      "        49  0.000000000000000e+00  1.414213562373095e+00\n",
      "        50  0.000000000000000e+00  1.414213562373095e+00\n",
      "        51  1.000000000000000e+00  1.414213562373095e+00\n",
      "(array([1., 1.]), array([0.54030231, 0.84147098]), -1, 50)\n"
     ]
    }
   ],
   "source": [
    "# Test on the functions cosinus and sinus\n",
    "print(newton(lambda x: np.array([np.cos(x[0]), np.sin(x[1])]),   \\\n",
    "             lambda x: np.array([[-np.sin(x[0]), 0], [0, np.cos(x[1])]]), \\\n",
    "             np.array([1.0, 1.0])))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Solve the shooting equations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Jacobian of the shooting function\n",
    "def jshoot(p0):\n",
    "    \"\"\"jac = jshoot(p0)\n",
    "\n",
    "    Jacobian of shooting function wrt. p0\n",
    "    \"\"\"\n",
    "    n = dimx\n",
    "    dp0 = np.eye(n)\n",
    "    jac = np.zeros((n, n))\n",
    "\n",
    "    for i in range(0, n):\n",
    "        _, jac[:, i] = shoot((p0, dp0[i, :]))\n",
    "\n",
    "    return jac"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "     Calls  |f(x)|                 |x|\n",
      " \n",
      "         1  0.000000000000000e+00  1.414213562373095e-01\n",
      "         2  0.000000000000000e+00  1.414213562373095e-01\n",
      "         3  0.000000000000000e+00  1.414213562373095e-01\n",
      "         4  0.000000000000000e+00  1.414213562373095e-01\n",
      "         5  0.000000000000000e+00  1.414213562373095e-01\n",
      "         6  0.000000000000000e+00  1.414213562373095e-01\n",
      "         7  0.000000000000000e+00  1.414213562373095e-01\n",
      "         8  0.000000000000000e+00  1.414213562373095e-01\n",
      "         9  0.000000000000000e+00  1.414213562373095e-01\n",
      "        10  0.000000000000000e+00  1.414213562373095e-01\n",
      "        11  0.000000000000000e+00  1.414213562373095e-01\n",
      "        12  0.000000000000000e+00  1.414213562373095e-01\n",
      "        13  0.000000000000000e+00  1.414213562373095e-01\n",
      "        14  0.000000000000000e+00  1.414213562373095e-01\n",
      "        15  0.000000000000000e+00  1.414213562373095e-01\n",
      "        16  0.000000000000000e+00  1.414213562373095e-01\n",
      "        17  0.000000000000000e+00  1.414213562373095e-01\n",
      "        18  0.000000000000000e+00  1.414213562373095e-01\n",
      "        19  0.000000000000000e+00  1.414213562373095e-01\n",
      "        20  0.000000000000000e+00  1.414213562373095e-01\n",
      "        21  0.000000000000000e+00  1.414213562373095e-01\n",
      "        22  0.000000000000000e+00  1.414213562373095e-01\n",
      "        23  0.000000000000000e+00  1.414213562373095e-01\n",
      "        24  0.000000000000000e+00  1.414213562373095e-01\n",
      "        25  0.000000000000000e+00  1.414213562373095e-01\n",
      "        26  0.000000000000000e+00  1.414213562373095e-01\n",
      "        27  0.000000000000000e+00  1.414213562373095e-01\n",
      "        28  0.000000000000000e+00  1.414213562373095e-01\n",
      "        29  0.000000000000000e+00  1.414213562373095e-01\n",
      "        30  0.000000000000000e+00  1.414213562373095e-01\n",
      "        31  0.000000000000000e+00  1.414213562373095e-01\n",
      "        32  0.000000000000000e+00  1.414213562373095e-01\n",
      "        33  0.000000000000000e+00  1.414213562373095e-01\n",
      "        34  0.000000000000000e+00  1.414213562373095e-01\n",
      "        35  0.000000000000000e+00  1.414213562373095e-01\n",
      "        36  0.000000000000000e+00  1.414213562373095e-01\n",
      "        37  0.000000000000000e+00  1.414213562373095e-01\n",
      "        38  0.000000000000000e+00  1.414213562373095e-01\n",
      "        39  0.000000000000000e+00  1.414213562373095e-01\n",
      "        40  0.000000000000000e+00  1.414213562373095e-01\n",
      "        41  0.000000000000000e+00  1.414213562373095e-01\n",
      "        42  0.000000000000000e+00  1.414213562373095e-01\n",
      "        43  0.000000000000000e+00  1.414213562373095e-01\n",
      "        44  0.000000000000000e+00  1.414213562373095e-01\n",
      "        45  0.000000000000000e+00  1.414213562373095e-01\n",
      "        46  0.000000000000000e+00  1.414213562373095e-01\n",
      "        47  0.000000000000000e+00  1.414213562373095e-01\n",
      "        48  0.000000000000000e+00  1.414213562373095e-01\n",
      "        49  0.000000000000000e+00  1.414213562373095e-01\n",
      "        50  0.000000000000000e+00  1.414213562373095e-01\n",
      "        51  2.000000000000000e+00  1.414213562373095e-01\n",
      "\n",
      " p0_sol     = [0.1 0.1] \n",
      " shoot      = [-1.96666508  0.05000781] \n",
      " flag       = -1 \n",
      " iterations = 50\n"
     ]
    }
   ],
   "source": [
    "# Resolution of the shooting function\n",
    "p0_guess = np.array([0.1, 0.1])\n",
    "p0_sol, S_sol, flag, it = newton(shoot_rk4, jshoot, p0_guess)\n",
    "print('\\n p0_sol     =', p0_sol, \\\n",
    "      '\\n shoot      =', shoot(p0_sol), \\\n",
    "      '\\n flag       =', flag, \\\n",
    "      '\\n iterations =', it)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 900x600 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot solution\n",
    "plotSolution(p0_sol)"
   ]
  }
 ],
 "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.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}