diff --git a/cours/slides_chapitre_1.pdf b/cours/slides_chapitre_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f148ce73327bbed3e975d56131b76f83bcf0b910 Binary files /dev/null and b/cours/slides_chapitre_1.pdf differ diff --git a/cours/slides_chapitre_2.pdf b/cours/slides_chapitre_2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..81adc10b79a8b460c2df4a7870ce1abef5a966a8 Binary files /dev/null and b/cours/slides_chapitre_2.pdf differ diff --git a/cours/slides_chapitre_3.pdf b/cours/slides_chapitre_3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..73098bb0177b7ddb4ec32108b815bc155814b072 Binary files /dev/null and b/cours/slides_chapitre_3.pdf differ diff --git a/cours/slides_chapitre_4.pdf b/cours/slides_chapitre_4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..06303ce41557382fa4a8661f2ebe33d1cd4d48a2 Binary files /dev/null and b/cours/slides_chapitre_4.pdf differ diff --git a/cours/slides_chapitre_5.pdf b/cours/slides_chapitre_5.pdf new file mode 100644 index 0000000000000000000000000000000000000000..28f9a232b18770a4f237c9291590f527e010df3d Binary files /dev/null and b/cours/slides_chapitre_5.pdf differ diff --git a/cours/slides_pour_impression/slides_chapitre_1.pdf b/cours/slides_pour_impression/slides_chapitre_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..19e9aaed2f35b42cf181664e0bd8c4c24c51127a Binary files /dev/null and b/cours/slides_pour_impression/slides_chapitre_1.pdf differ diff --git a/cours/slides_pour_impression/slides_chapitre_2.pdf b/cours/slides_pour_impression/slides_chapitre_2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2274d9728a36f8692ac61b60d002794923d8e51c Binary files /dev/null and b/cours/slides_pour_impression/slides_chapitre_2.pdf differ diff --git a/cours/slides_pour_impression/slides_chapitre_3.pdf b/cours/slides_pour_impression/slides_chapitre_3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a939f943a932f6578800f2ac9b1af7d502184040 Binary files /dev/null and b/cours/slides_pour_impression/slides_chapitre_3.pdf differ diff --git a/cours/slides_pour_impression/slides_chapitre_4.pdf b/cours/slides_pour_impression/slides_chapitre_4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d3441f7947c4a467d38d29180f0a3381239900ac Binary files /dev/null and b/cours/slides_pour_impression/slides_chapitre_4.pdf differ diff --git a/cours/slides_pour_impression/slides_chapitre_5.pdf b/cours/slides_pour_impression/slides_chapitre_5.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1651cff9899389aa0db63542fab91fb177197c03 Binary files /dev/null and b/cours/slides_pour_impression/slides_chapitre_5.pdf differ diff --git a/td/exercices-correction.pdf b/td/exercices-correction.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ea570e1552e5af995c679d347bc85c133654db06 Binary files /dev/null and b/td/exercices-correction.pdf differ diff --git a/td/exercices.pdf b/td/exercices.pdf new file mode 100644 index 0000000000000000000000000000000000000000..417978da3a8bc418d9829e6356e12b4712888f4e Binary files /dev/null and b/td/exercices.pdf differ diff --git a/tp/multiple_shooting_bsb.ipynb b/tp/multiple_shooting_bsb.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..6eade5b7d2e892cc5b7be610993df8f1c3ae16f4 --- /dev/null +++ b/tp/multiple_shooting_bsb.ipynb @@ -0,0 +1,872 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction to indirect multiple shooting: the Bang-Singular-Bang case on a turnpike problem " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Author: Olivier Cots\n", + "* Date: March 2021\n", + "\n", + "------" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## I) Description of the optimal control problem" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We consider the following optimal control problem:\n", + "\n", + "$$ \n", + " \\left\\{ \n", + " \\begin{array}{l}\n", + " \\displaystyle J(u) := \\displaystyle \\int_0^{t_f} x^2(t) \\, \\mathrm{d}t \\longrightarrow \\min \\\\[1.0em]\n", + " \\dot{x}(t) = f(x(t), u(t)) := \\displaystyle u(t), \\quad |u(t)| \\le 1, \\quad t \\in [0, t_f] \\text{ a.e.}, \\\\[1.0em]\n", + " x(0) = 1, \\quad x(t_f) = 1/2.\n", + " \\end{array}\n", + " \\right. \n", + "$$\n", + "\n", + "To this optimal control problem is associated the stationnary optimization problem\n", + "\n", + "$$\n", + " \\min_{(x, u)} \\{~ x^2 ~ | ~ (x, u) \\in \\mathrm{R} \\times [-1, 1],~ f(x,u) = u = 0\\}.\n", + "$$\n", + "\n", + "The static solution is thus $(x^*, u^*) = (0, 0)$. This solution may be seen as the static pair $(x, u)$ which minimizes the cost $J(u)$ under\n", + "the constraint $u \\in [-1, 1]$.\n", + "It is well known that this problem is what we call a *turnpike* optimal control problem.\n", + "Hence, if the final time $t_f$ is long enough the solution is of the following form: \n", + "starting from $x(0)=1$, reach as fast as possible the static solution, stay at the static solution as long as possible before reaching\n", + "the target $x(t_f)=1/2$. In this case, the optimal control would be\n", + "\n", + "$$\n", + " u(t) = \\left\\{ \n", + " \\begin{array}{lll}\n", + " -1 & \\text{if} & t \\in [0, t_1], \\\\[0.5em]\n", + " \\phantom{-}0 & \\text{if} & t \\in (t_1, t_2], \\\\[0.5em]\n", + " +1 & \\text{if} & t \\in (t_2, t_f],\n", + " \\end{array}\n", + " \\right. \n", + "$$\n", + "\n", + "with $0 < t_1 < t_2 < t_f$. We say that the control is *Bang-Singular-Bang*. A Bang arc corresponds to $u \\in \\{-1, 1\\}$ while a singular control corresponds to $u \\in (-1, 1)$. Since the optimal control law is discontinuous, then to solve this optimal control problem by indirect methods and find the *switching times* $t_1$ and $t_2$, we need to implement what we call a *multiple shooting method*. In the next section we introduce a regularization technique to force the control to be in the set $(-1,1)$ and to be smooth. In this context, we will be able to implement a simple shooting method and determine the structure of the optimal control law. Thanks to the simple shooting method, we will have the structure of the optimal control law together with an approximation of the switching times that we will use as initial guess for the multiple shooting method that we present in the last section.\n", + "\n", + "<div class=\"alert alert-warning\">\n", + "\n", + "**Main goal**\n", + "\n", + "Find the switching times $t_1$ and $t_2$ by multiple shooting.\n", + " \n", + "</div>\n", + "\n", + "Steps:\n", + "\n", + "1. Regularize the problem and solve the regularized problem by simple shooting.\n", + "2. Determine the structure of the non-regularized optimal control problem, that is the structure Bang-Singular-Bang, and find a good approximation of the switching times and of the initial co-vector.\n", + "3. Solve the non-regularized optimal control problem by multiple shooting.\n", + "\n", + "**_Remark 1._** See this [page](https://ct.gitlabpages.inria.fr/gallery/shooting_tutorials/simple_shooting_general.html) for a general presentation of the simple shooting method.\n", + "\n", + "**_Remark 2._** In this particular example, the singular control does not depend on the costate $p$ since it is constant. This happens in low dimension. This could be taken into consideration to simplify the definition of the multiple shooting method. However, to stay general, we will not consider this particular property in this notebook. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## II) Regularization and simple shooting" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We make the following regularization:\n", + "\n", + "$$ \n", + " \\left\\{ \n", + " \\begin{array}{l}\n", + " \\displaystyle J(u) := \\displaystyle \\int_0^{t_f} (x^2(t) - \\varepsilon\\ln(1-u^2(t))) \\, \\mathrm{d}t \\longrightarrow \\min \\\\[1.0em]\n", + " \\dot{x}(t) = f(x(t), u(t)) := \\displaystyle u(t), \\quad |u(t)| \\le 1, \\quad t \\in [0, t_f] \\text{ a.e.}, \\\\[1.0em]\n", + " x(0) = 1, \\quad x(t_f) = 1/2.\n", + " \\end{array}\n", + " \\right. \n", + "$$\n", + "\n", + "Our goal is to determine the structure of the optimal control problem when $(\\varepsilon, t_f) = (0, 2)$. The problem is simpler to solver when $\\varepsilon$ is bigger and $t_f$ is smaller. It is also smooth whenever $\\varepsilon>0$. Hence, we will start by solving the problem for $(\\varepsilon, t_f) = (1, 1)$. In a second step, we will decrease the *penalization term* $\\varepsilon$ and in a final step, we will increase the final time $t_f$ to the final value $2$.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Preliminaries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# import packages\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", + "#plt.rcParams['figure.figsize'] = [10, 5]\n", + "plt.rcParams['figure.dpi'] = 150" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Finite differences function for scalar functionnal\n", + "# Return f'(x).dx\n", + "def finite_diff(fun, x, dx, *args, **kwargs):\n", + " v_eps = np.finfo(float).eps\n", + " t = np.sqrt(v_eps) * np.sqrt(np.maximum(1.0, np.abs(x))) / np.sqrt(np.maximum(1.0, np.abs(dx)))\n", + " j = (fun(x + t*dx, *args, **kwargs) - fun(x, *args, **kwargs)) / t\n", + " return j" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Parameters\n", + "\n", + "t0 = 0.0\n", + "x0 = np.array([1.0])\n", + "xf_target = np.array([0.5])\n", + "\n", + "e_init = 1.0\n", + "e_final = 0.002 #\n", + "\n", + "tf_init = 1.0 # With this value the problem is simpler to solver since the trajectory stay \n", + " # less time around the static solution\n", + "tf_final = 2.0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Maximized Hamiltonian and its derivatives" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The pseudo-Hamiltonian is (in the normal case)\n", + "\n", + "$$\n", + " H(x,p,u,\\varepsilon) = pu - x^2 + \\varepsilon ln(1-u^2).\n", + "$$\n", + "\n", + "Note that we put the parameter $\\varepsilon$ into the arguments of the pseudo-Hamiltonian since we will vary it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 1:_**\n", + " \n", + "Give the maximizing control $u[p, \\varepsilon]$, that is the control in feedback form solution of the maximization condition.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Answer 1:** To complete here (double-click on the line to complete)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 2:_**\n", + " \n", + "Complete the code of the maximizing control $u[p, \\varepsilon]$ and its derivative with respect to $p$, that is $\\frac{\\partial u}{\\partial p}[p, \\varepsilon]$.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# ----------------------------\n", + "# Answer 2 to complete here\n", + "# ----------------------------\n", + "#\n", + "# Control in feedback form u[p,e] and its partial derivative wrt. p.\n", + "#\n", + "@tools.vectorize(vvars=(1,))\n", + "def ufun(p, e):\n", + " u = 0 ### TO COMPLETE\n", + " return u\n", + "\n", + "def dufun(p, e):\n", + " du = 0 ### TO COMPLETE\n", + " return du" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We give next the maximized Hamiltonian with its derivatives. This permits us to define the flow of the associated Hamiltonian vector field." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Definition of the maximized Hamiltonian and its derivatives\n", + "# The second derivative d2hfun is computed by finite differences for a part\n", + "def dhfun(t, x, dx, p, dp, e):\n", + " # dh = dh_x dx + dh_p dp\n", + " u = ufun(p, e)\n", + " du = dufun(p, e)\n", + " hd = (u+p*du+2.0*e*u*du/(u**2-1.0))*dp - 2.0*x*dx\n", + " return hd\n", + "\n", + "def d2hfun(t, x, dx, d2x, p, dp, d2p, e):\n", + " # d2h = dh_xx dx d2x + dh_xp dp d2x + dh_px dx d2p + dh_pp dp d2p\n", + " d2h_xx = -2.0*dx*d2x # dh_xx dx d2x\n", + " dh_p = lambda p: dhfun(t, x, 0.0, p, dp, e) # dh_px = 0 so we can put dx = 0\n", + " d2h_pp = finite_diff(dh_p, p, d2p) # dh_pp dp d2p\n", + " hdd = d2h_xx + d2h_pp\n", + " return hdd\n", + "\n", + "@tools.tensorize(dhfun, d2hfun, tvars=(2, 3))\n", + "def hfun(t, x, p, e):\n", + " u = ufun(p, e)\n", + " h = p*u - x**2 + e*(np.log(1.0-u**2))\n", + " return h\n", + "\n", + "h = ocp.Hamiltonian(hfun) # The Hamiltonian object\n", + "\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": [ + "### Shooting function and its derivative" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The shooting function is\n", + "\n", + "$$\n", + " S(p_0, \\varepsilon, t_f) = \\pi_x(z(t_f, 1, p_0, \\varepsilon)) - 1/2,\n", + "$$\n", + "\n", + "where $z(t_f, x_0, p_0, \\varepsilon)$ is the solution of the associated Hamiltonian system \n", + "with the initial condition $z(0) = (x_0, p_0)$. Note that the Hamiltonian system depends on $\\varepsilon$. We put $\\varepsilon$ and $t_f$ into \n", + "the arguments of the shooting function since we will vary them.\n", + "\n", + "<div class=\"alert alert-warning\">\n", + "\n", + "**Procedure**\n", + "\n", + "First solve $S=0$ for $(\\varepsilon, t_f) = (1,1)$ then decrease $\\varepsilon$ to $0.002$, and finish by increasing $t_f$ to 2.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 3:_**\n", + " \n", + "Complete the code of the shooting function.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# ----------------------------\n", + "# Answer 3 to complete here\n", + "# ----------------------------\n", + "#\n", + "# Definition of the shooting function and its partial derivative wrt. p0 against the vector dp0\n", + "#\n", + "def shoot(p0, e, tf):\n", + " s = 0 ### TO COMPLETE: use the flow f, the parameters t0, x0 and xf_target\n", + " return s" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def dshoot(p0, dp0, e, tf):\n", + " (xf, dxf), _ = f(t0, x0, (p0, dp0), tf, e)\n", + " ds = dxf\n", + " return ds\n", + "\n", + "shoot = nt.tools.tensorize(dshoot, tvars=(1,))(shoot)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Function to plot the solution\n", + "def plotSolution(p0, e, tf):\n", + "\n", + " N = 200\n", + " tspan = list(np.linspace(t0, tf, N+1))\n", + " xf, pf = f(t0, x0, p0, tspan, e)\n", + " u = ufun(pf, e)\n", + "\n", + " fig = plt.figure()\n", + " ax = fig.add_subplot(511); ax.plot(tspan, xf); ax.set_xlabel('t'); ax.set_ylabel('$x$'); ax.axhline(0, color='k')\n", + " ax = fig.add_subplot(513); ax.plot(tspan, pf); ax.set_xlabel('t'); ax.set_ylabel('$p$'); ax.axhline(0, color='k')\n", + " ax = fig.add_subplot(515); ax.plot(tspan, u); ax.set_xlabel('t'); ax.set_ylabel('$u$'); ax.axhline(0, color='k')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Resolution of the regularized problem" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Shooting for (tf, e) = (tf_init, e_init)\n", + "p0_guess = np.array([0.1])\n", + "nlefun = lambda p0: shoot(p0, e_init, tf_init)\n", + "sol_nle = nt.nle.solve(nlefun, p0_guess, df=nlefun)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot solution for (tf, e) = (tf_init, e_init)\n", + "plotSolution(sol_nle.x, e_init, tf_init)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Definition of the homotopic function and its first order derivative\n", + "# This function is used to solve S=0 for different values of e=epsilon and tf.\n", + "def dhomfun(p0, dp0, e, de, tf, dtf):\n", + " #\n", + " (xf, dxf), (pf, dpf) = f(t0, x0, (p0, dp0), tf, e) \n", + " #\n", + " s = xf - xf_target\n", + " #\n", + " ds_p0 = dxf\n", + " ds_tf = ufun(pf, e) * dtf # dS_tf dtf = u dtf\n", + " #\n", + " fun = lambda e: float(f(t0, x0, p0, tf, e)[0])\n", + " ds_e = finite_diff(fun, e, de) # dS_e de\n", + " #\n", + " ds = ds_p0 + ds_e + ds_tf\n", + " return s, ds\n", + "\n", + "@tools.tensorize(dhomfun, tvars=(1, 2, 3), full=True)\n", + "def homfun(p0, e, tf):\n", + " xf, pf = f(t0, x0, p0, tf, e) # We use the flow to get z(tf, x0, p0, e)\n", + " s = xf - xf_target # x(tf, x0, p0) - xf_target\n", + " return s" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Making the penalization smaller: homotopy on e\n", + "p0 = sol_nle.x\n", + "sol_path_e = nt.path.solve(homfun, p0, e_init, e_final, args=tf_init, df=homfun)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot solution for (tf, e) = (tf_init, e_final)\n", + "plotSolution(sol_path_e.xf, e_final, tf_init)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Making the time bigger: homotopy on tf\n", + "p0 = sol_path_e.xf # sol is coming from last homotopy\n", + "pathfun = lambda p0, tf, e: homfun(p0, e, tf) # invert order of arguments\n", + "sol_path_tf = nt.path.solve(pathfun, p0, tf_init, tf_final, args=e_final, df=pathfun)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot solution for (tf, e) = (tf_final, e_final)\n", + "plotSolution(sol_path_tf.xf, e_final, tf_final)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## III) Resolution of the optimal control problem by multiple shooting" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We come back to the original optimal control problem:\n", + "\n", + "$$ \n", + " \\left\\{ \n", + " \\begin{array}{l}\n", + " \\displaystyle J(u) := \\displaystyle \\int_0^{t_f} x^2(t) \\, \\mathrm{d}t \\longrightarrow \\min \\\\[1.0em]\n", + " \\dot{x}(t) = f(x(t), u(t)) := \\displaystyle u(t), \\quad |u(t)| \\le 1, \\quad t \\in [0, t_f] \\text{ a.e.}, \\\\[1.0em]\n", + " x(0) = 1, \\quad x(t_f) = 1/2.\n", + " \\end{array}\n", + " \\right. \n", + "$$\n", + "\n", + "We have determined that the optimal control follows the strategy:\n", + "\n", + "$$\n", + " u(t) = \\left\\{ \n", + " \\begin{array}{lll}\n", + " -1 & \\text{if} & t \\in [0, t_1], \\\\[0.5em]\n", + " \\phantom{-}0 & \\text{if} & t \\in (t_1, t_2], \\\\[0.5em]\n", + " +1 & \\text{if} & t \\in (t_2, t_f],\n", + " \\end{array}\n", + " \\right. \n", + "$$\n", + "\n", + "with $0 < t_1 < t_2 < t_f=2$. \n", + "\n", + "\n", + "<div class=\"alert alert-warning\">\n", + "\n", + "**Goal**\n", + "\n", + "The goal is to find the values of the switching times $t_1$ and $t_2$ together with the initial covector $p_0$ (see Remark 2).\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Maximized Hamiltonian and its derivatives" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We define first the three control laws $u \\equiv \\{-1, 0, 1\\}$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Controls in feedback form\n", + "@tools.vectorize(vvars=(1, 2, 3))\n", + "def uplus(t, x, p):\n", + " u = +1.0\n", + " return u\n", + "\n", + "@tools.vectorize(vvars=(1, 2, 3))\n", + "def uminus(t, x, p):\n", + " u = -1.0\n", + " return u\n", + "\n", + "@tools.vectorize(vvars=(1, 2, 3))\n", + "def using(t, x, p):\n", + " u = 0.0\n", + " return u" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The pseudo-Hamiltonian is\n", + "\n", + "$$\n", + " H(x,p,u) = pu - x^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 4:_**\n", + " \n", + "Complete the code of the Hamiltonian for $u \\equiv +1$, with its derivatives.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# ----------------------------\n", + "# Answer 4 to complete here\n", + "# ----------------------------\n", + "#\n", + "# Definition of the Hamiltonian and its derivatives for u = 1\n", + "#\n", + "def dhfunplus(t, x, dx, p, dp):\n", + " # dh = dh_x dx + dh_p dp\n", + " hd = 0 ### TO COMPLETE: use uplus\n", + " return hd\n", + " \n", + "def d2hfunplus(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", + " hdd = 0 ### TO COMPLETE\n", + " return hdd\n", + "\n", + "@tools.tensorize(dhfunplus, d2hfunplus, tvars=(2, 3))\n", + "def hfunplus(t, x, p):\n", + " h = 0 ### TO COMPLETE: use uplus\n", + " return h\n", + "\n", + "hplus = ocp.Hamiltonian(hfunplus)\n", + "fplus = ocp.Flow(hplus)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We give the Hamiltonians for $u=-1$ and $u=0$ with their derivatives." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Definition of the Hamiltonian and its derivatives for u = -1\n", + "def dhfunminus(t, x, dx, p, dp):\n", + " # dh = dh_x dx + dh_p dp\n", + " u = uminus(t, x, p)\n", + " hd = u*dp - 2.0*x*dx\n", + " return hd\n", + " \n", + "def d2hfunminus(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", + " hdd = -2.0 * d2x * dx\n", + " return hdd\n", + "\n", + "@tools.tensorize(dhfunminus, d2hfunminus, tvars=(2, 3))\n", + "def hfunminus(t, x, p):\n", + " u = uminus(t, x, p)\n", + " h = p*u - x**2\n", + " return h\n", + "\n", + "hminus = ocp.Hamiltonian(hfunminus)\n", + "fminus = ocp.Flow(hminus)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Definition of the Hamiltonian and its derivatives for u = 0\n", + "def dhfunsing(t, x, dx, p, dp):\n", + " # dh = dh_x dx + dh_p dp\n", + " u = using(t, x, p)\n", + " hd = u*dp - 2.0*x*dx\n", + " return hd\n", + " \n", + "def d2hfunsing(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", + " hdd = -2.0 * d2x * dx\n", + " return hdd\n", + "\n", + "@tools.tensorize(dhfunsing, d2hfunsing, tvars=(2, 3))\n", + "def hfunsing(t, x, p):\n", + " u = using(t, x, p)\n", + " h = p*u - x**2\n", + " return h\n", + "\n", + "hsing = ocp.Hamiltonian(hfunsing)\n", + "fsing = ocp.Flow(hsing)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Shooting function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The multiple shooting function is given by\n", + "\n", + "$$\n", + " S(p_0, t_1, t_2) := \n", + " \\begin{pmatrix}\n", + " x(t_1, t_0, x_0, p_0, u_-) \\\\\n", + " p(t_1, t_0, x_0, p_0, u_-) \\\\\n", + " x(t_f, t_2, x_2, p_2, u_+) -1/2\n", + " \\end{pmatrix},\n", + "$$\n", + "\n", + "where $z_2 := (x_2, p_2) = z(t_2, t_1, x_1, p_1, u_0)$, $z_1 := (x_1, p_1) = z(t_1, t_0, x_0, p_0, u_-)$ and where z(t, s, a, b, u) is the solution at time $t$ of the Hamiltonian system associated to the control u starting at time $s$ at the initial condition $z(s) = (a,b)$.\n", + "\n", + "We have introduced the notation $u_-$ for $u\\equiv -1$, $u_0$ for $u\\equiv 0$ and $u_+$ for $u\\equiv +1$.\n", + "\n", + "**_Remark:_** We know that $(x_2, p_2)=(0,0)$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 5:_**\n", + " \n", + "Complete the code of the multiple shooting function.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# ----------------------------\n", + "# Answer 5 to complete here\n", + "# ----------------------------\n", + "#\n", + "# Multiple shooting function\n", + "#\n", + "\n", + "tf = tf_final # we set the final time to the value tf_final\n", + "\n", + "def shoot_multiple(y):\n", + " p0 = y[0]\n", + " t1 = y[1]\n", + " t2 = y[2]\n", + " \n", + " s = np.zeros([3]) ### TO COMPLETE: use fminus, fsing, fplus, t0, t1, t2, tf, x0, xf_target\n", + " \n", + " return s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Resolution of the shooting function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 6:_**\n", + " \n", + "Give initial guesses for the times $t_1$ and $t_2$ according to the solution of the regularized problem.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# ----------------------------\n", + "# Answer 6 to complete here\n", + "# ----------------------------\n", + "#\n", + "# Initial guess for the Newton solver\n", + "\n", + "t1_guess = 0.0 # to update\n", + "t2_guess = 0.0 # to update\n", + "\n", + "p0_guess = sol_path_tf.xf # from previous homotopy" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Resolution of the shooting function\n", + "y_guess = np.array([float(p0_guess), t1_guess, t2_guess])\n", + "sol_nle_mul = nt.nle.solve(shoot_multiple, y_guess)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# function to plot solution\n", + "\n", + "def plotSolutionBSB(p0, t1, t2, tf):\n", + "\n", + " N = 20\n", + " \n", + " tspan1 = list(np.linspace(t0, t1, N+1))\n", + " tspan2 = list(np.linspace(t1, t2, N+1))\n", + " tspanf = list(np.linspace(t2, tf, N+1))\n", + " \n", + " x1, p1 = fminus(t0, x0, p0, tspan1) # on [ 0, t1]\n", + " x2, p2 = fsing(t1, x1[-1], p1[-1], tspan2) # on [t1, t2]\n", + " xf, pf = fplus(t2, x2[-1], p2[-1], tspanf) # on [t2, tf]\n", + " \n", + " u1 = uminus(tspan1, x1, p1)\n", + " u2 = using(tspan2, x2, p2)\n", + " uf = uplus(tspanf, xf, pf)\n", + "\n", + " fig = plt.figure()\n", + " ax = fig.add_subplot(511); ax.plot(tspan1, x1); ax.plot(tspan2, x2); ax.plot(tspanf, xf); \n", + " ax.set_xlabel('t'); ax.set_ylabel('$x$'); ax.axhline(0, color='k')\n", + " ax = fig.add_subplot(513); ax.plot(tspan1, p1); ax.plot(tspan2, p2); ax.plot(tspanf, pf);\n", + " ax.set_xlabel('t'); ax.set_ylabel('$p$'); ax.axhline(0, color='k')\n", + " ax = fig.add_subplot(515); ax.plot(tspan1, u1); ax.plot(tspan2, u2); ax.plot(tspanf, uf);\n", + " ax.set_xlabel('t'); ax.set_ylabel('$u$'); ax.axhline(0, color='k')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# plot solution\n", + "p0 = sol_nle_mul.x[0]\n", + "t1 = sol_nle_mul.x[1]\n", + "t2 = sol_nle_mul.x[2]\n", + "plotSolutionBSB(p0, t1, t2, tf)" + ] + } + ], + "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 +} diff --git a/tp/rocket_control.ipynb b/tp/rocket_control.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..292c49aa5dcf61ab6e56c2f569b6b13859e2e798 --- /dev/null +++ b/tp/rocket_control.ipynb @@ -0,0 +1,1423 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "title: Rocket Control\n", + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Originally Contributed by**: Iain Dunning" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This tutorial shows how to solve a nonlinear rocketry control problem.\n", + "The problem was drawn from the [COPS3](http://www.mcs.anl.gov/~more/cops/cops3.pdf) benchmark." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our goal is to maximize the final altitude of a vertically launched rocket. \n", + "We can control the thrust of the rocket, and must take account of \n", + "the rocket mass, fuel consumption rate, gravity, and aerodynamic drag." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us consider the basic description of the model (for the full description, \n", + "including parameters for the rocket, see the COPS3 PDF)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Overview \n", + "We will use a discretized model of time, with a fixed number of time steps, $n$. \n", + "We will make the time step size $\\Delta t$, and thus the final time $t_f = n \\cdot \\Delta t$, a variable in the problem. \n", + "To approximate the derivatives in the problem we will use the [trapezoidal rule](http://en.wikipedia.org/wiki/Trapezoidal_rule)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### State and Control \n", + "We will have three state variables:\n", + "\n", + "* Velocity, $v$\n", + "* Altitude, $h$\n", + "* Mass of rocket and remaining fuel, $m$\n", + "\n", + "and a single control variable, thrust $T$. \n", + "Our goal is thus to maximize $h(t_f)$. \n", + "Each of these corresponds to a JuMP variable indexed by the time step." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Dynamics\n", + "We have three equations that control the dynamics of the rocket:\n", + "\n", + "Rate of ascent: $$h^\\prime = v$$\n", + "Acceleration: $$v^\\prime = \\frac{T - D(h,v)}{m} - g(h)$$\n", + "Rate of mass loss: $$m^\\prime = -\\frac{T}{c}$$\n", + "\n", + "where drag $D(h,v)$ is a function of altitude and velocity, and gravity $g(h)$ is a function of altitude." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These forces are defined as\n", + "\n", + "$$D(h,v) = D_c v^2 exp\\left( -h_c \\left( \\frac{h-h(0)}{h(0)} \\right) \\right)$$\n", + "and\n", + "$$g(h) = g_0 \\left( \\frac{h(0)}{h} \\right)^2$$\n", + "\n", + "The three rate equations correspond to JuMP constraints, \n", + "and for convenience we will represent the forces with nonlinear expressions." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "using JuMP, Ipopt\n", + "# Can visualize the state and control variables\n", + "using Gadfly" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Work:_**\n", + " \n", + "1. Execute the code and determine the structure of the optimal control.\n", + "2. Add a constraint $ v(t) \\le 0.1$ and re-execute the code. What have changed?\n", + "3. Play on the number of steps $n$ and on the discretization (Trapezoidal vs Rectangular integration). \n", + " \n", + "</div>" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Solving...\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit https://github.com/coin-or/Ipopt\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.4, running with linear solver mumps.\n", + "NOTE: Other linear solvers might be more efficient (see Ipopt documentation).\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 15185\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 45543\n", + "\n", + "Total number of variables............................: 3201\n", + " variables with only lower bounds: 1601\n", + " variables with lower and upper bounds: 1600\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 2401\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 1.0100000e+00 3.96e-01 2.13e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 1.2110479e+00 7.40e-03 6.00e+03 -1.0 4.97e-01 - 1.32e-02 9.84e-01f 1\n", + " 2 1.2048591e+00 5.86e-03 1.11e+04 -1.0 3.15e+00 - 1.44e-01 1.57e-01f 1\n", + " 3 1.2629237e+00 5.19e-03 1.46e+04 -1.0 1.82e+00 - 7.26e-02 1.13e-01f 1\n", + " 4 1.4170550e+00 5.07e-03 3.15e+03 -1.0 1.67e+01 0.0 1.17e-02 2.18e-02f 1\n", + " 5 1.1124928e+00 2.20e-03 5.06e+05 -1.0 5.28e-01 1.3 2.12e-01 5.77e-01h 1\n", + " 6 1.1282562e+00 1.79e-03 1.44e+06 -1.0 1.83e+01 - 1.25e-02 1.82e-01f 1\n", + " 7 1.0529956e+00 3.50e-04 3.37e+05 -1.0 4.64e-01 0.9 9.47e-01 7.93e-01h 1\n", + " 8 1.0386949e+00 4.62e-04 2.32e+05 -1.0 9.23e+00 - 4.08e-02 3.63e-01f 1\n", + " 9 1.0298777e+00 3.71e-04 1.76e+05 -1.0 7.48e+00 - 2.05e-01 3.07e-01h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 1.0232606e+00 2.51e-04 1.34e+05 -1.0 4.79e+00 - 3.50e-01 3.18e-01h 1\n", + " 11 1.0175352e+00 1.63e-04 9.98e+04 -1.0 5.79e+00 - 4.28e-01 3.88e-01h 1\n", + " 12 1.0143410e+00 1.05e-04 1.03e+05 -1.0 4.65e+00 - 1.00e+00 3.36e-01h 1\n", + " 13 1.0080148e+00 2.85e-05 5.04e+04 -1.0 1.45e+00 - 1.00e+00 9.90e-01h 1\n", + " 14 1.0078402e+00 4.17e-06 2.33e+03 -1.0 4.80e-01 - 1.00e+00 1.00e+00h 1\n", + " 15 1.0078153e+00 1.55e-08 1.82e+01 -1.0 3.60e-02 - 1.00e+00 1.00e+00f 1\n", + " 16 1.0078153e+00 4.53e-13 1.31e+01 -2.5 8.59e-05 - 1.00e+00 1.00e+00h 1\n", + " 17 1.0078190e+00 3.01e-10 1.01e-03 -2.5 2.80e-03 - 1.00e+00 1.00e+00h 1\n", + " 18 1.0078229e+00 3.09e-10 3.15e+02 -5.7 2.98e-03 - 9.99e-01 1.00e+00h 1\n", + " 19 1.0094243e+00 8.64e-05 3.87e+00 -5.7 2.27e+00 - 9.88e-01 9.72e-01f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 20 1.0111368e+00 6.10e-05 2.94e+00 -5.7 2.05e+00 - 1.00e+00 9.00e-01f 1\n", + " 21 1.0111174e+00 4.64e-07 2.00e-02 -5.7 7.19e-01 - 1.00e+00 1.00e+00f 1\n", + " 22 1.0111207e+00 3.30e-09 6.81e-06 -5.7 6.70e-02 - 1.00e+00 1.00e+00h 1\n", + " 23 1.0122700e+00 2.31e-05 3.00e+01 -8.6 8.96e-01 - 7.15e-01 8.77e-01f 1\n", + " 24 1.0127033e+00 1.51e-05 8.16e+00 -8.6 8.55e-01 - 7.50e-01 7.80e-01h 1\n", + " 25 1.0128033e+00 1.01e-05 3.13e+00 -8.6 1.26e+00 - 6.60e-01 7.31e-01h 1\n", + " 26 1.0128269e+00 5.34e-06 1.23e+00 -8.6 1.39e+00 - 6.46e-01 7.34e-01h 1\n", + " 27 1.0128326e+00 2.56e-06 3.91e-01 -8.6 1.36e+00 - 7.03e-01 7.73e-01h 1\n", + " 28 1.0128339e+00 1.11e-06 5.08e-03 -8.6 1.18e+00 - 9.71e-01 8.96e-01f 1\n", + " 29 1.0128341e+00 2.45e-07 4.92e-05 -8.6 9.30e-01 - 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 30 1.0128341e+00 3.51e-09 1.19e-06 -8.6 3.15e-01 - 1.00e+00 1.00e+00h 1\n", + " 31 1.0128341e+00 8.93e-11 5.13e-09 -8.6 3.70e-02 - 1.00e+00 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 31\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: -1.0128340648308065e+00 1.0128340648308065e+00\n", + "Dual infeasibility......: 5.1308194534695174e-09 5.1308194534695174e-09\n", + "Constraint violation....: 8.9276752657241332e-11 8.9276752657241332e-11\n", + "Complementarity.........: 2.5098720261145001e-09 -2.5098720261145001e-09\n", + "Overall NLP error.......: 5.1308194534695174e-09 5.1308194534695174e-09\n", + "\n", + "\n", + "Number of objective function evaluations = 32\n", + "Number of objective gradient evaluations = 32\n", + "Number of equality constraint evaluations = 32\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 32\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 31\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 2.954\n", + "Total CPU secs in NLP function evaluations = 4.100\n", + "\n", + "EXIT: Optimal Solution Found.\n", + "Max height: 1.0128340648308065\n" + ] + } + ], + "source": [ + "# Create JuMP model, using Ipopt as the solver\n", + "rocket = Model(optimizer_with_attributes(Ipopt.Optimizer, \"print_frequency_iter\" => 1))\n", + "\n", + "# Constants\n", + "# Note that all parameters in the model have been normalized\n", + "# to be dimensionless. See the COPS3 paper for more info.\n", + "h_0 = 1 # Initial height\n", + "v_0 = 0 # Initial velocity\n", + "m_0 = 1 # Initial mass\n", + "g_0 = 1 # Gravity at the surface\n", + "\n", + "T_c = 3.5 # Used for thrust\n", + "h_c = 500 # Used for drag\n", + "v_c = 620 # Used for drag\n", + "m_c = 0.6 # Fraction of initial mass left at end\n", + "\n", + "c = 0.5 * sqrt(g_0 * h_0) # Thrust-to-fuel mass\n", + "m_f = m_c * m_0 # Final mass\n", + "D_c = 0.5 * v_c * m_0 / g_0 # Drag scaling\n", + "T_max = T_c * g_0 * m_0 # Maximum thrust\n", + "\n", + "n = 800 # Time steps\n", + "\n", + "@variables(rocket, begin\n", + " Δt ≥ 0, (start = 1/n) # Time step\n", + " # State variables\n", + " v[1:n] ≥ 0 # Velocity\n", + " h[1:n] ≥ h_0 # Height\n", + " m_f ≤ m[1:n] ≤ m_0 # Mass\n", + " # Control\n", + " 0 ≤ T[1:n] ≤ T_max # Thrust\n", + "end)\n", + "\n", + "# Objective: maximize altitude at end of time of flight\n", + "@objective(rocket, Max, h[n])\n", + "\n", + "# Initial conditions\n", + "@constraints(rocket, begin\n", + " v[1] == v_0\n", + " h[1] == h_0\n", + " m[1] == m_0\n", + " m[n] == m_f\n", + "end)\n", + "\n", + "# Forces\n", + "# Drag(h,v) = Dc v^2 exp( -hc * (h - h0) / h0 )\n", + "@NLexpression(rocket, drag[j = 1:n], D_c * (v[j]^2) * exp(-h_c * (h[j] - h_0) / h_0))\n", + "# Grav(h) = go * (h0 / h)^2\n", + "@NLexpression(rocket, grav[j = 1:n], g_0 * (h_0 / h[j])^2)\n", + "# Time of flight\n", + "@NLexpression(rocket, t_f, Δt * n)\n", + "\n", + "# Dynamics\n", + "for j in 2:n\n", + " # h' = v\n", + " \n", + " # Rectangular integration\n", + " # @NLconstraint(rocket, h[j] == h[j - 1] + Δt * v[j - 1])\n", + " \n", + " # Trapezoidal integration\n", + " @NLconstraint(rocket,\n", + " h[j] == h[j - 1] + 0.5 * Δt * (v[j] + v[j - 1]))\n", + "\n", + " # v' = (T-D(h,v))/m - g(h)\n", + " \n", + " # Rectangular integration\n", + " # @NLconstraint(rocket, v[j] == v[j - 1] + Δt *(\n", + " # (T[j - 1] - drag[j - 1]) / m[j - 1] - grav[j - 1]))\n", + " \n", + " # Trapezoidal integration\n", + " @NLconstraint(rocket,\n", + " v[j] == v[j-1] + 0.5 * Δt * (\n", + " (T[j] - drag[j] - m[j] * grav[j]) / m[j] +\n", + " (T[j - 1] - drag[j - 1] - m[j - 1] * grav[j - 1]) / m[j - 1]))\n", + "\n", + " # m' = -T/c\n", + "\n", + " # Rectangular integration\n", + " # @NLconstraint(rocket, m[j] == m[j - 1] - Δt * T[j - 1] / c)\n", + " \n", + " # Trapezoidal integration\n", + " @NLconstraint(rocket,\n", + " m[j] == m[j - 1] - 0.5 * Δt * (T[j] + T[j-1]) / c)\n", + "end\n", + "\n", + "# Solve for the control and state\n", + "println(\"Solving...\")\n", + "status = optimize!(rocket)\n", + "\n", + "# Display results\n", + "# println(\"Solver status: \", status)\n", + "println(\"Max height: \", objective_value(rocket))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", + "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", + " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", + " xmlns:gadfly=\"http://www.gadflyjl.org/ns\"\n", + " version=\"1.2\"\n", + " width=\"152.4mm\" height=\"152.4mm\" viewBox=\"0 0 152.4 152.4\"\n", + " stroke=\"none\"\n", + " fill=\"#000000\"\n", + " stroke-width=\"0.3\"\n", + " font-size=\"3.88\"\n", + ">\n", + "<defs>\n", + " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", + " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", + " </marker>\n", + "</defs>\n", + "<g class=\"plotroot xscalable yscalable\" id=\"img-68edbf8e-1\">\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-2\">\n", + " <g transform=\"translate(119.94,140.79)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">Time (s)</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xlabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-3\">\n", + " <g transform=\"translate(94.48,134.11)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.00</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(107.21,134.11)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.05</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(119.94,134.11)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.10</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(132.67,134.11)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.15</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(145.4,134.11)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.20</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g clip-path=\"url(#img-68edbf8e-4)\">\n", + " <g id=\"img-68edbf8e-5\">\n", + " <g pointer-events=\"visible\" stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#000000\" stroke-opacity=\"0.000\" class=\"guide background\" id=\"img-68edbf8e-6\">\n", + " <g transform=\"translate(119.94,107.16)\" id=\"img-68edbf8e-7\">\n", + " <path d=\"M-27.46,-25.96 L27.46,-25.96 27.46,25.96 -27.46,25.96 z\" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ygridlines xfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-8\">\n", + " <g transform=\"translate(119.94,131.11)\" id=\"img-68edbf8e-9\">\n", + " <path fill=\"none\" d=\"M-27.46,0 L27.46,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(119.94,119.14)\" id=\"img-68edbf8e-10\">\n", + " <path fill=\"none\" d=\"M-27.46,0 L27.46,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(119.94,107.16)\" id=\"img-68edbf8e-11\">\n", + " <path fill=\"none\" d=\"M-27.46,0 L27.46,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(119.94,95.18)\" id=\"img-68edbf8e-12\">\n", + " <path fill=\"none\" d=\"M-27.46,0 L27.46,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(119.94,83.2)\" id=\"img-68edbf8e-13\">\n", + " <path fill=\"none\" d=\"M-27.46,0 L27.46,0 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xgridlines yfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-14\">\n", + " <g transform=\"translate(94.48,107.16)\" id=\"img-68edbf8e-15\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(107.21,107.16)\" id=\"img-68edbf8e-16\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(119.94,107.16)\" id=\"img-68edbf8e-17\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(132.67,107.16)\" id=\"img-68edbf8e-18\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(145.4,107.16)\" id=\"img-68edbf8e-19\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"plotpanel\" id=\"img-68edbf8e-20\">\n", + " <metadata>\n", + " <boundingbox value=\"92.48499999999999mm 81.19999999999999mm 54.91499999999999mm 51.91499999999999mm\"/>\n", + " <unitbox value=\"-0.007856230973190614 4.166962329124491 0.21571246194638125 -4.333924658248983\"/>\n", + " </metadata>\n", + " <g stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" class=\"geometry\" id=\"img-68edbf8e-21\">\n", + " <g class=\"color_LCHab{Float32}(70.0f0,60.0f0,240.0f0)\" stroke-dasharray=\"none\" stroke=\"#00BFFF\" id=\"img-68edbf8e-22\">\n", + " <g transform=\"translate(119.85,119.05)\" id=\"img-68edbf8e-23\">\n", + " <path fill=\"none\" d=\"M-25.3,-29.86 L-25.24,-29.86 -25.17,-29.86 -25.11,-29.86 -25.05,-29.86 -24.98,-29.86 -24.92,-29.86 -24.86,-29.86 -24.79,-29.86 -24.73,-29.86 -24.67,-29.86 -24.6,-29.86 -24.54,-29.86 -24.48,-29.86 -24.41,-29.86 -24.35,-29.86 -24.29,-29.86 -24.22,-29.86 -24.16,-29.86 -24.1,-29.86 -24.03,-29.86 -23.97,-29.86 -23.91,-29.86 -23.84,-29.86 -23.78,-29.86 -23.72,-29.86 -23.65,-29.86 -23.59,-29.86 -23.53,-29.86 -23.46,-29.86 -23.4,-29.86 -23.34,-29.86 -23.27,-29.85 -23.21,-29.85 -23.15,-29.85 -23.08,-29.85 -23.02,-29.85 -22.96,-29.85 -22.89,-29.85 -22.83,-29.85 -22.77,-29.85 -22.7,-29.85 -22.64,-29.85 -22.58,-29.85 -22.51,-29.85 -22.45,-29.85 -22.39,-29.85 -22.32,-29.85 -22.26,-29.85 -22.2,-29.85 -22.13,-29.85 -22.07,-29.85 -22.01,-29.85 -21.94,-29.85 -21.88,-29.85 -21.82,-29.85 -21.75,-29.84 -21.69,-29.84 -21.63,-29.84 -21.56,-29.84 -21.5,-29.84 -21.44,-29.84 -21.37,-29.84 -21.31,-29.84 -21.25,-29.84 -21.18,-29.83 -21.12,-29.83 -21.06,-29.83 -20.99,-29.83 -20.93,-29.82 -20.87,-29.82 -20.8,-29.82 -20.74,-29.81 -20.68,-29.81 -20.61,-29.8 -20.55,-29.8 -20.49,-29.79 -20.42,-29.78 -20.36,-29.77 -20.3,-29.76 -20.23,-29.75 -20.17,-29.73 -20.11,-29.71 -20.04,-29.69 -19.98,-29.66 -19.92,-29.61 -19.85,-29.56 -19.79,-29.48 -19.73,-29.37 -19.66,-29.22 -19.6,-28.98 -19.54,-28.59 -19.47,-27.94 -19.41,-26.77 -19.35,-24.68 -19.28,-21.39 -19.22,-17.75 -19.16,-15.32 -19.09,-14.21 -19.03,-13.79 -18.97,-13.64 -18.9,-13.59 -18.84,-13.58 -18.78,-13.57 -18.71,-13.58 -18.65,-13.58 -18.59,-13.59 -18.52,-13.59 -18.46,-13.6 -18.4,-13.61 -18.33,-13.61 -18.27,-13.62 -18.21,-13.63 -18.14,-13.63 -18.08,-13.64 -18.02,-13.65 -17.95,-13.66 -17.89,-13.67 -17.83,-13.68 -17.76,-13.69 -17.7,-13.69 -17.64,-13.7 -17.57,-13.71 -17.51,-13.72 -17.45,-13.74 -17.38,-13.75 -17.32,-13.76 -17.26,-13.77 -17.19,-13.78 -17.13,-13.79 -17.07,-13.81 -17,-13.82 -16.94,-13.83 -16.88,-13.84 -16.81,-13.86 -16.75,-13.87 -16.69,-13.89 -16.62,-13.9 -16.56,-13.92 -16.5,-13.93 -16.43,-13.95 -16.37,-13.96 -16.31,-13.98 -16.24,-14 -16.18,-14.01 -16.12,-14.03 -16.05,-14.05 -15.99,-14.07 -15.93,-14.09 -15.86,-14.11 -15.8,-14.12 -15.74,-14.14 -15.67,-14.16 -15.61,-14.18 -15.55,-14.21 -15.48,-14.23 -15.42,-14.25 -15.36,-14.27 -15.29,-14.29 -15.23,-14.32 -15.17,-14.34 -15.1,-14.36 -15.04,-14.39 -14.98,-14.41 -14.91,-14.44 -14.85,-14.46 -14.79,-14.49 -14.72,-14.52 -14.66,-14.54 -14.6,-14.57 -14.53,-14.6 -14.47,-14.63 -14.41,-14.66 -14.34,-14.69 -14.28,-14.72 -14.22,-14.75 -14.15,-14.78 -14.09,-14.81 -14.03,-14.84 -13.96,-14.88 -13.9,-14.91 -13.84,-14.94 -13.77,-14.98 -13.71,-15.01 -13.65,-15.05 -13.58,-15.09 -13.52,-15.12 -13.46,-15.16 -13.39,-15.2 -13.33,-15.24 -13.27,-15.27 -13.2,-15.31 -13.14,-15.36 -13.08,-15.4 -13.01,-15.44 -12.95,-15.48 -12.89,-15.52 -12.82,-15.57 -12.76,-15.61 -12.7,-15.66 -12.63,-15.7 -12.57,-15.75 -12.51,-15.8 -12.44,-15.85 -12.38,-15.89 -12.32,-15.94 -12.25,-15.99 -12.19,-16.05 -12.13,-16.1 -12.06,-16.15 -12,-16.2 -11.94,-16.26 -11.87,-16.31 -11.81,-16.37 -11.75,-16.43 -11.68,-16.48 -11.62,-16.54 -11.56,-16.6 -11.49,-16.66 -11.43,-16.72 -11.37,-16.79 -11.3,-16.85 -11.24,-16.91 -11.18,-16.98 -11.11,-17.04 -11.05,-17.11 -10.99,-17.18 -10.92,-17.25 -10.86,-17.32 -10.8,-17.39 -10.73,-17.46 -10.67,-17.54 -10.61,-17.61 -10.54,-17.69 -10.48,-17.76 -10.42,-17.84 -10.35,-17.92 -10.29,-18 -10.23,-18.08 -10.16,-18.17 -10.1,-18.25 -10.04,-18.33 -9.97,-18.42 -9.91,-18.51 -9.85,-18.6 -9.78,-18.69 -9.72,-18.78 -9.66,-18.87 -9.59,-18.97 -9.53,-19.06 -9.47,-19.16 -9.4,-19.26 -9.34,-19.36 -9.28,-19.46 -9.21,-19.57 -9.15,-19.67 -9.09,-19.78 -9.02,-19.89 -8.96,-20 -8.9,-20.11 -8.83,-20.22 -8.77,-20.34 -8.71,-20.45 -8.64,-20.57 -8.58,-20.69 -8.52,-20.82 -8.45,-20.94 -8.39,-21.06 -8.33,-21.19 -8.26,-21.32 -8.2,-21.45 -8.14,-21.58 -8.07,-21.7 -8.01,-21.83 -7.95,-21.96 -7.88,-22.09 -7.82,-22.21 -7.76,-22.33 -7.69,-22.43 -7.63,-22.53 -7.57,-22.62 -7.5,-22.69 -7.44,-22.73 -7.38,-22.74 -7.31,-22.71 -7.25,-22.61 -7.19,-22.43 -7.12,-22.13 -7.06,-21.63 -7,-20.78 -6.93,-19.29 -6.87,-16.33 -6.81,-9.72 -6.74,0.09 -6.68,5.85 -6.62,8.49 -6.55,9.79 -6.49,10.51 -6.43,10.94 -6.36,11.22 -6.3,11.4 -6.24,11.53 -6.17,11.63 -6.11,11.7 -6.05,11.76 -5.98,11.8 -5.92,11.84 -5.86,11.86 -5.79,11.89 -5.73,11.91 -5.67,11.92 -5.6,11.94 -5.54,11.95 -5.48,11.96 -5.41,11.97 -5.35,11.98 -5.29,11.98 -5.22,11.99 -5.16,11.99 -5.1,12 -5.03,12 -4.97,12.01 -4.91,12.01 -4.84,12.01 -4.78,12.02 -4.72,12.02 -4.65,12.02 -4.59,12.02 -4.53,12.03 -4.46,12.03 -4.4,12.03 -4.34,12.03 -4.27,12.03 -4.21,12.03 -4.15,12.04 -4.08,12.04 -4.02,12.04 -3.96,12.04 -3.89,12.04 -3.83,12.04 -3.77,12.04 -3.7,12.04 -3.64,12.04 -3.58,12.04 -3.51,12.04 -3.45,12.04 -3.39,12.05 -3.32,12.05 -3.26,12.05 -3.2,12.05 -3.13,12.05 -3.07,12.05 -3.01,12.05 -2.94,12.05 -2.88,12.05 -2.82,12.05 -2.75,12.05 -2.69,12.05 -2.63,12.05 -2.56,12.05 -2.5,12.05 -2.44,12.05 -2.37,12.05 -2.31,12.05 -2.25,12.05 -2.18,12.05 -2.12,12.05 -2.06,12.05 -1.99,12.05 -1.93,12.05 -1.87,12.05 -1.8,12.05 -1.74,12.05 -1.68,12.05 -1.61,12.06 -1.55,12.06 -1.49,12.06 -1.42,12.06 -1.36,12.06 -1.3,12.06 -1.23,12.06 -1.17,12.06 -1.11,12.06 -1.04,12.06 -0.98,12.06 -0.92,12.06 -0.85,12.06 -0.79,12.06 -0.73,12.06 -0.66,12.06 -0.6,12.06 -0.54,12.06 -0.47,12.06 -0.41,12.06 -0.35,12.06 -0.28,12.06 -0.22,12.06 -0.16,12.06 -0.09,12.06 -0.03,12.06 0.03,12.06 0.09,12.06 0.16,12.06 0.22,12.06 0.28,12.06 0.35,12.06 0.41,12.06 0.47,12.06 0.54,12.06 0.6,12.06 0.66,12.06 0.73,12.06 0.79,12.06 0.85,12.06 0.92,12.06 0.98,12.06 1.04,12.06 1.11,12.06 1.17,12.06 1.23,12.06 1.3,12.06 1.36,12.06 1.42,12.06 1.49,12.06 1.55,12.06 1.61,12.06 1.68,12.06 1.74,12.06 1.8,12.06 1.87,12.06 1.93,12.06 1.99,12.06 2.06,12.06 2.12,12.06 2.18,12.06 2.25,12.06 2.31,12.06 2.37,12.06 2.44,12.06 2.5,12.06 2.56,12.06 2.63,12.06 2.69,12.06 2.75,12.06 2.82,12.06 2.88,12.06 2.94,12.06 3.01,12.06 3.07,12.06 3.13,12.06 3.2,12.06 3.26,12.06 3.32,12.06 3.39,12.06 3.45,12.06 3.51,12.06 3.58,12.06 3.64,12.06 3.7,12.06 3.77,12.06 3.83,12.06 3.89,12.06 3.96,12.06 4.02,12.06 4.08,12.06 4.15,12.06 4.21,12.06 4.27,12.06 4.34,12.06 4.4,12.06 4.46,12.06 4.53,12.06 4.59,12.06 4.65,12.06 4.72,12.06 4.78,12.06 4.84,12.06 4.91,12.06 4.97,12.06 5.03,12.06 5.1,12.06 5.16,12.06 5.22,12.06 5.29,12.06 5.35,12.06 5.41,12.06 5.48,12.06 5.54,12.06 5.6,12.06 5.67,12.06 5.73,12.06 5.79,12.06 5.86,12.06 5.92,12.06 5.98,12.06 6.05,12.06 6.11,12.06 6.17,12.06 6.24,12.06 6.3,12.06 6.36,12.06 6.43,12.06 6.49,12.06 6.55,12.06 6.62,12.06 6.68,12.06 6.74,12.06 6.81,12.06 6.87,12.06 6.93,12.06 7,12.06 7.06,12.06 7.12,12.06 7.19,12.06 7.25,12.06 7.31,12.06 7.38,12.06 7.44,12.06 7.5,12.06 7.57,12.06 7.63,12.06 7.69,12.06 7.76,12.06 7.82,12.06 7.88,12.06 7.95,12.06 8.01,12.06 8.07,12.06 8.14,12.06 8.2,12.06 8.26,12.06 8.33,12.06 8.39,12.06 8.45,12.06 8.52,12.06 8.58,12.06 8.64,12.06 8.71,12.06 8.77,12.06 8.83,12.06 8.9,12.06 8.96,12.06 9.02,12.06 9.09,12.06 9.15,12.06 9.21,12.06 9.28,12.06 9.34,12.06 9.4,12.06 9.47,12.06 9.53,12.06 9.59,12.06 9.66,12.06 9.72,12.06 9.78,12.06 9.85,12.06 9.91,12.06 9.97,12.06 10.04,12.06 10.1,12.06 10.16,12.06 10.23,12.06 10.29,12.06 10.35,12.06 10.42,12.06 10.48,12.06 10.54,12.06 10.61,12.06 10.67,12.06 10.73,12.06 10.8,12.06 10.86,12.06 10.92,12.06 10.99,12.06 11.05,12.06 11.11,12.06 11.18,12.06 11.24,12.06 11.3,12.06 11.37,12.06 11.43,12.06 11.49,12.06 11.56,12.06 11.62,12.06 11.68,12.06 11.75,12.06 11.81,12.06 11.87,12.06 11.94,12.06 12,12.06 12.06,12.06 12.13,12.06 12.19,12.06 12.25,12.06 12.32,12.06 12.38,12.06 12.44,12.06 12.51,12.06 12.57,12.06 12.63,12.06 12.7,12.06 12.76,12.06 12.82,12.06 12.89,12.06 12.95,12.06 13.01,12.06 13.08,12.06 13.14,12.06 13.2,12.06 13.27,12.06 13.33,12.06 13.39,12.06 13.46,12.06 13.52,12.06 13.58,12.06 13.65,12.06 13.71,12.06 13.77,12.06 13.84,12.06 13.9,12.06 13.96,12.06 14.03,12.06 14.09,12.06 14.15,12.06 14.22,12.06 14.28,12.06 14.34,12.06 14.41,12.06 14.47,12.06 14.53,12.06 14.6,12.06 14.66,12.06 14.72,12.06 14.79,12.06 14.85,12.06 14.91,12.06 14.98,12.06 15.04,12.06 15.1,12.06 15.17,12.06 15.23,12.06 15.29,12.06 15.36,12.06 15.42,12.06 15.48,12.06 15.55,12.06 15.61,12.06 15.67,12.06 15.74,12.06 15.8,12.06 15.86,12.06 15.93,12.06 15.99,12.06 16.05,12.06 16.12,12.06 16.18,12.06 16.24,12.06 16.31,12.06 16.37,12.06 16.43,12.06 16.5,12.06 16.56,12.06 16.62,12.06 16.69,12.06 16.75,12.06 16.81,12.06 16.88,12.06 16.94,12.06 17,12.06 17.07,12.06 17.13,12.06 17.19,12.06 17.26,12.06 17.32,12.06 17.38,12.06 17.45,12.06 17.51,12.06 17.57,12.06 17.64,12.06 17.7,12.06 17.76,12.06 17.83,12.06 17.89,12.06 17.95,12.06 18.02,12.06 18.08,12.06 18.14,12.06 18.21,12.06 18.27,12.06 18.33,12.06 18.4,12.06 18.46,12.06 18.52,12.06 18.59,12.06 18.65,12.06 18.71,12.06 18.78,12.06 18.84,12.06 18.9,12.06 18.97,12.06 19.03,12.06 19.09,12.06 19.16,12.06 19.22,12.06 19.28,12.06 19.35,12.06 19.41,12.06 19.47,12.06 19.54,12.06 19.6,12.06 19.66,12.06 19.73,12.06 19.79,12.06 19.85,12.06 19.92,12.06 19.98,12.06 20.04,12.06 20.11,12.06 20.17,12.06 20.23,12.06 20.3,12.06 20.36,12.06 20.42,12.06 20.49,12.06 20.55,12.06 20.61,12.06 20.68,12.06 20.74,12.06 20.8,12.06 20.87,12.06 20.93,12.06 20.99,12.06 21.06,12.06 21.12,12.06 21.18,12.06 21.25,12.06 21.31,12.06 21.37,12.06 21.44,12.06 21.5,12.06 21.56,12.06 21.63,12.06 21.69,12.06 21.75,12.06 21.82,12.06 21.88,12.06 21.94,12.06 22.01,12.06 22.07,12.06 22.13,12.06 22.2,12.06 22.26,12.06 22.32,12.06 22.39,12.06 22.45,12.06 22.51,12.06 22.58,12.06 22.64,12.06 22.7,12.06 22.77,12.06 22.83,12.06 22.89,12.06 22.96,12.06 23.02,12.06 23.08,12.06 23.15,12.06 23.21,12.06 23.27,12.06 23.34,12.06 23.4,12.06 23.46,12.06 23.53,12.06 23.59,12.06 23.65,12.06 23.72,12.06 23.78,12.06 23.84,12.06 23.91,12.06 23.97,12.06 24.03,12.06 24.1,12.06 24.16,12.06 24.22,12.06 24.29,12.06 24.35,12.06 24.41,12.06 24.48,12.06 24.54,12.06 24.6,12.06 24.67,12.06 24.73,12.06 24.79,12.06 24.86,12.06 24.92,12.06 24.98,12.06 25.05,12.06 25.11,12.06 25.17,12.06 25.24,12.05 25.3,12.04 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ylabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-24\">\n", + " <g transform=\"translate(91.48,131.11)\" id=\"img-68edbf8e-25\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(91.48,119.14)\" id=\"img-68edbf8e-26\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">1</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(91.48,107.16)\" id=\"img-68edbf8e-27\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">2</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(91.48,95.18)\" id=\"img-68edbf8e-28\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">3</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(91.48,83.2)\" id=\"img-68edbf8e-29\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">4</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-30\">\n", + " <g transform=\"translate(85.01,105.16)\" id=\"img-68edbf8e-31\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\" transform=\"rotate(-90,0, 2)\">Thrust</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + "</g>\n", + "<g class=\"plotroot xscalable yscalable\" id=\"img-68edbf8e-32\">\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-33\">\n", + " <g transform=\"translate(45.75,140.79)\" id=\"img-68edbf8e-34\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">Time (s)</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xlabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-35\">\n", + " <g transform=\"translate(22.3,134.11)\" id=\"img-68edbf8e-36\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.00</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(34.03,134.11)\" id=\"img-68edbf8e-37\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.05</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(45.75,134.11)\" id=\"img-68edbf8e-38\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.10</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(57.48,134.11)\" id=\"img-68edbf8e-39\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.15</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(69.2,134.11)\" id=\"img-68edbf8e-40\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.20</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g clip-path=\"url(#img-68edbf8e-41)\">\n", + " <g id=\"img-68edbf8e-42\">\n", + " <g pointer-events=\"visible\" stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#000000\" stroke-opacity=\"0.000\" class=\"guide background\" id=\"img-68edbf8e-43\">\n", + " <g transform=\"translate(45.75,107.16)\" id=\"img-68edbf8e-44\">\n", + " <path d=\"M-25.45,-25.96 L25.45,-25.96 25.45,25.96 -25.45,25.96 z\" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ygridlines xfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-45\">\n", + " <g transform=\"translate(45.75,131.11)\" id=\"img-68edbf8e-46\">\n", + " <path fill=\"none\" d=\"M-25.45,0 L25.45,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(45.75,115.14)\" id=\"img-68edbf8e-47\">\n", + " <path fill=\"none\" d=\"M-25.45,0 L25.45,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(45.75,99.17)\" id=\"img-68edbf8e-48\">\n", + " <path fill=\"none\" d=\"M-25.45,0 L25.45,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(45.75,83.2)\" id=\"img-68edbf8e-49\">\n", + " <path fill=\"none\" d=\"M-25.45,0 L25.45,0 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xgridlines yfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-50\">\n", + " <g transform=\"translate(22.3,107.16)\" id=\"img-68edbf8e-51\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(34.03,107.16)\" id=\"img-68edbf8e-52\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(45.75,107.16)\" id=\"img-68edbf8e-53\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(57.48,107.16)\" id=\"img-68edbf8e-54\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(69.2,107.16)\" id=\"img-68edbf8e-55\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"plotpanel\" id=\"img-68edbf8e-56\">\n", + " <metadata>\n", + " <boundingbox value=\"20.305mm 81.19999999999999mm 50.89499999999999mm 51.91499999999999mm\"/>\n", + " <unitbox value=\"-0.008529693997227852 0.15626108734216845 0.2170593879944557 -0.16252217468433688\"/>\n", + " </metadata>\n", + " <g stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" class=\"geometry\" id=\"img-68edbf8e-57\">\n", + " <g class=\"color_LCHab{Float32}(70.0f0,60.0f0,240.0f0)\" stroke-dasharray=\"none\" stroke=\"#00BFFF\" id=\"img-68edbf8e-58\">\n", + " <g transform=\"translate(45.67,110.51)\" id=\"img-68edbf8e-59\">\n", + " <path fill=\"none\" d=\"M-23.3,20.6 L-23.24,20.4 -23.19,20.2 -23.13,20 -23.07,19.8 -23.01,19.6 -22.95,19.4 -22.89,19.2 -22.84,19 -22.78,18.8 -22.72,18.59 -22.66,18.39 -22.6,18.19 -22.54,17.98 -22.49,17.78 -22.43,17.58 -22.37,17.37 -22.31,17.17 -22.25,16.96 -22.19,16.76 -22.14,16.56 -22.08,16.35 -22.02,16.15 -21.96,15.94 -21.9,15.74 -21.84,15.53 -21.79,15.33 -21.73,15.12 -21.67,14.92 -21.61,14.71 -21.55,14.51 -21.49,14.3 -21.44,14.1 -21.38,13.89 -21.32,13.69 -21.26,13.48 -21.2,13.28 -21.14,13.08 -21.09,12.87 -21.03,12.67 -20.97,12.46 -20.91,12.26 -20.85,12.06 -20.79,11.86 -20.74,11.65 -20.68,11.45 -20.62,11.25 -20.56,11.05 -20.5,10.85 -20.44,10.65 -20.39,10.45 -20.33,10.24 -20.27,10.05 -20.21,9.85 -20.15,9.65 -20.09,9.45 -20.04,9.25 -19.98,9.05 -19.92,8.85 -19.86,8.66 -19.8,8.46 -19.74,8.26 -19.69,8.07 -19.63,7.87 -19.57,7.68 -19.51,7.48 -19.45,7.29 -19.39,7.09 -19.34,6.9 -19.28,6.71 -19.22,6.52 -19.16,6.32 -19.1,6.13 -19.04,5.94 -18.99,5.75 -18.93,5.56 -18.87,5.37 -18.81,5.18 -18.75,5 -18.69,4.81 -18.64,4.62 -18.58,4.43 -18.52,4.25 -18.46,4.06 -18.4,3.88 -18.34,3.69 -18.29,3.51 -18.23,3.32 -18.17,3.14 -18.11,2.96 -18.05,2.78 -17.99,2.61 -17.94,2.44 -17.88,2.27 -17.82,2.12 -17.76,1.99 -17.7,1.89 -17.64,1.82 -17.59,1.75 -17.53,1.69 -17.47,1.64 -17.41,1.58 -17.35,1.53 -17.29,1.47 -17.24,1.42 -17.18,1.36 -17.12,1.3 -17.06,1.25 -17,1.19 -16.94,1.13 -16.89,1.07 -16.83,1.02 -16.77,0.96 -16.71,0.9 -16.65,0.84 -16.59,0.78 -16.54,0.72 -16.48,0.66 -16.42,0.6 -16.36,0.54 -16.3,0.48 -16.24,0.41 -16.19,0.35 -16.13,0.29 -16.07,0.23 -16.01,0.16 -15.95,0.1 -15.89,0.03 -15.84,-0.03 -15.78,-0.1 -15.72,-0.16 -15.66,-0.23 -15.6,-0.29 -15.54,-0.36 -15.49,-0.43 -15.43,-0.5 -15.37,-0.56 -15.31,-0.63 -15.25,-0.7 -15.19,-0.77 -15.14,-0.84 -15.08,-0.91 -15.02,-0.98 -14.96,-1.05 -14.9,-1.13 -14.84,-1.2 -14.79,-1.27 -14.73,-1.35 -14.67,-1.42 -14.61,-1.49 -14.55,-1.57 -14.49,-1.64 -14.44,-1.72 -14.38,-1.8 -14.32,-1.87 -14.26,-1.95 -14.2,-2.03 -14.14,-2.11 -14.09,-2.19 -14.03,-2.27 -13.97,-2.35 -13.91,-2.43 -13.85,-2.51 -13.79,-2.59 -13.74,-2.67 -13.68,-2.76 -13.62,-2.84 -13.56,-2.93 -13.5,-3.01 -13.44,-3.1 -13.39,-3.18 -13.33,-3.27 -13.27,-3.36 -13.21,-3.44 -13.15,-3.53 -13.09,-3.62 -13.04,-3.71 -12.98,-3.8 -12.92,-3.9 -12.86,-3.99 -12.8,-4.08 -12.74,-4.17 -12.69,-4.27 -12.63,-4.36 -12.57,-4.46 -12.51,-4.56 -12.45,-4.65 -12.39,-4.75 -12.34,-4.85 -12.28,-4.95 -12.22,-5.05 -12.16,-5.15 -12.1,-5.25 -12.04,-5.36 -11.99,-5.46 -11.93,-5.56 -11.87,-5.67 -11.81,-5.77 -11.75,-5.88 -11.69,-5.99 -11.64,-6.1 -11.58,-6.21 -11.52,-6.32 -11.46,-6.43 -11.4,-6.54 -11.34,-6.65 -11.29,-6.77 -11.23,-6.88 -11.17,-7 -11.11,-7.12 -11.05,-7.23 -10.99,-7.35 -10.94,-7.47 -10.88,-7.59 -10.82,-7.72 -10.76,-7.84 -10.7,-7.96 -10.64,-8.09 -10.59,-8.21 -10.53,-8.34 -10.47,-8.47 -10.41,-8.6 -10.35,-8.73 -10.29,-8.86 -10.24,-8.99 -10.18,-9.13 -10.12,-9.26 -10.06,-9.4 -10,-9.54 -9.94,-9.68 -9.89,-9.82 -9.83,-9.96 -9.77,-10.1 -9.71,-10.25 -9.65,-10.39 -9.59,-10.54 -9.54,-10.69 -9.48,-10.84 -9.42,-10.99 -9.36,-11.14 -9.3,-11.29 -9.24,-11.45 -9.19,-11.6 -9.13,-11.76 -9.07,-11.92 -9.01,-12.08 -8.95,-12.25 -8.89,-12.41 -8.84,-12.58 -8.78,-12.75 -8.72,-12.91 -8.66,-13.09 -8.6,-13.26 -8.54,-13.43 -8.49,-13.61 -8.43,-13.79 -8.37,-13.97 -8.31,-14.15 -8.25,-14.33 -8.19,-14.52 -8.14,-14.7 -8.08,-14.89 -8.02,-15.08 -7.96,-15.28 -7.9,-15.47 -7.85,-15.67 -7.79,-15.87 -7.73,-16.07 -7.67,-16.27 -7.61,-16.48 -7.55,-16.69 -7.5,-16.9 -7.44,-17.11 -7.38,-17.32 -7.32,-17.54 -7.26,-17.76 -7.2,-17.98 -7.15,-18.2 -7.09,-18.43 -7.03,-18.65 -6.97,-18.88 -6.91,-19.11 -6.85,-19.35 -6.8,-19.58 -6.74,-19.82 -6.68,-20.05 -6.62,-20.29 -6.56,-20.52 -6.5,-20.75 -6.45,-20.97 -6.39,-21.18 -6.33,-21.37 -6.27,-21.51 -6.21,-21.56 -6.15,-21.52 -6.1,-21.43 -6.04,-21.33 -5.98,-21.22 -5.92,-21.1 -5.86,-20.98 -5.8,-20.85 -5.75,-20.73 -5.69,-20.61 -5.63,-20.48 -5.57,-20.36 -5.51,-20.24 -5.45,-20.12 -5.4,-20 -5.34,-19.87 -5.28,-19.75 -5.22,-19.64 -5.16,-19.52 -5.1,-19.4 -5.05,-19.28 -4.99,-19.17 -4.93,-19.05 -4.87,-18.94 -4.81,-18.82 -4.75,-18.71 -4.7,-18.6 -4.64,-18.48 -4.58,-18.37 -4.52,-18.26 -4.46,-18.15 -4.4,-18.04 -4.35,-17.93 -4.29,-17.83 -4.23,-17.72 -4.17,-17.61 -4.11,-17.51 -4.05,-17.4 -4,-17.29 -3.94,-17.19 -3.88,-17.09 -3.82,-16.98 -3.76,-16.88 -3.7,-16.78 -3.65,-16.67 -3.59,-16.57 -3.53,-16.47 -3.47,-16.37 -3.41,-16.27 -3.35,-16.17 -3.3,-16.07 -3.24,-15.97 -3.18,-15.87 -3.12,-15.77 -3.06,-15.68 -3,-15.58 -2.95,-15.48 -2.89,-15.38 -2.83,-15.29 -2.77,-15.19 -2.71,-15.1 -2.65,-15 -2.6,-14.9 -2.54,-14.81 -2.48,-14.72 -2.42,-14.62 -2.36,-14.53 -2.3,-14.43 -2.25,-14.34 -2.19,-14.25 -2.13,-14.15 -2.07,-14.06 -2.01,-13.97 -1.95,-13.88 -1.9,-13.79 -1.84,-13.69 -1.78,-13.6 -1.72,-13.51 -1.66,-13.42 -1.6,-13.33 -1.55,-13.24 -1.49,-13.15 -1.43,-13.06 -1.37,-12.97 -1.31,-12.88 -1.25,-12.79 -1.2,-12.7 -1.14,-12.62 -1.08,-12.53 -1.02,-12.44 -0.96,-12.35 -0.9,-12.26 -0.85,-12.17 -0.79,-12.09 -0.73,-12 -0.67,-11.91 -0.61,-11.82 -0.55,-11.74 -0.5,-11.65 -0.44,-11.56 -0.38,-11.48 -0.32,-11.39 -0.26,-11.3 -0.2,-11.22 -0.15,-11.13 -0.09,-11.05 -0.03,-10.96 0.03,-10.88 0.09,-10.79 0.15,-10.7 0.2,-10.62 0.26,-10.53 0.32,-10.45 0.38,-10.37 0.44,-10.28 0.5,-10.2 0.55,-10.11 0.61,-10.03 0.67,-9.94 0.73,-9.86 0.79,-9.77 0.85,-9.69 0.9,-9.61 0.96,-9.52 1.02,-9.44 1.08,-9.36 1.14,-9.27 1.2,-9.19 1.25,-9.11 1.31,-9.02 1.37,-8.94 1.43,-8.86 1.49,-8.77 1.55,-8.69 1.6,-8.61 1.66,-8.53 1.72,-8.44 1.78,-8.36 1.84,-8.28 1.9,-8.2 1.95,-8.11 2.01,-8.03 2.07,-7.95 2.13,-7.87 2.19,-7.79 2.25,-7.7 2.3,-7.62 2.36,-7.54 2.42,-7.46 2.48,-7.38 2.54,-7.3 2.6,-7.21 2.65,-7.13 2.71,-7.05 2.77,-6.97 2.83,-6.89 2.89,-6.81 2.95,-6.73 3,-6.65 3.06,-6.57 3.12,-6.48 3.18,-6.4 3.24,-6.32 3.3,-6.24 3.35,-6.16 3.41,-6.08 3.47,-6 3.53,-5.92 3.59,-5.84 3.65,-5.76 3.7,-5.68 3.76,-5.6 3.82,-5.52 3.88,-5.44 3.94,-5.36 4,-5.28 4.05,-5.2 4.11,-5.11 4.17,-5.03 4.23,-4.95 4.29,-4.87 4.35,-4.79 4.4,-4.71 4.46,-4.63 4.52,-4.55 4.58,-4.47 4.64,-4.39 4.7,-4.32 4.75,-4.24 4.81,-4.16 4.87,-4.08 4.93,-4 4.99,-3.92 5.05,-3.84 5.1,-3.76 5.16,-3.68 5.22,-3.6 5.28,-3.52 5.34,-3.44 5.4,-3.36 5.45,-3.28 5.51,-3.2 5.57,-3.12 5.63,-3.04 5.69,-2.96 5.75,-2.88 5.8,-2.8 5.86,-2.72 5.92,-2.65 5.98,-2.57 6.04,-2.49 6.1,-2.41 6.15,-2.33 6.21,-2.25 6.27,-2.17 6.33,-2.09 6.39,-2.01 6.45,-1.93 6.5,-1.85 6.56,-1.78 6.62,-1.7 6.68,-1.62 6.74,-1.54 6.8,-1.46 6.85,-1.38 6.91,-1.3 6.97,-1.22 7.03,-1.14 7.09,-1.07 7.15,-0.99 7.2,-0.91 7.26,-0.83 7.32,-0.75 7.38,-0.67 7.44,-0.59 7.5,-0.51 7.55,-0.44 7.61,-0.36 7.67,-0.28 7.73,-0.2 7.79,-0.12 7.85,-0.04 7.9,0.04 7.96,0.11 8.02,0.19 8.08,0.27 8.14,0.35 8.19,0.43 8.25,0.51 8.31,0.58 8.37,0.66 8.43,0.74 8.49,0.82 8.54,0.9 8.6,0.98 8.66,1.06 8.72,1.13 8.78,1.21 8.84,1.29 8.89,1.37 8.95,1.45 9.01,1.53 9.07,1.6 9.13,1.68 9.19,1.76 9.24,1.84 9.3,1.92 9.36,2 9.42,2.07 9.48,2.15 9.54,2.23 9.59,2.31 9.65,2.39 9.71,2.46 9.77,2.54 9.83,2.62 9.89,2.7 9.94,2.78 10,2.86 10.06,2.93 10.12,3.01 10.18,3.09 10.24,3.17 10.29,3.25 10.35,3.32 10.41,3.4 10.47,3.48 10.53,3.56 10.59,3.64 10.64,3.71 10.7,3.79 10.76,3.87 10.82,3.95 10.88,4.03 10.94,4.1 10.99,4.18 11.05,4.26 11.11,4.34 11.17,4.42 11.23,4.49 11.29,4.57 11.34,4.65 11.4,4.73 11.46,4.81 11.52,4.88 11.58,4.96 11.64,5.04 11.69,5.12 11.75,5.2 11.81,5.27 11.87,5.35 11.93,5.43 11.99,5.51 12.04,5.59 12.1,5.66 12.16,5.74 12.22,5.82 12.28,5.9 12.34,5.97 12.39,6.05 12.45,6.13 12.51,6.21 12.57,6.29 12.63,6.36 12.69,6.44 12.74,6.52 12.8,6.6 12.86,6.67 12.92,6.75 12.98,6.83 13.04,6.91 13.09,6.99 13.15,7.06 13.21,7.14 13.27,7.22 13.33,7.3 13.39,7.37 13.44,7.45 13.5,7.53 13.56,7.61 13.62,7.69 13.68,7.76 13.74,7.84 13.79,7.92 13.85,8 13.91,8.07 13.97,8.15 14.03,8.23 14.09,8.31 14.14,8.39 14.2,8.46 14.26,8.54 14.32,8.62 14.38,8.7 14.44,8.77 14.49,8.85 14.55,8.93 14.61,9.01 14.67,9.08 14.73,9.16 14.79,9.24 14.84,9.32 14.9,9.39 14.96,9.47 15.02,9.55 15.08,9.63 15.14,9.71 15.19,9.78 15.25,9.86 15.31,9.94 15.37,10.02 15.43,10.09 15.49,10.17 15.54,10.25 15.6,10.33 15.66,10.4 15.72,10.48 15.78,10.56 15.84,10.64 15.89,10.71 15.95,10.79 16.01,10.87 16.07,10.95 16.13,11.02 16.19,11.1 16.24,11.18 16.3,11.26 16.36,11.34 16.42,11.41 16.48,11.49 16.54,11.57 16.59,11.65 16.65,11.72 16.71,11.8 16.77,11.88 16.83,11.96 16.89,12.03 16.94,12.11 17,12.19 17.06,12.27 17.12,12.34 17.18,12.42 17.24,12.5 17.29,12.58 17.35,12.65 17.41,12.73 17.47,12.81 17.53,12.89 17.59,12.96 17.64,13.04 17.7,13.12 17.76,13.2 17.82,13.27 17.88,13.35 17.94,13.43 17.99,13.51 18.05,13.58 18.11,13.66 18.17,13.74 18.23,13.82 18.29,13.89 18.34,13.97 18.4,14.05 18.46,14.13 18.52,14.2 18.58,14.28 18.64,14.36 18.69,14.44 18.75,14.51 18.81,14.59 18.87,14.67 18.93,14.75 18.99,14.82 19.04,14.9 19.1,14.98 19.16,15.06 19.22,15.13 19.28,15.21 19.34,15.29 19.39,15.37 19.45,15.44 19.51,15.52 19.57,15.6 19.63,15.68 19.69,15.75 19.74,15.83 19.8,15.91 19.86,15.99 19.92,16.06 19.98,16.14 20.04,16.22 20.09,16.3 20.15,16.37 20.21,16.45 20.27,16.53 20.33,16.61 20.39,16.68 20.44,16.76 20.5,16.84 20.56,16.92 20.62,16.99 20.68,17.07 20.74,17.15 20.79,17.23 20.85,17.3 20.91,17.38 20.97,17.46 21.03,17.54 21.09,17.61 21.14,17.69 21.2,17.77 21.26,17.85 21.32,17.92 21.38,18 21.44,18.08 21.49,18.15 21.55,18.23 21.61,18.31 21.67,18.39 21.73,18.46 21.79,18.54 21.84,18.62 21.9,18.7 21.96,18.77 22.02,18.85 22.08,18.93 22.14,19.01 22.19,19.08 22.25,19.16 22.31,19.24 22.37,19.32 22.43,19.39 22.49,19.47 22.54,19.55 22.6,19.63 22.66,19.7 22.72,19.78 22.78,19.86 22.84,19.94 22.89,20.01 22.95,20.09 23.01,20.17 23.07,20.25 23.13,20.32 23.19,20.4 23.24,20.48 23.3,20.55 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ylabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-60\">\n", + " <g transform=\"translate(19.3,131.11)\" id=\"img-68edbf8e-61\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.00</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(19.3,115.14)\" id=\"img-68edbf8e-62\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.05</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(19.3,99.17)\" id=\"img-68edbf8e-63\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.10</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(19.3,83.2)\" id=\"img-68edbf8e-64\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.15</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-65\">\n", + " <g transform=\"translate(8.81,105.16)\" id=\"img-68edbf8e-66\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\" transform=\"rotate(-90,0, 2)\">Velocity</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + "</g>\n", + "<g class=\"plotroot xscalable yscalable\" id=\"img-68edbf8e-67\">\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-68\">\n", + " <g transform=\"translate(121.12,64.59)\" id=\"img-68edbf8e-69\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">Time (s)</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xlabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-70\">\n", + " <g transform=\"translate(96.83,57.91)\" id=\"img-68edbf8e-71\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.00</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(108.97,57.91)\" id=\"img-68edbf8e-72\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.05</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(121.12,57.91)\" id=\"img-68edbf8e-73\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.10</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(133.26,57.91)\" id=\"img-68edbf8e-74\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.15</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(145.4,57.91)\" id=\"img-68edbf8e-75\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.20</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g clip-path=\"url(#img-68edbf8e-76)\">\n", + " <g id=\"img-68edbf8e-77\">\n", + " <g pointer-events=\"visible\" stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#000000\" stroke-opacity=\"0.000\" class=\"guide background\" id=\"img-68edbf8e-78\">\n", + " <g transform=\"translate(121.12,30.96)\" id=\"img-68edbf8e-79\">\n", + " <path d=\"M-26.28,-25.96 L26.28,-25.96 26.28,25.96 -26.28,25.96 z\" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ygridlines xfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-80\">\n", + " <g transform=\"translate(121.12,54.91)\" id=\"img-68edbf8e-81\">\n", + " <path fill=\"none\" d=\"M-26.28,0 L26.28,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(121.12,45.33)\" id=\"img-68edbf8e-82\">\n", + " <path fill=\"none\" d=\"M-26.28,0 L26.28,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(121.12,35.75)\" id=\"img-68edbf8e-83\">\n", + " <path fill=\"none\" d=\"M-26.28,0 L26.28,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(121.12,26.17)\" id=\"img-68edbf8e-84\">\n", + " <path fill=\"none\" d=\"M-26.28,0 L26.28,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(121.12,16.58)\" id=\"img-68edbf8e-85\">\n", + " <path fill=\"none\" d=\"M-26.28,0 L26.28,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(121.12,7)\" id=\"img-68edbf8e-86\">\n", + " <path fill=\"none\" d=\"M-26.28,0 L26.28,0 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xgridlines yfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-87\">\n", + " <g transform=\"translate(96.83,30.96)\" id=\"img-68edbf8e-88\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(108.97,30.96)\" id=\"img-68edbf8e-89\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(121.12,30.96)\" id=\"img-68edbf8e-90\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(133.26,30.96)\" id=\"img-68edbf8e-91\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(145.4,30.96)\" id=\"img-68edbf8e-92\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"plotpanel\" id=\"img-68edbf8e-93\">\n", + " <metadata>\n", + " <boundingbox value=\"94.83166666666665mm 5.0mm 52.56833333333332mm 51.91499999999999mm\"/>\n", + " <unitbox value=\"-0.008235818949246769 1.0208702911405614 0.21647163789849355 -0.5417405822811229\"/>\n", + " </metadata>\n", + " <g stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" class=\"geometry\" id=\"img-68edbf8e-94\">\n", + " <g class=\"color_LCHab{Float32}(70.0f0,60.0f0,240.0f0)\" stroke-dasharray=\"none\" stroke=\"#00BFFF\" id=\"img-68edbf8e-95\">\n", + " <g transform=\"translate(121.03,38.75)\" id=\"img-68edbf8e-96\">\n", + " <path fill=\"none\" d=\"M-24.13,-31.75 L-24.07,-31.59 -24.01,-31.42 -23.95,-31.25 -23.89,-31.09 -23.83,-30.92 -23.77,-30.75 -23.71,-30.59 -23.65,-30.42 -23.59,-30.25 -23.53,-30.09 -23.47,-29.92 -23.41,-29.75 -23.35,-29.59 -23.29,-29.42 -23.23,-29.25 -23.17,-29.08 -23.11,-28.92 -23.05,-28.75 -22.99,-28.58 -22.92,-28.42 -22.86,-28.25 -22.8,-28.08 -22.74,-27.92 -22.68,-27.75 -22.62,-27.58 -22.56,-27.42 -22.5,-27.25 -22.44,-27.08 -22.38,-26.92 -22.32,-26.75 -22.26,-26.58 -22.2,-26.42 -22.14,-26.25 -22.08,-26.08 -22.02,-25.91 -21.96,-25.75 -21.9,-25.58 -21.84,-25.41 -21.78,-25.25 -21.72,-25.08 -21.66,-24.91 -21.6,-24.75 -21.54,-24.58 -21.48,-24.41 -21.41,-24.25 -21.35,-24.08 -21.29,-23.91 -21.23,-23.75 -21.17,-23.58 -21.11,-23.41 -21.05,-23.25 -20.99,-23.08 -20.93,-22.91 -20.87,-22.74 -20.81,-22.58 -20.75,-22.41 -20.69,-22.24 -20.63,-22.08 -20.57,-21.91 -20.51,-21.74 -20.45,-21.58 -20.39,-21.41 -20.33,-21.24 -20.27,-21.08 -20.21,-20.91 -20.15,-20.74 -20.09,-20.58 -20.03,-20.41 -19.96,-20.24 -19.9,-20.08 -19.84,-19.91 -19.78,-19.74 -19.72,-19.58 -19.66,-19.41 -19.6,-19.24 -19.54,-19.08 -19.48,-18.91 -19.42,-18.74 -19.36,-18.58 -19.3,-18.41 -19.24,-18.24 -19.18,-18.08 -19.12,-17.91 -19.06,-17.75 -19,-17.58 -18.94,-17.41 -18.88,-17.25 -18.82,-17.08 -18.76,-16.92 -18.7,-16.75 -18.64,-16.59 -18.58,-16.43 -18.52,-16.27 -18.45,-16.12 -18.39,-15.98 -18.33,-15.86 -18.27,-15.74 -18.21,-15.64 -18.15,-15.53 -18.09,-15.43 -18.03,-15.33 -17.97,-15.23 -17.91,-15.13 -17.85,-15.02 -17.79,-14.92 -17.73,-14.82 -17.67,-14.72 -17.61,-14.61 -17.55,-14.51 -17.49,-14.41 -17.43,-14.31 -17.37,-14.21 -17.31,-14.1 -17.25,-14 -17.19,-13.9 -17.13,-13.8 -17.07,-13.69 -17,-13.59 -16.94,-13.49 -16.88,-13.39 -16.82,-13.28 -16.76,-13.18 -16.7,-13.08 -16.64,-12.98 -16.58,-12.87 -16.52,-12.77 -16.46,-12.67 -16.4,-12.57 -16.34,-12.46 -16.28,-12.36 -16.22,-12.26 -16.16,-12.15 -16.1,-12.05 -16.04,-11.95 -15.98,-11.84 -15.92,-11.74 -15.86,-11.64 -15.8,-11.53 -15.74,-11.43 -15.68,-11.33 -15.62,-11.22 -15.56,-11.12 -15.49,-11.02 -15.43,-10.91 -15.37,-10.81 -15.31,-10.7 -15.25,-10.6 -15.19,-10.5 -15.13,-10.39 -15.07,-10.29 -15.01,-10.18 -14.95,-10.08 -14.89,-9.98 -14.83,-9.87 -14.77,-9.77 -14.71,-9.66 -14.65,-9.56 -14.59,-9.45 -14.53,-9.35 -14.47,-9.24 -14.41,-9.14 -14.35,-9.03 -14.29,-8.93 -14.23,-8.82 -14.17,-8.72 -14.11,-8.61 -14.04,-8.5 -13.98,-8.4 -13.92,-8.29 -13.86,-8.19 -13.8,-8.08 -13.74,-7.97 -13.68,-7.87 -13.62,-7.76 -13.56,-7.65 -13.5,-7.55 -13.44,-7.44 -13.38,-7.33 -13.32,-7.23 -13.26,-7.12 -13.2,-7.01 -13.14,-6.9 -13.08,-6.8 -13.02,-6.69 -12.96,-6.58 -12.9,-6.47 -12.84,-6.36 -12.78,-6.26 -12.72,-6.15 -12.66,-6.04 -12.6,-5.93 -12.53,-5.82 -12.47,-5.71 -12.41,-5.6 -12.35,-5.49 -12.29,-5.38 -12.23,-5.27 -12.17,-5.16 -12.11,-5.05 -12.05,-4.94 -11.99,-4.83 -11.93,-4.72 -11.87,-4.61 -11.81,-4.5 -11.75,-4.39 -11.69,-4.28 -11.63,-4.16 -11.57,-4.05 -11.51,-3.94 -11.45,-3.83 -11.39,-3.71 -11.33,-3.6 -11.27,-3.49 -11.21,-3.37 -11.15,-3.26 -11.08,-3.15 -11.02,-3.03 -10.96,-2.92 -10.9,-2.8 -10.84,-2.69 -10.78,-2.58 -10.72,-2.46 -10.66,-2.34 -10.6,-2.23 -10.54,-2.11 -10.48,-2 -10.42,-1.88 -10.36,-1.76 -10.3,-1.65 -10.24,-1.53 -10.18,-1.41 -10.12,-1.29 -10.06,-1.17 -10,-1.06 -9.94,-0.94 -9.88,-0.82 -9.82,-0.7 -9.76,-0.58 -9.7,-0.46 -9.64,-0.34 -9.57,-0.22 -9.51,-0.1 -9.45,0.03 -9.39,0.15 -9.33,0.27 -9.27,0.39 -9.21,0.51 -9.15,0.64 -9.09,0.76 -9.03,0.89 -8.97,1.01 -8.91,1.14 -8.85,1.26 -8.79,1.39 -8.73,1.51 -8.67,1.64 -8.61,1.77 -8.55,1.89 -8.49,2.02 -8.43,2.15 -8.37,2.28 -8.31,2.41 -8.25,2.54 -8.19,2.67 -8.12,2.8 -8.06,2.93 -8,3.06 -7.94,3.19 -7.88,3.33 -7.82,3.46 -7.76,3.59 -7.7,3.73 -7.64,3.86 -7.58,4 -7.52,4.13 -7.46,4.27 -7.4,4.4 -7.34,4.54 -7.28,4.68 -7.22,4.82 -7.16,4.96 -7.1,5.09 -7.04,5.23 -6.98,5.37 -6.92,5.51 -6.86,5.65 -6.8,5.78 -6.74,5.92 -6.68,6.05 -6.61,6.18 -6.55,6.3 -6.49,6.4 -6.43,6.46 -6.37,6.5 -6.31,6.52 -6.25,6.53 -6.19,6.54 -6.13,6.54 -6.07,6.55 -6.01,6.55 -5.95,6.55 -5.89,6.56 -5.83,6.56 -5.77,6.56 -5.71,6.56 -5.65,6.56 -5.59,6.56 -5.53,6.56 -5.47,6.56 -5.41,6.56 -5.35,6.56 -5.29,6.56 -5.23,6.57 -5.16,6.57 -5.1,6.57 -5.04,6.57 -4.98,6.57 -4.92,6.57 -4.86,6.57 -4.8,6.57 -4.74,6.57 -4.68,6.57 -4.62,6.57 -4.56,6.57 -4.5,6.57 -4.44,6.57 -4.38,6.57 -4.32,6.57 -4.26,6.57 -4.2,6.57 -4.14,6.57 -4.08,6.57 -4.02,6.57 -3.96,6.57 -3.9,6.57 -3.84,6.57 -3.78,6.57 -3.72,6.57 -3.65,6.57 -3.59,6.57 -3.53,6.57 -3.47,6.57 -3.41,6.57 -3.35,6.57 -3.29,6.57 -3.23,6.57 -3.17,6.57 -3.11,6.57 -3.05,6.57 -2.99,6.57 -2.93,6.57 -2.87,6.57 -2.81,6.57 -2.75,6.57 -2.69,6.57 -2.63,6.57 -2.57,6.57 -2.51,6.57 -2.45,6.57 -2.39,6.57 -2.33,6.57 -2.27,6.57 -2.2,6.57 -2.14,6.57 -2.08,6.57 -2.02,6.57 -1.96,6.57 -1.9,6.57 -1.84,6.57 -1.78,6.57 -1.72,6.57 -1.66,6.57 -1.6,6.57 -1.54,6.57 -1.48,6.57 -1.42,6.57 -1.36,6.57 -1.3,6.57 -1.24,6.57 -1.18,6.57 -1.12,6.57 -1.06,6.57 -1,6.57 -0.94,6.57 -0.88,6.57 -0.82,6.57 -0.76,6.57 -0.69,6.57 -0.63,6.57 -0.57,6.57 -0.51,6.57 -0.45,6.57 -0.39,6.57 -0.33,6.57 -0.27,6.57 -0.21,6.57 -0.15,6.57 -0.09,6.57 -0.03,6.57 0.03,6.57 0.09,6.57 0.15,6.57 0.21,6.57 0.27,6.57 0.33,6.57 0.39,6.57 0.45,6.57 0.51,6.57 0.57,6.57 0.63,6.57 0.69,6.57 0.76,6.57 0.82,6.57 0.88,6.57 0.94,6.57 1,6.57 1.06,6.57 1.12,6.57 1.18,6.57 1.24,6.57 1.3,6.57 1.36,6.57 1.42,6.57 1.48,6.57 1.54,6.57 1.6,6.57 1.66,6.57 1.72,6.57 1.78,6.57 1.84,6.57 1.9,6.57 1.96,6.57 2.02,6.57 2.08,6.57 2.14,6.57 2.2,6.57 2.27,6.57 2.33,6.57 2.39,6.57 2.45,6.57 2.51,6.57 2.57,6.57 2.63,6.57 2.69,6.57 2.75,6.57 2.81,6.57 2.87,6.57 2.93,6.57 2.99,6.57 3.05,6.57 3.11,6.57 3.17,6.57 3.23,6.57 3.29,6.57 3.35,6.57 3.41,6.57 3.47,6.57 3.53,6.57 3.59,6.57 3.65,6.57 3.72,6.57 3.78,6.57 3.84,6.57 3.9,6.57 3.96,6.57 4.02,6.57 4.08,6.57 4.14,6.57 4.2,6.57 4.26,6.57 4.32,6.57 4.38,6.57 4.44,6.57 4.5,6.57 4.56,6.57 4.62,6.57 4.68,6.57 4.74,6.57 4.8,6.57 4.86,6.57 4.92,6.57 4.98,6.57 5.04,6.57 5.1,6.57 5.16,6.57 5.23,6.57 5.29,6.57 5.35,6.57 5.41,6.57 5.47,6.57 5.53,6.57 5.59,6.57 5.65,6.57 5.71,6.57 5.77,6.57 5.83,6.57 5.89,6.57 5.95,6.57 6.01,6.57 6.07,6.57 6.13,6.57 6.19,6.57 6.25,6.57 6.31,6.57 6.37,6.57 6.43,6.57 6.49,6.57 6.55,6.57 6.61,6.57 6.68,6.57 6.74,6.57 6.8,6.58 6.86,6.58 6.92,6.58 6.98,6.58 7.04,6.58 7.1,6.58 7.16,6.58 7.22,6.58 7.28,6.58 7.34,6.58 7.4,6.58 7.46,6.58 7.52,6.58 7.58,6.58 7.64,6.58 7.7,6.58 7.76,6.58 7.82,6.58 7.88,6.58 7.94,6.58 8,6.58 8.06,6.58 8.12,6.58 8.19,6.58 8.25,6.58 8.31,6.58 8.37,6.58 8.43,6.58 8.49,6.58 8.55,6.58 8.61,6.58 8.67,6.58 8.73,6.58 8.79,6.58 8.85,6.58 8.91,6.58 8.97,6.58 9.03,6.58 9.09,6.58 9.15,6.58 9.21,6.58 9.27,6.58 9.33,6.58 9.39,6.58 9.45,6.58 9.51,6.58 9.57,6.58 9.64,6.58 9.7,6.58 9.76,6.58 9.82,6.58 9.88,6.58 9.94,6.58 10,6.58 10.06,6.58 10.12,6.58 10.18,6.58 10.24,6.58 10.3,6.58 10.36,6.58 10.42,6.58 10.48,6.58 10.54,6.58 10.6,6.58 10.66,6.58 10.72,6.58 10.78,6.58 10.84,6.58 10.9,6.58 10.96,6.58 11.02,6.58 11.08,6.58 11.15,6.58 11.21,6.58 11.27,6.58 11.33,6.58 11.39,6.58 11.45,6.58 11.51,6.58 11.57,6.58 11.63,6.58 11.69,6.58 11.75,6.58 11.81,6.58 11.87,6.58 11.93,6.58 11.99,6.58 12.05,6.58 12.11,6.58 12.17,6.58 12.23,6.58 12.29,6.58 12.35,6.58 12.41,6.58 12.47,6.58 12.53,6.58 12.6,6.58 12.66,6.58 12.72,6.58 12.78,6.58 12.84,6.58 12.9,6.58 12.96,6.58 13.02,6.58 13.08,6.58 13.14,6.58 13.2,6.58 13.26,6.58 13.32,6.58 13.38,6.58 13.44,6.58 13.5,6.58 13.56,6.58 13.62,6.58 13.68,6.58 13.74,6.58 13.8,6.58 13.86,6.58 13.92,6.58 13.98,6.58 14.04,6.58 14.11,6.58 14.17,6.58 14.23,6.58 14.29,6.58 14.35,6.58 14.41,6.58 14.47,6.58 14.53,6.58 14.59,6.58 14.65,6.58 14.71,6.58 14.77,6.58 14.83,6.58 14.89,6.58 14.95,6.58 15.01,6.58 15.07,6.58 15.13,6.58 15.19,6.58 15.25,6.58 15.31,6.58 15.37,6.58 15.43,6.58 15.49,6.58 15.56,6.58 15.62,6.58 15.68,6.58 15.74,6.58 15.8,6.58 15.86,6.58 15.92,6.58 15.98,6.58 16.04,6.58 16.1,6.58 16.16,6.58 16.22,6.58 16.28,6.58 16.34,6.58 16.4,6.58 16.46,6.58 16.52,6.58 16.58,6.58 16.64,6.58 16.7,6.58 16.76,6.58 16.82,6.58 16.88,6.58 16.94,6.58 17,6.58 17.07,6.58 17.13,6.58 17.19,6.58 17.25,6.58 17.31,6.58 17.37,6.58 17.43,6.58 17.49,6.58 17.55,6.58 17.61,6.58 17.67,6.58 17.73,6.58 17.79,6.58 17.85,6.58 17.91,6.58 17.97,6.58 18.03,6.58 18.09,6.58 18.15,6.58 18.21,6.58 18.27,6.58 18.33,6.58 18.39,6.58 18.45,6.58 18.52,6.58 18.58,6.58 18.64,6.58 18.7,6.58 18.76,6.58 18.82,6.58 18.88,6.58 18.94,6.58 19,6.58 19.06,6.58 19.12,6.58 19.18,6.58 19.24,6.58 19.3,6.58 19.36,6.58 19.42,6.58 19.48,6.58 19.54,6.58 19.6,6.58 19.66,6.58 19.72,6.58 19.78,6.58 19.84,6.58 19.9,6.58 19.96,6.58 20.03,6.58 20.09,6.58 20.15,6.58 20.21,6.58 20.27,6.58 20.33,6.58 20.39,6.58 20.45,6.58 20.51,6.58 20.57,6.58 20.63,6.58 20.69,6.58 20.75,6.58 20.81,6.58 20.87,6.58 20.93,6.58 20.99,6.58 21.05,6.58 21.11,6.58 21.17,6.58 21.23,6.58 21.29,6.58 21.35,6.58 21.41,6.58 21.48,6.58 21.54,6.58 21.6,6.58 21.66,6.58 21.72,6.58 21.78,6.58 21.84,6.58 21.9,6.58 21.96,6.58 22.02,6.58 22.08,6.58 22.14,6.58 22.2,6.58 22.26,6.58 22.32,6.58 22.38,6.58 22.44,6.58 22.5,6.58 22.56,6.58 22.62,6.58 22.68,6.58 22.74,6.58 22.8,6.58 22.86,6.58 22.92,6.58 22.99,6.58 23.05,6.58 23.11,6.58 23.17,6.58 23.23,6.58 23.29,6.58 23.35,6.58 23.41,6.58 23.47,6.58 23.53,6.58 23.59,6.58 23.65,6.58 23.71,6.58 23.77,6.58 23.83,6.58 23.89,6.58 23.95,6.58 24.01,6.58 24.07,6.58 24.13,6.58 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ylabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-97\">\n", + " <g transform=\"translate(93.83,54.91)\" id=\"img-68edbf8e-98\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.5</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(93.83,45.33)\" id=\"img-68edbf8e-99\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.6</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(93.83,35.75)\" id=\"img-68edbf8e-100\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.7</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(93.83,26.17)\" id=\"img-68edbf8e-101\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.8</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(93.83,16.58)\" id=\"img-68edbf8e-102\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.9</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(93.83,7)\" id=\"img-68edbf8e-103\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">1.0</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-104\">\n", + " <g transform=\"translate(85.01,28.96)\" id=\"img-68edbf8e-105\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\" transform=\"rotate(-90,0, 2)\">Mass</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + "</g>\n", + "<g class=\"plotroot xscalable yscalable\" id=\"img-68edbf8e-106\">\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-107\">\n", + " <g transform=\"translate(46.59,64.59)\" id=\"img-68edbf8e-108\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">Time (s)</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xlabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-109\">\n", + " <g transform=\"translate(23.98,57.91)\" id=\"img-68edbf8e-110\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.00</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(35.28,57.91)\" id=\"img-68edbf8e-111\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.05</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(46.59,57.91)\" id=\"img-68edbf8e-112\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.10</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(57.89,57.91)\" id=\"img-68edbf8e-113\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.15</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(69.2,57.91)\" id=\"img-68edbf8e-114\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.20</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g clip-path=\"url(#img-68edbf8e-115)\">\n", + " <g id=\"img-68edbf8e-116\">\n", + " <g pointer-events=\"visible\" stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#000000\" stroke-opacity=\"0.000\" class=\"guide background\" id=\"img-68edbf8e-117\">\n", + " <g transform=\"translate(46.59,30.96)\" id=\"img-68edbf8e-118\">\n", + " <path d=\"M-24.61,-25.96 L24.61,-25.96 24.61,25.96 -24.61,25.96 z\" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ygridlines xfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-119\">\n", + " <g transform=\"translate(46.59,54.91)\" id=\"img-68edbf8e-120\">\n", + " <path fill=\"none\" d=\"M-24.61,0 L24.61,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(46.59,38.94)\" id=\"img-68edbf8e-121\">\n", + " <path fill=\"none\" d=\"M-24.61,0 L24.61,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(46.59,22.97)\" id=\"img-68edbf8e-122\">\n", + " <path fill=\"none\" d=\"M-24.61,0 L24.61,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(46.59,7)\" id=\"img-68edbf8e-123\">\n", + " <path fill=\"none\" d=\"M-24.61,0 L24.61,0 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xgridlines yfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-124\">\n", + " <g transform=\"translate(23.98,30.96)\" id=\"img-68edbf8e-125\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(35.28,30.96)\" id=\"img-68edbf8e-126\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(46.59,30.96)\" id=\"img-68edbf8e-127\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(57.89,30.96)\" id=\"img-68edbf8e-128\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(69.2,30.96)\" id=\"img-68edbf8e-129\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"plotpanel\" id=\"img-68edbf8e-130\">\n", + " <metadata>\n", + " <boundingbox value=\"21.97833333333333mm 5.0mm 49.22166666666666mm 51.91499999999999mm\"/>\n", + " <unitbox value=\"-0.008845317510043122 1.0156261087342169 0.21769063502008623 -0.016252217468433822\"/>\n", + " </metadata>\n", + " <g stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" class=\"geometry\" id=\"img-68edbf8e-131\">\n", + " <g class=\"color_LCHab{Float32}(70.0f0,60.0f0,240.0f0)\" stroke-dasharray=\"none\" stroke=\"#00BFFF\" id=\"img-68edbf8e-132\">\n", + " <g transform=\"translate(46.5,32.12)\" id=\"img-68edbf8e-133\">\n", + " <path fill=\"none\" d=\"M-22.47,22.8 L-22.41,22.8 -22.36,22.8 -22.3,22.8 -22.25,22.79 -22.19,22.79 -22.13,22.79 -22.08,22.79 -22.02,22.78 -21.96,22.78 -21.91,22.77 -21.85,22.77 -21.8,22.76 -21.74,22.76 -21.68,22.75 -21.63,22.74 -21.57,22.73 -21.51,22.73 -21.46,22.72 -21.4,22.71 -21.35,22.7 -21.29,22.69 -21.23,22.68 -21.18,22.66 -21.12,22.65 -21.06,22.64 -21.01,22.63 -20.95,22.61 -20.9,22.6 -20.84,22.59 -20.78,22.57 -20.73,22.56 -20.67,22.54 -20.61,22.52 -20.56,22.51 -20.5,22.49 -20.45,22.47 -20.39,22.45 -20.33,22.43 -20.28,22.41 -20.22,22.39 -20.16,22.37 -20.11,22.35 -20.05,22.33 -20,22.31 -19.94,22.29 -19.88,22.26 -19.83,22.24 -19.77,22.22 -19.71,22.19 -19.66,22.17 -19.6,22.14 -19.55,22.12 -19.49,22.09 -19.43,22.06 -19.38,22.03 -19.32,22.01 -19.26,21.98 -19.21,21.95 -19.15,21.92 -19.1,21.89 -19.04,21.86 -18.98,21.83 -18.93,21.8 -18.87,21.76 -18.81,21.73 -18.76,21.7 -18.7,21.67 -18.65,21.63 -18.59,21.6 -18.53,21.56 -18.48,21.53 -18.42,21.49 -18.36,21.46 -18.31,21.42 -18.25,21.38 -18.2,21.34 -18.14,21.31 -18.08,21.27 -18.03,21.23 -17.97,21.19 -17.91,21.15 -17.86,21.11 -17.8,21.07 -17.75,21.03 -17.69,20.98 -17.63,20.94 -17.58,20.9 -17.52,20.86 -17.46,20.81 -17.41,20.77 -17.35,20.72 -17.3,20.68 -17.24,20.63 -17.18,20.59 -17.13,20.54 -17.07,20.5 -17.01,20.45 -16.96,20.4 -16.9,20.35 -16.85,20.31 -16.79,20.26 -16.73,20.21 -16.68,20.17 -16.62,20.12 -16.56,20.07 -16.51,20.02 -16.45,19.97 -16.4,19.93 -16.34,19.88 -16.28,19.83 -16.23,19.78 -16.17,19.73 -16.11,19.68 -16.06,19.63 -16,19.58 -15.95,19.54 -15.89,19.49 -15.83,19.44 -15.78,19.39 -15.72,19.34 -15.66,19.29 -15.61,19.24 -15.55,19.19 -15.5,19.13 -15.44,19.08 -15.38,19.03 -15.33,18.98 -15.27,18.93 -15.21,18.88 -15.16,18.83 -15.1,18.78 -15.05,18.72 -14.99,18.67 -14.93,18.62 -14.88,18.57 -14.82,18.51 -14.76,18.46 -14.71,18.41 -14.65,18.36 -14.6,18.3 -14.54,18.25 -14.48,18.2 -14.43,18.14 -14.37,18.09 -14.31,18.03 -14.26,17.98 -14.2,17.92 -14.15,17.87 -14.09,17.82 -14.03,17.76 -13.98,17.71 -13.92,17.65 -13.86,17.59 -13.81,17.54 -13.75,17.48 -13.7,17.43 -13.64,17.37 -13.58,17.31 -13.53,17.26 -13.47,17.2 -13.41,17.14 -13.36,17.08 -13.3,17.03 -13.25,16.97 -13.19,16.91 -13.13,16.85 -13.08,16.79 -13.02,16.74 -12.96,16.68 -12.91,16.62 -12.85,16.56 -12.8,16.5 -12.74,16.44 -12.68,16.38 -12.63,16.32 -12.57,16.26 -12.51,16.2 -12.46,16.14 -12.4,16.08 -12.35,16.02 -12.29,15.95 -12.23,15.89 -12.18,15.83 -12.12,15.77 -12.06,15.71 -12.01,15.64 -11.95,15.58 -11.9,15.52 -11.84,15.45 -11.78,15.39 -11.73,15.33 -11.67,15.26 -11.61,15.2 -11.56,15.13 -11.5,15.07 -11.45,15 -11.39,14.94 -11.33,14.87 -11.28,14.81 -11.22,14.74 -11.16,14.67 -11.11,14.61 -11.05,14.54 -11,14.47 -10.94,14.4 -10.88,14.34 -10.83,14.27 -10.77,14.2 -10.71,14.13 -10.66,14.06 -10.6,13.99 -10.55,13.92 -10.49,13.85 -10.43,13.78 -10.38,13.71 -10.32,13.64 -10.26,13.57 -10.21,13.5 -10.15,13.43 -10.1,13.35 -10.04,13.28 -9.98,13.21 -9.93,13.13 -9.87,13.06 -9.81,12.99 -9.76,12.91 -9.7,12.84 -9.65,12.76 -9.59,12.69 -9.53,12.61 -9.48,12.54 -9.42,12.46 -9.36,12.38 -9.31,12.31 -9.25,12.23 -9.2,12.15 -9.14,12.07 -9.08,12 -9.03,11.92 -8.97,11.84 -8.91,11.76 -8.86,11.68 -8.8,11.6 -8.75,11.52 -8.69,11.44 -8.63,11.36 -8.58,11.27 -8.52,11.19 -8.47,11.11 -8.41,11.03 -8.35,10.94 -8.3,10.86 -8.24,10.77 -8.18,10.69 -8.13,10.6 -8.07,10.52 -8.02,10.43 -7.96,10.34 -7.9,10.26 -7.85,10.17 -7.79,10.08 -7.73,9.99 -7.68,9.9 -7.62,9.81 -7.57,9.72 -7.51,9.63 -7.45,9.54 -7.4,9.45 -7.34,9.36 -7.28,9.27 -7.23,9.17 -7.17,9.08 -7.12,8.99 -7.06,8.89 -7,8.8 -6.95,8.7 -6.89,8.61 -6.83,8.51 -6.78,8.41 -6.72,8.31 -6.67,8.21 -6.61,8.12 -6.55,8.02 -6.5,7.92 -6.44,7.81 -6.38,7.71 -6.33,7.61 -6.27,7.51 -6.22,7.41 -6.16,7.3 -6.1,7.2 -6.05,7.09 -5.99,6.99 -5.93,6.88 -5.88,6.78 -5.82,6.67 -5.77,6.57 -5.71,6.47 -5.65,6.36 -5.6,6.26 -5.54,6.16 -5.48,6.05 -5.43,5.95 -5.37,5.85 -5.32,5.75 -5.26,5.65 -5.2,5.55 -5.15,5.44 -5.09,5.34 -5.03,5.24 -4.98,5.14 -4.92,5.04 -4.87,4.94 -4.81,4.85 -4.75,4.75 -4.7,4.65 -4.64,4.55 -4.58,4.45 -4.53,4.35 -4.47,4.26 -4.42,4.16 -4.36,4.06 -4.3,3.97 -4.25,3.87 -4.19,3.77 -4.13,3.68 -4.08,3.58 -4.02,3.49 -3.97,3.39 -3.91,3.3 -3.85,3.2 -3.8,3.11 -3.74,3.02 -3.68,2.92 -3.63,2.83 -3.57,2.74 -3.52,2.64 -3.46,2.55 -3.4,2.46 -3.35,2.37 -3.29,2.27 -3.23,2.18 -3.18,2.09 -3.12,2 -3.07,1.91 -3.01,1.82 -2.95,1.73 -2.9,1.64 -2.84,1.55 -2.78,1.46 -2.73,1.37 -2.67,1.28 -2.62,1.19 -2.56,1.1 -2.5,1.01 -2.45,0.93 -2.39,0.84 -2.33,0.75 -2.28,0.66 -2.22,0.58 -2.17,0.49 -2.11,0.4 -2.05,0.32 -2,0.23 -1.94,0.14 -1.88,0.06 -1.83,-0.03 -1.77,-0.11 -1.72,-0.2 -1.66,-0.28 -1.6,-0.37 -1.55,-0.45 -1.49,-0.54 -1.43,-0.62 -1.38,-0.71 -1.32,-0.79 -1.27,-0.87 -1.21,-0.96 -1.15,-1.04 -1.1,-1.12 -1.04,-1.2 -0.98,-1.29 -0.93,-1.37 -0.87,-1.45 -0.82,-1.53 -0.76,-1.61 -0.7,-1.69 -0.65,-1.78 -0.59,-1.86 -0.53,-1.94 -0.48,-2.02 -0.42,-2.1 -0.37,-2.18 -0.31,-2.26 -0.25,-2.34 -0.2,-2.42 -0.14,-2.49 -0.08,-2.57 -0.03,-2.65 0.03,-2.73 0.08,-2.81 0.14,-2.89 0.2,-2.96 0.25,-3.04 0.31,-3.12 0.37,-3.2 0.42,-3.27 0.48,-3.35 0.53,-3.43 0.59,-3.5 0.65,-3.58 0.7,-3.66 0.76,-3.73 0.82,-3.81 0.87,-3.88 0.93,-3.96 0.98,-4.03 1.04,-4.11 1.1,-4.18 1.15,-4.25 1.21,-4.33 1.27,-4.4 1.32,-4.48 1.38,-4.55 1.43,-4.62 1.49,-4.7 1.55,-4.77 1.6,-4.84 1.66,-4.91 1.72,-4.99 1.77,-5.06 1.83,-5.13 1.88,-5.2 1.94,-5.27 2,-5.34 2.05,-5.41 2.11,-5.48 2.17,-5.56 2.22,-5.63 2.28,-5.7 2.33,-5.77 2.39,-5.84 2.45,-5.9 2.5,-5.97 2.56,-6.04 2.62,-6.11 2.67,-6.18 2.73,-6.25 2.78,-6.32 2.84,-6.39 2.9,-6.45 2.95,-6.52 3.01,-6.59 3.07,-6.66 3.12,-6.72 3.18,-6.79 3.23,-6.86 3.29,-6.92 3.35,-6.99 3.4,-7.06 3.46,-7.12 3.52,-7.19 3.57,-7.25 3.63,-7.32 3.68,-7.38 3.74,-7.45 3.8,-7.51 3.85,-7.58 3.91,-7.64 3.97,-7.7 4.02,-7.77 4.08,-7.83 4.13,-7.9 4.19,-7.96 4.25,-8.02 4.3,-8.09 4.36,-8.15 4.42,-8.21 4.47,-8.27 4.53,-8.33 4.58,-8.4 4.64,-8.46 4.7,-8.52 4.75,-8.58 4.81,-8.64 4.87,-8.7 4.92,-8.76 4.98,-8.82 5.03,-8.88 5.09,-8.94 5.15,-9 5.2,-9.06 5.26,-9.12 5.32,-9.18 5.37,-9.24 5.43,-9.3 5.48,-9.36 5.54,-9.42 5.6,-9.48 5.65,-9.53 5.71,-9.59 5.77,-9.65 5.82,-9.71 5.88,-9.77 5.93,-9.82 5.99,-9.88 6.05,-9.94 6.1,-9.99 6.16,-10.05 6.22,-10.11 6.27,-10.16 6.33,-10.22 6.38,-10.27 6.44,-10.33 6.5,-10.38 6.55,-10.44 6.61,-10.49 6.67,-10.55 6.72,-10.6 6.78,-10.66 6.83,-10.71 6.89,-10.76 6.95,-10.82 7,-10.87 7.06,-10.92 7.12,-10.98 7.17,-11.03 7.23,-11.08 7.28,-11.13 7.34,-11.19 7.4,-11.24 7.45,-11.29 7.51,-11.34 7.57,-11.39 7.62,-11.45 7.68,-11.5 7.73,-11.55 7.79,-11.6 7.85,-11.65 7.9,-11.7 7.96,-11.75 8.02,-11.8 8.07,-11.85 8.13,-11.9 8.18,-11.95 8.24,-12 8.3,-12.04 8.35,-12.09 8.41,-12.14 8.47,-12.19 8.52,-12.24 8.58,-12.29 8.63,-12.33 8.69,-12.38 8.75,-12.43 8.8,-12.48 8.86,-12.52 8.91,-12.57 8.97,-12.62 9.03,-12.66 9.08,-12.71 9.14,-12.76 9.2,-12.8 9.25,-12.85 9.31,-12.89 9.36,-12.94 9.42,-12.98 9.48,-13.03 9.53,-13.07 9.59,-13.12 9.65,-13.16 9.7,-13.2 9.76,-13.25 9.81,-13.29 9.87,-13.34 9.93,-13.38 9.98,-13.42 10.04,-13.46 10.1,-13.51 10.15,-13.55 10.21,-13.59 10.26,-13.63 10.32,-13.68 10.38,-13.72 10.43,-13.76 10.49,-13.8 10.55,-13.84 10.6,-13.88 10.66,-13.92 10.71,-13.96 10.77,-14 10.83,-14.04 10.88,-14.08 10.94,-14.12 11,-14.16 11.05,-14.2 11.11,-14.24 11.16,-14.28 11.22,-14.32 11.28,-14.36 11.33,-14.4 11.39,-14.44 11.45,-14.47 11.5,-14.51 11.56,-14.55 11.61,-14.59 11.67,-14.62 11.73,-14.66 11.78,-14.7 11.84,-14.73 11.9,-14.77 11.95,-14.81 12.01,-14.84 12.06,-14.88 12.12,-14.91 12.18,-14.95 12.23,-14.99 12.29,-15.02 12.35,-15.06 12.4,-15.09 12.46,-15.13 12.51,-15.16 12.57,-15.19 12.63,-15.23 12.68,-15.26 12.74,-15.29 12.8,-15.33 12.85,-15.36 12.91,-15.39 12.96,-15.43 13.02,-15.46 13.08,-15.49 13.13,-15.52 13.19,-15.56 13.25,-15.59 13.3,-15.62 13.36,-15.65 13.41,-15.68 13.47,-15.71 13.53,-15.74 13.58,-15.78 13.64,-15.81 13.7,-15.84 13.75,-15.87 13.81,-15.9 13.86,-15.93 13.92,-15.96 13.98,-15.98 14.03,-16.01 14.09,-16.04 14.15,-16.07 14.2,-16.1 14.26,-16.13 14.31,-16.16 14.37,-16.18 14.43,-16.21 14.48,-16.24 14.54,-16.27 14.6,-16.29 14.65,-16.32 14.71,-16.35 14.76,-16.37 14.82,-16.4 14.88,-16.43 14.93,-16.45 14.99,-16.48 15.05,-16.51 15.1,-16.53 15.16,-16.56 15.21,-16.58 15.27,-16.61 15.33,-16.63 15.38,-16.65 15.44,-16.68 15.5,-16.7 15.55,-16.73 15.61,-16.75 15.66,-16.77 15.72,-16.8 15.78,-16.82 15.83,-16.84 15.89,-16.87 15.95,-16.89 16,-16.91 16.06,-16.93 16.11,-16.96 16.17,-16.98 16.23,-17 16.28,-17.02 16.34,-17.04 16.4,-17.06 16.45,-17.08 16.51,-17.1 16.56,-17.12 16.62,-17.15 16.68,-17.17 16.73,-17.18 16.79,-17.2 16.85,-17.22 16.9,-17.24 16.96,-17.26 17.01,-17.28 17.07,-17.3 17.13,-17.32 17.18,-17.34 17.24,-17.36 17.3,-17.37 17.35,-17.39 17.41,-17.41 17.46,-17.43 17.52,-17.44 17.58,-17.46 17.63,-17.48 17.69,-17.49 17.75,-17.51 17.8,-17.53 17.86,-17.54 17.91,-17.56 17.97,-17.57 18.03,-17.59 18.08,-17.6 18.14,-17.62 18.2,-17.63 18.25,-17.65 18.31,-17.66 18.36,-17.68 18.42,-17.69 18.48,-17.71 18.53,-17.72 18.59,-17.73 18.65,-17.75 18.7,-17.76 18.76,-17.77 18.81,-17.78 18.87,-17.8 18.93,-17.81 18.98,-17.82 19.04,-17.83 19.1,-17.85 19.15,-17.86 19.21,-17.87 19.26,-17.88 19.32,-17.89 19.38,-17.9 19.43,-17.91 19.49,-17.92 19.55,-17.93 19.6,-17.94 19.66,-17.95 19.71,-17.96 19.77,-17.97 19.83,-17.98 19.88,-17.99 19.94,-18 20,-18.01 20.05,-18.02 20.11,-18.02 20.16,-18.03 20.22,-18.04 20.28,-18.05 20.33,-18.06 20.39,-18.06 20.45,-18.07 20.5,-18.08 20.56,-18.08 20.61,-18.09 20.67,-18.1 20.73,-18.1 20.78,-18.11 20.84,-18.11 20.9,-18.12 20.95,-18.13 21.01,-18.13 21.06,-18.14 21.12,-18.14 21.18,-18.15 21.23,-18.15 21.29,-18.15 21.35,-18.16 21.4,-18.16 21.46,-18.17 21.51,-18.17 21.57,-18.17 21.63,-18.18 21.68,-18.18 21.74,-18.18 21.8,-18.18 21.85,-18.19 21.91,-18.19 21.96,-18.19 22.02,-18.19 22.08,-18.19 22.13,-18.19 22.19,-18.2 22.25,-18.2 22.3,-18.2 22.36,-18.2 22.41,-18.2 22.47,-18.2 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ylabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-134\">\n", + " <g transform=\"translate(20.98,54.91)\" id=\"img-68edbf8e-135\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">1.000</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(20.98,38.94)\" id=\"img-68edbf8e-136\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">1.005</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(20.98,22.97)\" id=\"img-68edbf8e-137\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">1.010</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(20.98,7)\" id=\"img-68edbf8e-138\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">1.015</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-139\">\n", + " <g transform=\"translate(8.81,28.96)\" id=\"img-68edbf8e-140\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\" transform=\"rotate(-90,0, 2)\">Altitude</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + "</g>\n", + "<defs>\n", + " <clipPath id=\"img-68edbf8e-4\">\n", + " <path d=\"M92.48,81.2 L147.4,81.2 147.4,133.11 92.48,133.11 \" />\n", + " </clipPath>\n", + " <clipPath id=\"img-68edbf8e-41\">\n", + " <path d=\"M20.3,81.2 L71.2,81.2 71.2,133.11 20.3,133.11 \" />\n", + " </clipPath>\n", + " <clipPath id=\"img-68edbf8e-76\">\n", + " <path d=\"M94.83,5 L147.4,5 147.4,56.91 94.83,56.91 \" />\n", + " </clipPath>\n", + " <clipPath id=\"img-68edbf8e-115\">\n", + " <path d=\"M21.98,5 L71.2,5 71.2,56.91 21.98,56.91 \" />\n", + " </clipPath>\n", + "</defs>\n", + "</svg>\n" + ], + "text/html": [ + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", + "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", + " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", + " xmlns:gadfly=\"http://www.gadflyjl.org/ns\"\n", + " version=\"1.2\"\n", + " width=\"152.4mm\" height=\"152.4mm\" viewBox=\"0 0 152.4 152.4\"\n", + " stroke=\"none\"\n", + " fill=\"#000000\"\n", + " stroke-width=\"0.3\"\n", + " font-size=\"3.88\"\n", + ">\n", + "<defs>\n", + " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", + " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", + " </marker>\n", + "</defs>\n", + "<g class=\"plotroot xscalable yscalable\" id=\"img-68edbf8e-1\">\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-2\">\n", + " <g transform=\"translate(119.94,140.79)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">Time (s)</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xlabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-3\">\n", + " <g transform=\"translate(94.48,134.11)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.00</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(107.21,134.11)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.05</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(119.94,134.11)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.10</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(132.67,134.11)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.15</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(145.4,134.11)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.20</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g clip-path=\"url(#img-68edbf8e-4)\">\n", + " <g id=\"img-68edbf8e-5\">\n", + " <g pointer-events=\"visible\" stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#000000\" stroke-opacity=\"0.000\" class=\"guide background\" id=\"img-68edbf8e-6\">\n", + " <g transform=\"translate(119.94,107.16)\" id=\"img-68edbf8e-7\">\n", + " <path d=\"M-27.46,-25.96 L27.46,-25.96 27.46,25.96 -27.46,25.96 z\" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ygridlines xfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-8\">\n", + " <g transform=\"translate(119.94,131.11)\" id=\"img-68edbf8e-9\">\n", + " <path fill=\"none\" d=\"M-27.46,0 L27.46,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(119.94,119.14)\" id=\"img-68edbf8e-10\">\n", + " <path fill=\"none\" d=\"M-27.46,0 L27.46,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(119.94,107.16)\" id=\"img-68edbf8e-11\">\n", + " <path fill=\"none\" d=\"M-27.46,0 L27.46,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(119.94,95.18)\" id=\"img-68edbf8e-12\">\n", + " <path fill=\"none\" d=\"M-27.46,0 L27.46,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(119.94,83.2)\" id=\"img-68edbf8e-13\">\n", + " <path fill=\"none\" d=\"M-27.46,0 L27.46,0 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xgridlines yfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-14\">\n", + " <g transform=\"translate(94.48,107.16)\" id=\"img-68edbf8e-15\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(107.21,107.16)\" id=\"img-68edbf8e-16\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(119.94,107.16)\" id=\"img-68edbf8e-17\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(132.67,107.16)\" id=\"img-68edbf8e-18\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(145.4,107.16)\" id=\"img-68edbf8e-19\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"plotpanel\" id=\"img-68edbf8e-20\">\n", + " <metadata>\n", + " <boundingbox value=\"92.48499999999999mm 81.19999999999999mm 54.91499999999999mm 51.91499999999999mm\"/>\n", + " <unitbox value=\"-0.007856230973190614 4.166962329124491 0.21571246194638125 -4.333924658248983\"/>\n", + " </metadata>\n", + " <g stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" class=\"geometry\" id=\"img-68edbf8e-21\">\n", + " <g class=\"color_LCHab{Float32}(70.0f0,60.0f0,240.0f0)\" stroke-dasharray=\"none\" stroke=\"#00BFFF\" id=\"img-68edbf8e-22\">\n", + " <g transform=\"translate(119.85,119.05)\" id=\"img-68edbf8e-23\">\n", + " <path fill=\"none\" d=\"M-25.3,-29.86 L-25.24,-29.86 -25.17,-29.86 -25.11,-29.86 -25.05,-29.86 -24.98,-29.86 -24.92,-29.86 -24.86,-29.86 -24.79,-29.86 -24.73,-29.86 -24.67,-29.86 -24.6,-29.86 -24.54,-29.86 -24.48,-29.86 -24.41,-29.86 -24.35,-29.86 -24.29,-29.86 -24.22,-29.86 -24.16,-29.86 -24.1,-29.86 -24.03,-29.86 -23.97,-29.86 -23.91,-29.86 -23.84,-29.86 -23.78,-29.86 -23.72,-29.86 -23.65,-29.86 -23.59,-29.86 -23.53,-29.86 -23.46,-29.86 -23.4,-29.86 -23.34,-29.86 -23.27,-29.85 -23.21,-29.85 -23.15,-29.85 -23.08,-29.85 -23.02,-29.85 -22.96,-29.85 -22.89,-29.85 -22.83,-29.85 -22.77,-29.85 -22.7,-29.85 -22.64,-29.85 -22.58,-29.85 -22.51,-29.85 -22.45,-29.85 -22.39,-29.85 -22.32,-29.85 -22.26,-29.85 -22.2,-29.85 -22.13,-29.85 -22.07,-29.85 -22.01,-29.85 -21.94,-29.85 -21.88,-29.85 -21.82,-29.85 -21.75,-29.84 -21.69,-29.84 -21.63,-29.84 -21.56,-29.84 -21.5,-29.84 -21.44,-29.84 -21.37,-29.84 -21.31,-29.84 -21.25,-29.84 -21.18,-29.83 -21.12,-29.83 -21.06,-29.83 -20.99,-29.83 -20.93,-29.82 -20.87,-29.82 -20.8,-29.82 -20.74,-29.81 -20.68,-29.81 -20.61,-29.8 -20.55,-29.8 -20.49,-29.79 -20.42,-29.78 -20.36,-29.77 -20.3,-29.76 -20.23,-29.75 -20.17,-29.73 -20.11,-29.71 -20.04,-29.69 -19.98,-29.66 -19.92,-29.61 -19.85,-29.56 -19.79,-29.48 -19.73,-29.37 -19.66,-29.22 -19.6,-28.98 -19.54,-28.59 -19.47,-27.94 -19.41,-26.77 -19.35,-24.68 -19.28,-21.39 -19.22,-17.75 -19.16,-15.32 -19.09,-14.21 -19.03,-13.79 -18.97,-13.64 -18.9,-13.59 -18.84,-13.58 -18.78,-13.57 -18.71,-13.58 -18.65,-13.58 -18.59,-13.59 -18.52,-13.59 -18.46,-13.6 -18.4,-13.61 -18.33,-13.61 -18.27,-13.62 -18.21,-13.63 -18.14,-13.63 -18.08,-13.64 -18.02,-13.65 -17.95,-13.66 -17.89,-13.67 -17.83,-13.68 -17.76,-13.69 -17.7,-13.69 -17.64,-13.7 -17.57,-13.71 -17.51,-13.72 -17.45,-13.74 -17.38,-13.75 -17.32,-13.76 -17.26,-13.77 -17.19,-13.78 -17.13,-13.79 -17.07,-13.81 -17,-13.82 -16.94,-13.83 -16.88,-13.84 -16.81,-13.86 -16.75,-13.87 -16.69,-13.89 -16.62,-13.9 -16.56,-13.92 -16.5,-13.93 -16.43,-13.95 -16.37,-13.96 -16.31,-13.98 -16.24,-14 -16.18,-14.01 -16.12,-14.03 -16.05,-14.05 -15.99,-14.07 -15.93,-14.09 -15.86,-14.11 -15.8,-14.12 -15.74,-14.14 -15.67,-14.16 -15.61,-14.18 -15.55,-14.21 -15.48,-14.23 -15.42,-14.25 -15.36,-14.27 -15.29,-14.29 -15.23,-14.32 -15.17,-14.34 -15.1,-14.36 -15.04,-14.39 -14.98,-14.41 -14.91,-14.44 -14.85,-14.46 -14.79,-14.49 -14.72,-14.52 -14.66,-14.54 -14.6,-14.57 -14.53,-14.6 -14.47,-14.63 -14.41,-14.66 -14.34,-14.69 -14.28,-14.72 -14.22,-14.75 -14.15,-14.78 -14.09,-14.81 -14.03,-14.84 -13.96,-14.88 -13.9,-14.91 -13.84,-14.94 -13.77,-14.98 -13.71,-15.01 -13.65,-15.05 -13.58,-15.09 -13.52,-15.12 -13.46,-15.16 -13.39,-15.2 -13.33,-15.24 -13.27,-15.27 -13.2,-15.31 -13.14,-15.36 -13.08,-15.4 -13.01,-15.44 -12.95,-15.48 -12.89,-15.52 -12.82,-15.57 -12.76,-15.61 -12.7,-15.66 -12.63,-15.7 -12.57,-15.75 -12.51,-15.8 -12.44,-15.85 -12.38,-15.89 -12.32,-15.94 -12.25,-15.99 -12.19,-16.05 -12.13,-16.1 -12.06,-16.15 -12,-16.2 -11.94,-16.26 -11.87,-16.31 -11.81,-16.37 -11.75,-16.43 -11.68,-16.48 -11.62,-16.54 -11.56,-16.6 -11.49,-16.66 -11.43,-16.72 -11.37,-16.79 -11.3,-16.85 -11.24,-16.91 -11.18,-16.98 -11.11,-17.04 -11.05,-17.11 -10.99,-17.18 -10.92,-17.25 -10.86,-17.32 -10.8,-17.39 -10.73,-17.46 -10.67,-17.54 -10.61,-17.61 -10.54,-17.69 -10.48,-17.76 -10.42,-17.84 -10.35,-17.92 -10.29,-18 -10.23,-18.08 -10.16,-18.17 -10.1,-18.25 -10.04,-18.33 -9.97,-18.42 -9.91,-18.51 -9.85,-18.6 -9.78,-18.69 -9.72,-18.78 -9.66,-18.87 -9.59,-18.97 -9.53,-19.06 -9.47,-19.16 -9.4,-19.26 -9.34,-19.36 -9.28,-19.46 -9.21,-19.57 -9.15,-19.67 -9.09,-19.78 -9.02,-19.89 -8.96,-20 -8.9,-20.11 -8.83,-20.22 -8.77,-20.34 -8.71,-20.45 -8.64,-20.57 -8.58,-20.69 -8.52,-20.82 -8.45,-20.94 -8.39,-21.06 -8.33,-21.19 -8.26,-21.32 -8.2,-21.45 -8.14,-21.58 -8.07,-21.7 -8.01,-21.83 -7.95,-21.96 -7.88,-22.09 -7.82,-22.21 -7.76,-22.33 -7.69,-22.43 -7.63,-22.53 -7.57,-22.62 -7.5,-22.69 -7.44,-22.73 -7.38,-22.74 -7.31,-22.71 -7.25,-22.61 -7.19,-22.43 -7.12,-22.13 -7.06,-21.63 -7,-20.78 -6.93,-19.29 -6.87,-16.33 -6.81,-9.72 -6.74,0.09 -6.68,5.85 -6.62,8.49 -6.55,9.79 -6.49,10.51 -6.43,10.94 -6.36,11.22 -6.3,11.4 -6.24,11.53 -6.17,11.63 -6.11,11.7 -6.05,11.76 -5.98,11.8 -5.92,11.84 -5.86,11.86 -5.79,11.89 -5.73,11.91 -5.67,11.92 -5.6,11.94 -5.54,11.95 -5.48,11.96 -5.41,11.97 -5.35,11.98 -5.29,11.98 -5.22,11.99 -5.16,11.99 -5.1,12 -5.03,12 -4.97,12.01 -4.91,12.01 -4.84,12.01 -4.78,12.02 -4.72,12.02 -4.65,12.02 -4.59,12.02 -4.53,12.03 -4.46,12.03 -4.4,12.03 -4.34,12.03 -4.27,12.03 -4.21,12.03 -4.15,12.04 -4.08,12.04 -4.02,12.04 -3.96,12.04 -3.89,12.04 -3.83,12.04 -3.77,12.04 -3.7,12.04 -3.64,12.04 -3.58,12.04 -3.51,12.04 -3.45,12.04 -3.39,12.05 -3.32,12.05 -3.26,12.05 -3.2,12.05 -3.13,12.05 -3.07,12.05 -3.01,12.05 -2.94,12.05 -2.88,12.05 -2.82,12.05 -2.75,12.05 -2.69,12.05 -2.63,12.05 -2.56,12.05 -2.5,12.05 -2.44,12.05 -2.37,12.05 -2.31,12.05 -2.25,12.05 -2.18,12.05 -2.12,12.05 -2.06,12.05 -1.99,12.05 -1.93,12.05 -1.87,12.05 -1.8,12.05 -1.74,12.05 -1.68,12.05 -1.61,12.06 -1.55,12.06 -1.49,12.06 -1.42,12.06 -1.36,12.06 -1.3,12.06 -1.23,12.06 -1.17,12.06 -1.11,12.06 -1.04,12.06 -0.98,12.06 -0.92,12.06 -0.85,12.06 -0.79,12.06 -0.73,12.06 -0.66,12.06 -0.6,12.06 -0.54,12.06 -0.47,12.06 -0.41,12.06 -0.35,12.06 -0.28,12.06 -0.22,12.06 -0.16,12.06 -0.09,12.06 -0.03,12.06 0.03,12.06 0.09,12.06 0.16,12.06 0.22,12.06 0.28,12.06 0.35,12.06 0.41,12.06 0.47,12.06 0.54,12.06 0.6,12.06 0.66,12.06 0.73,12.06 0.79,12.06 0.85,12.06 0.92,12.06 0.98,12.06 1.04,12.06 1.11,12.06 1.17,12.06 1.23,12.06 1.3,12.06 1.36,12.06 1.42,12.06 1.49,12.06 1.55,12.06 1.61,12.06 1.68,12.06 1.74,12.06 1.8,12.06 1.87,12.06 1.93,12.06 1.99,12.06 2.06,12.06 2.12,12.06 2.18,12.06 2.25,12.06 2.31,12.06 2.37,12.06 2.44,12.06 2.5,12.06 2.56,12.06 2.63,12.06 2.69,12.06 2.75,12.06 2.82,12.06 2.88,12.06 2.94,12.06 3.01,12.06 3.07,12.06 3.13,12.06 3.2,12.06 3.26,12.06 3.32,12.06 3.39,12.06 3.45,12.06 3.51,12.06 3.58,12.06 3.64,12.06 3.7,12.06 3.77,12.06 3.83,12.06 3.89,12.06 3.96,12.06 4.02,12.06 4.08,12.06 4.15,12.06 4.21,12.06 4.27,12.06 4.34,12.06 4.4,12.06 4.46,12.06 4.53,12.06 4.59,12.06 4.65,12.06 4.72,12.06 4.78,12.06 4.84,12.06 4.91,12.06 4.97,12.06 5.03,12.06 5.1,12.06 5.16,12.06 5.22,12.06 5.29,12.06 5.35,12.06 5.41,12.06 5.48,12.06 5.54,12.06 5.6,12.06 5.67,12.06 5.73,12.06 5.79,12.06 5.86,12.06 5.92,12.06 5.98,12.06 6.05,12.06 6.11,12.06 6.17,12.06 6.24,12.06 6.3,12.06 6.36,12.06 6.43,12.06 6.49,12.06 6.55,12.06 6.62,12.06 6.68,12.06 6.74,12.06 6.81,12.06 6.87,12.06 6.93,12.06 7,12.06 7.06,12.06 7.12,12.06 7.19,12.06 7.25,12.06 7.31,12.06 7.38,12.06 7.44,12.06 7.5,12.06 7.57,12.06 7.63,12.06 7.69,12.06 7.76,12.06 7.82,12.06 7.88,12.06 7.95,12.06 8.01,12.06 8.07,12.06 8.14,12.06 8.2,12.06 8.26,12.06 8.33,12.06 8.39,12.06 8.45,12.06 8.52,12.06 8.58,12.06 8.64,12.06 8.71,12.06 8.77,12.06 8.83,12.06 8.9,12.06 8.96,12.06 9.02,12.06 9.09,12.06 9.15,12.06 9.21,12.06 9.28,12.06 9.34,12.06 9.4,12.06 9.47,12.06 9.53,12.06 9.59,12.06 9.66,12.06 9.72,12.06 9.78,12.06 9.85,12.06 9.91,12.06 9.97,12.06 10.04,12.06 10.1,12.06 10.16,12.06 10.23,12.06 10.29,12.06 10.35,12.06 10.42,12.06 10.48,12.06 10.54,12.06 10.61,12.06 10.67,12.06 10.73,12.06 10.8,12.06 10.86,12.06 10.92,12.06 10.99,12.06 11.05,12.06 11.11,12.06 11.18,12.06 11.24,12.06 11.3,12.06 11.37,12.06 11.43,12.06 11.49,12.06 11.56,12.06 11.62,12.06 11.68,12.06 11.75,12.06 11.81,12.06 11.87,12.06 11.94,12.06 12,12.06 12.06,12.06 12.13,12.06 12.19,12.06 12.25,12.06 12.32,12.06 12.38,12.06 12.44,12.06 12.51,12.06 12.57,12.06 12.63,12.06 12.7,12.06 12.76,12.06 12.82,12.06 12.89,12.06 12.95,12.06 13.01,12.06 13.08,12.06 13.14,12.06 13.2,12.06 13.27,12.06 13.33,12.06 13.39,12.06 13.46,12.06 13.52,12.06 13.58,12.06 13.65,12.06 13.71,12.06 13.77,12.06 13.84,12.06 13.9,12.06 13.96,12.06 14.03,12.06 14.09,12.06 14.15,12.06 14.22,12.06 14.28,12.06 14.34,12.06 14.41,12.06 14.47,12.06 14.53,12.06 14.6,12.06 14.66,12.06 14.72,12.06 14.79,12.06 14.85,12.06 14.91,12.06 14.98,12.06 15.04,12.06 15.1,12.06 15.17,12.06 15.23,12.06 15.29,12.06 15.36,12.06 15.42,12.06 15.48,12.06 15.55,12.06 15.61,12.06 15.67,12.06 15.74,12.06 15.8,12.06 15.86,12.06 15.93,12.06 15.99,12.06 16.05,12.06 16.12,12.06 16.18,12.06 16.24,12.06 16.31,12.06 16.37,12.06 16.43,12.06 16.5,12.06 16.56,12.06 16.62,12.06 16.69,12.06 16.75,12.06 16.81,12.06 16.88,12.06 16.94,12.06 17,12.06 17.07,12.06 17.13,12.06 17.19,12.06 17.26,12.06 17.32,12.06 17.38,12.06 17.45,12.06 17.51,12.06 17.57,12.06 17.64,12.06 17.7,12.06 17.76,12.06 17.83,12.06 17.89,12.06 17.95,12.06 18.02,12.06 18.08,12.06 18.14,12.06 18.21,12.06 18.27,12.06 18.33,12.06 18.4,12.06 18.46,12.06 18.52,12.06 18.59,12.06 18.65,12.06 18.71,12.06 18.78,12.06 18.84,12.06 18.9,12.06 18.97,12.06 19.03,12.06 19.09,12.06 19.16,12.06 19.22,12.06 19.28,12.06 19.35,12.06 19.41,12.06 19.47,12.06 19.54,12.06 19.6,12.06 19.66,12.06 19.73,12.06 19.79,12.06 19.85,12.06 19.92,12.06 19.98,12.06 20.04,12.06 20.11,12.06 20.17,12.06 20.23,12.06 20.3,12.06 20.36,12.06 20.42,12.06 20.49,12.06 20.55,12.06 20.61,12.06 20.68,12.06 20.74,12.06 20.8,12.06 20.87,12.06 20.93,12.06 20.99,12.06 21.06,12.06 21.12,12.06 21.18,12.06 21.25,12.06 21.31,12.06 21.37,12.06 21.44,12.06 21.5,12.06 21.56,12.06 21.63,12.06 21.69,12.06 21.75,12.06 21.82,12.06 21.88,12.06 21.94,12.06 22.01,12.06 22.07,12.06 22.13,12.06 22.2,12.06 22.26,12.06 22.32,12.06 22.39,12.06 22.45,12.06 22.51,12.06 22.58,12.06 22.64,12.06 22.7,12.06 22.77,12.06 22.83,12.06 22.89,12.06 22.96,12.06 23.02,12.06 23.08,12.06 23.15,12.06 23.21,12.06 23.27,12.06 23.34,12.06 23.4,12.06 23.46,12.06 23.53,12.06 23.59,12.06 23.65,12.06 23.72,12.06 23.78,12.06 23.84,12.06 23.91,12.06 23.97,12.06 24.03,12.06 24.1,12.06 24.16,12.06 24.22,12.06 24.29,12.06 24.35,12.06 24.41,12.06 24.48,12.06 24.54,12.06 24.6,12.06 24.67,12.06 24.73,12.06 24.79,12.06 24.86,12.06 24.92,12.06 24.98,12.06 25.05,12.06 25.11,12.06 25.17,12.06 25.24,12.05 25.3,12.04 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ylabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-24\">\n", + " <g transform=\"translate(91.48,131.11)\" id=\"img-68edbf8e-25\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(91.48,119.14)\" id=\"img-68edbf8e-26\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">1</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(91.48,107.16)\" id=\"img-68edbf8e-27\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">2</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(91.48,95.18)\" id=\"img-68edbf8e-28\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">3</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(91.48,83.2)\" id=\"img-68edbf8e-29\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">4</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-30\">\n", + " <g transform=\"translate(85.01,105.16)\" id=\"img-68edbf8e-31\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\" transform=\"rotate(-90,0, 2)\">Thrust</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + "</g>\n", + "<g class=\"plotroot xscalable yscalable\" id=\"img-68edbf8e-32\">\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-33\">\n", + " <g transform=\"translate(45.75,140.79)\" id=\"img-68edbf8e-34\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">Time (s)</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xlabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-35\">\n", + " <g transform=\"translate(22.3,134.11)\" id=\"img-68edbf8e-36\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.00</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(34.03,134.11)\" id=\"img-68edbf8e-37\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.05</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(45.75,134.11)\" id=\"img-68edbf8e-38\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.10</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(57.48,134.11)\" id=\"img-68edbf8e-39\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.15</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(69.2,134.11)\" id=\"img-68edbf8e-40\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.20</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g clip-path=\"url(#img-68edbf8e-41)\">\n", + " <g id=\"img-68edbf8e-42\">\n", + " <g pointer-events=\"visible\" stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#000000\" stroke-opacity=\"0.000\" class=\"guide background\" id=\"img-68edbf8e-43\">\n", + " <g transform=\"translate(45.75,107.16)\" id=\"img-68edbf8e-44\">\n", + " <path d=\"M-25.45,-25.96 L25.45,-25.96 25.45,25.96 -25.45,25.96 z\" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ygridlines xfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-45\">\n", + " <g transform=\"translate(45.75,131.11)\" id=\"img-68edbf8e-46\">\n", + " <path fill=\"none\" d=\"M-25.45,0 L25.45,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(45.75,115.14)\" id=\"img-68edbf8e-47\">\n", + " <path fill=\"none\" d=\"M-25.45,0 L25.45,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(45.75,99.17)\" id=\"img-68edbf8e-48\">\n", + " <path fill=\"none\" d=\"M-25.45,0 L25.45,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(45.75,83.2)\" id=\"img-68edbf8e-49\">\n", + " <path fill=\"none\" d=\"M-25.45,0 L25.45,0 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xgridlines yfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-50\">\n", + " <g transform=\"translate(22.3,107.16)\" id=\"img-68edbf8e-51\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(34.03,107.16)\" id=\"img-68edbf8e-52\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(45.75,107.16)\" id=\"img-68edbf8e-53\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(57.48,107.16)\" id=\"img-68edbf8e-54\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(69.2,107.16)\" id=\"img-68edbf8e-55\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"plotpanel\" id=\"img-68edbf8e-56\">\n", + " <metadata>\n", + " <boundingbox value=\"20.305mm 81.19999999999999mm 50.89499999999999mm 51.91499999999999mm\"/>\n", + " <unitbox value=\"-0.008529693997227852 0.15626108734216845 0.2170593879944557 -0.16252217468433688\"/>\n", + " </metadata>\n", + " <g stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" class=\"geometry\" id=\"img-68edbf8e-57\">\n", + " <g class=\"color_LCHab{Float32}(70.0f0,60.0f0,240.0f0)\" stroke-dasharray=\"none\" stroke=\"#00BFFF\" id=\"img-68edbf8e-58\">\n", + " <g transform=\"translate(45.67,110.51)\" id=\"img-68edbf8e-59\">\n", + " <path fill=\"none\" d=\"M-23.3,20.6 L-23.24,20.4 -23.19,20.2 -23.13,20 -23.07,19.8 -23.01,19.6 -22.95,19.4 -22.89,19.2 -22.84,19 -22.78,18.8 -22.72,18.59 -22.66,18.39 -22.6,18.19 -22.54,17.98 -22.49,17.78 -22.43,17.58 -22.37,17.37 -22.31,17.17 -22.25,16.96 -22.19,16.76 -22.14,16.56 -22.08,16.35 -22.02,16.15 -21.96,15.94 -21.9,15.74 -21.84,15.53 -21.79,15.33 -21.73,15.12 -21.67,14.92 -21.61,14.71 -21.55,14.51 -21.49,14.3 -21.44,14.1 -21.38,13.89 -21.32,13.69 -21.26,13.48 -21.2,13.28 -21.14,13.08 -21.09,12.87 -21.03,12.67 -20.97,12.46 -20.91,12.26 -20.85,12.06 -20.79,11.86 -20.74,11.65 -20.68,11.45 -20.62,11.25 -20.56,11.05 -20.5,10.85 -20.44,10.65 -20.39,10.45 -20.33,10.24 -20.27,10.05 -20.21,9.85 -20.15,9.65 -20.09,9.45 -20.04,9.25 -19.98,9.05 -19.92,8.85 -19.86,8.66 -19.8,8.46 -19.74,8.26 -19.69,8.07 -19.63,7.87 -19.57,7.68 -19.51,7.48 -19.45,7.29 -19.39,7.09 -19.34,6.9 -19.28,6.71 -19.22,6.52 -19.16,6.32 -19.1,6.13 -19.04,5.94 -18.99,5.75 -18.93,5.56 -18.87,5.37 -18.81,5.18 -18.75,5 -18.69,4.81 -18.64,4.62 -18.58,4.43 -18.52,4.25 -18.46,4.06 -18.4,3.88 -18.34,3.69 -18.29,3.51 -18.23,3.32 -18.17,3.14 -18.11,2.96 -18.05,2.78 -17.99,2.61 -17.94,2.44 -17.88,2.27 -17.82,2.12 -17.76,1.99 -17.7,1.89 -17.64,1.82 -17.59,1.75 -17.53,1.69 -17.47,1.64 -17.41,1.58 -17.35,1.53 -17.29,1.47 -17.24,1.42 -17.18,1.36 -17.12,1.3 -17.06,1.25 -17,1.19 -16.94,1.13 -16.89,1.07 -16.83,1.02 -16.77,0.96 -16.71,0.9 -16.65,0.84 -16.59,0.78 -16.54,0.72 -16.48,0.66 -16.42,0.6 -16.36,0.54 -16.3,0.48 -16.24,0.41 -16.19,0.35 -16.13,0.29 -16.07,0.23 -16.01,0.16 -15.95,0.1 -15.89,0.03 -15.84,-0.03 -15.78,-0.1 -15.72,-0.16 -15.66,-0.23 -15.6,-0.29 -15.54,-0.36 -15.49,-0.43 -15.43,-0.5 -15.37,-0.56 -15.31,-0.63 -15.25,-0.7 -15.19,-0.77 -15.14,-0.84 -15.08,-0.91 -15.02,-0.98 -14.96,-1.05 -14.9,-1.13 -14.84,-1.2 -14.79,-1.27 -14.73,-1.35 -14.67,-1.42 -14.61,-1.49 -14.55,-1.57 -14.49,-1.64 -14.44,-1.72 -14.38,-1.8 -14.32,-1.87 -14.26,-1.95 -14.2,-2.03 -14.14,-2.11 -14.09,-2.19 -14.03,-2.27 -13.97,-2.35 -13.91,-2.43 -13.85,-2.51 -13.79,-2.59 -13.74,-2.67 -13.68,-2.76 -13.62,-2.84 -13.56,-2.93 -13.5,-3.01 -13.44,-3.1 -13.39,-3.18 -13.33,-3.27 -13.27,-3.36 -13.21,-3.44 -13.15,-3.53 -13.09,-3.62 -13.04,-3.71 -12.98,-3.8 -12.92,-3.9 -12.86,-3.99 -12.8,-4.08 -12.74,-4.17 -12.69,-4.27 -12.63,-4.36 -12.57,-4.46 -12.51,-4.56 -12.45,-4.65 -12.39,-4.75 -12.34,-4.85 -12.28,-4.95 -12.22,-5.05 -12.16,-5.15 -12.1,-5.25 -12.04,-5.36 -11.99,-5.46 -11.93,-5.56 -11.87,-5.67 -11.81,-5.77 -11.75,-5.88 -11.69,-5.99 -11.64,-6.1 -11.58,-6.21 -11.52,-6.32 -11.46,-6.43 -11.4,-6.54 -11.34,-6.65 -11.29,-6.77 -11.23,-6.88 -11.17,-7 -11.11,-7.12 -11.05,-7.23 -10.99,-7.35 -10.94,-7.47 -10.88,-7.59 -10.82,-7.72 -10.76,-7.84 -10.7,-7.96 -10.64,-8.09 -10.59,-8.21 -10.53,-8.34 -10.47,-8.47 -10.41,-8.6 -10.35,-8.73 -10.29,-8.86 -10.24,-8.99 -10.18,-9.13 -10.12,-9.26 -10.06,-9.4 -10,-9.54 -9.94,-9.68 -9.89,-9.82 -9.83,-9.96 -9.77,-10.1 -9.71,-10.25 -9.65,-10.39 -9.59,-10.54 -9.54,-10.69 -9.48,-10.84 -9.42,-10.99 -9.36,-11.14 -9.3,-11.29 -9.24,-11.45 -9.19,-11.6 -9.13,-11.76 -9.07,-11.92 -9.01,-12.08 -8.95,-12.25 -8.89,-12.41 -8.84,-12.58 -8.78,-12.75 -8.72,-12.91 -8.66,-13.09 -8.6,-13.26 -8.54,-13.43 -8.49,-13.61 -8.43,-13.79 -8.37,-13.97 -8.31,-14.15 -8.25,-14.33 -8.19,-14.52 -8.14,-14.7 -8.08,-14.89 -8.02,-15.08 -7.96,-15.28 -7.9,-15.47 -7.85,-15.67 -7.79,-15.87 -7.73,-16.07 -7.67,-16.27 -7.61,-16.48 -7.55,-16.69 -7.5,-16.9 -7.44,-17.11 -7.38,-17.32 -7.32,-17.54 -7.26,-17.76 -7.2,-17.98 -7.15,-18.2 -7.09,-18.43 -7.03,-18.65 -6.97,-18.88 -6.91,-19.11 -6.85,-19.35 -6.8,-19.58 -6.74,-19.82 -6.68,-20.05 -6.62,-20.29 -6.56,-20.52 -6.5,-20.75 -6.45,-20.97 -6.39,-21.18 -6.33,-21.37 -6.27,-21.51 -6.21,-21.56 -6.15,-21.52 -6.1,-21.43 -6.04,-21.33 -5.98,-21.22 -5.92,-21.1 -5.86,-20.98 -5.8,-20.85 -5.75,-20.73 -5.69,-20.61 -5.63,-20.48 -5.57,-20.36 -5.51,-20.24 -5.45,-20.12 -5.4,-20 -5.34,-19.87 -5.28,-19.75 -5.22,-19.64 -5.16,-19.52 -5.1,-19.4 -5.05,-19.28 -4.99,-19.17 -4.93,-19.05 -4.87,-18.94 -4.81,-18.82 -4.75,-18.71 -4.7,-18.6 -4.64,-18.48 -4.58,-18.37 -4.52,-18.26 -4.46,-18.15 -4.4,-18.04 -4.35,-17.93 -4.29,-17.83 -4.23,-17.72 -4.17,-17.61 -4.11,-17.51 -4.05,-17.4 -4,-17.29 -3.94,-17.19 -3.88,-17.09 -3.82,-16.98 -3.76,-16.88 -3.7,-16.78 -3.65,-16.67 -3.59,-16.57 -3.53,-16.47 -3.47,-16.37 -3.41,-16.27 -3.35,-16.17 -3.3,-16.07 -3.24,-15.97 -3.18,-15.87 -3.12,-15.77 -3.06,-15.68 -3,-15.58 -2.95,-15.48 -2.89,-15.38 -2.83,-15.29 -2.77,-15.19 -2.71,-15.1 -2.65,-15 -2.6,-14.9 -2.54,-14.81 -2.48,-14.72 -2.42,-14.62 -2.36,-14.53 -2.3,-14.43 -2.25,-14.34 -2.19,-14.25 -2.13,-14.15 -2.07,-14.06 -2.01,-13.97 -1.95,-13.88 -1.9,-13.79 -1.84,-13.69 -1.78,-13.6 -1.72,-13.51 -1.66,-13.42 -1.6,-13.33 -1.55,-13.24 -1.49,-13.15 -1.43,-13.06 -1.37,-12.97 -1.31,-12.88 -1.25,-12.79 -1.2,-12.7 -1.14,-12.62 -1.08,-12.53 -1.02,-12.44 -0.96,-12.35 -0.9,-12.26 -0.85,-12.17 -0.79,-12.09 -0.73,-12 -0.67,-11.91 -0.61,-11.82 -0.55,-11.74 -0.5,-11.65 -0.44,-11.56 -0.38,-11.48 -0.32,-11.39 -0.26,-11.3 -0.2,-11.22 -0.15,-11.13 -0.09,-11.05 -0.03,-10.96 0.03,-10.88 0.09,-10.79 0.15,-10.7 0.2,-10.62 0.26,-10.53 0.32,-10.45 0.38,-10.37 0.44,-10.28 0.5,-10.2 0.55,-10.11 0.61,-10.03 0.67,-9.94 0.73,-9.86 0.79,-9.77 0.85,-9.69 0.9,-9.61 0.96,-9.52 1.02,-9.44 1.08,-9.36 1.14,-9.27 1.2,-9.19 1.25,-9.11 1.31,-9.02 1.37,-8.94 1.43,-8.86 1.49,-8.77 1.55,-8.69 1.6,-8.61 1.66,-8.53 1.72,-8.44 1.78,-8.36 1.84,-8.28 1.9,-8.2 1.95,-8.11 2.01,-8.03 2.07,-7.95 2.13,-7.87 2.19,-7.79 2.25,-7.7 2.3,-7.62 2.36,-7.54 2.42,-7.46 2.48,-7.38 2.54,-7.3 2.6,-7.21 2.65,-7.13 2.71,-7.05 2.77,-6.97 2.83,-6.89 2.89,-6.81 2.95,-6.73 3,-6.65 3.06,-6.57 3.12,-6.48 3.18,-6.4 3.24,-6.32 3.3,-6.24 3.35,-6.16 3.41,-6.08 3.47,-6 3.53,-5.92 3.59,-5.84 3.65,-5.76 3.7,-5.68 3.76,-5.6 3.82,-5.52 3.88,-5.44 3.94,-5.36 4,-5.28 4.05,-5.2 4.11,-5.11 4.17,-5.03 4.23,-4.95 4.29,-4.87 4.35,-4.79 4.4,-4.71 4.46,-4.63 4.52,-4.55 4.58,-4.47 4.64,-4.39 4.7,-4.32 4.75,-4.24 4.81,-4.16 4.87,-4.08 4.93,-4 4.99,-3.92 5.05,-3.84 5.1,-3.76 5.16,-3.68 5.22,-3.6 5.28,-3.52 5.34,-3.44 5.4,-3.36 5.45,-3.28 5.51,-3.2 5.57,-3.12 5.63,-3.04 5.69,-2.96 5.75,-2.88 5.8,-2.8 5.86,-2.72 5.92,-2.65 5.98,-2.57 6.04,-2.49 6.1,-2.41 6.15,-2.33 6.21,-2.25 6.27,-2.17 6.33,-2.09 6.39,-2.01 6.45,-1.93 6.5,-1.85 6.56,-1.78 6.62,-1.7 6.68,-1.62 6.74,-1.54 6.8,-1.46 6.85,-1.38 6.91,-1.3 6.97,-1.22 7.03,-1.14 7.09,-1.07 7.15,-0.99 7.2,-0.91 7.26,-0.83 7.32,-0.75 7.38,-0.67 7.44,-0.59 7.5,-0.51 7.55,-0.44 7.61,-0.36 7.67,-0.28 7.73,-0.2 7.79,-0.12 7.85,-0.04 7.9,0.04 7.96,0.11 8.02,0.19 8.08,0.27 8.14,0.35 8.19,0.43 8.25,0.51 8.31,0.58 8.37,0.66 8.43,0.74 8.49,0.82 8.54,0.9 8.6,0.98 8.66,1.06 8.72,1.13 8.78,1.21 8.84,1.29 8.89,1.37 8.95,1.45 9.01,1.53 9.07,1.6 9.13,1.68 9.19,1.76 9.24,1.84 9.3,1.92 9.36,2 9.42,2.07 9.48,2.15 9.54,2.23 9.59,2.31 9.65,2.39 9.71,2.46 9.77,2.54 9.83,2.62 9.89,2.7 9.94,2.78 10,2.86 10.06,2.93 10.12,3.01 10.18,3.09 10.24,3.17 10.29,3.25 10.35,3.32 10.41,3.4 10.47,3.48 10.53,3.56 10.59,3.64 10.64,3.71 10.7,3.79 10.76,3.87 10.82,3.95 10.88,4.03 10.94,4.1 10.99,4.18 11.05,4.26 11.11,4.34 11.17,4.42 11.23,4.49 11.29,4.57 11.34,4.65 11.4,4.73 11.46,4.81 11.52,4.88 11.58,4.96 11.64,5.04 11.69,5.12 11.75,5.2 11.81,5.27 11.87,5.35 11.93,5.43 11.99,5.51 12.04,5.59 12.1,5.66 12.16,5.74 12.22,5.82 12.28,5.9 12.34,5.97 12.39,6.05 12.45,6.13 12.51,6.21 12.57,6.29 12.63,6.36 12.69,6.44 12.74,6.52 12.8,6.6 12.86,6.67 12.92,6.75 12.98,6.83 13.04,6.91 13.09,6.99 13.15,7.06 13.21,7.14 13.27,7.22 13.33,7.3 13.39,7.37 13.44,7.45 13.5,7.53 13.56,7.61 13.62,7.69 13.68,7.76 13.74,7.84 13.79,7.92 13.85,8 13.91,8.07 13.97,8.15 14.03,8.23 14.09,8.31 14.14,8.39 14.2,8.46 14.26,8.54 14.32,8.62 14.38,8.7 14.44,8.77 14.49,8.85 14.55,8.93 14.61,9.01 14.67,9.08 14.73,9.16 14.79,9.24 14.84,9.32 14.9,9.39 14.96,9.47 15.02,9.55 15.08,9.63 15.14,9.71 15.19,9.78 15.25,9.86 15.31,9.94 15.37,10.02 15.43,10.09 15.49,10.17 15.54,10.25 15.6,10.33 15.66,10.4 15.72,10.48 15.78,10.56 15.84,10.64 15.89,10.71 15.95,10.79 16.01,10.87 16.07,10.95 16.13,11.02 16.19,11.1 16.24,11.18 16.3,11.26 16.36,11.34 16.42,11.41 16.48,11.49 16.54,11.57 16.59,11.65 16.65,11.72 16.71,11.8 16.77,11.88 16.83,11.96 16.89,12.03 16.94,12.11 17,12.19 17.06,12.27 17.12,12.34 17.18,12.42 17.24,12.5 17.29,12.58 17.35,12.65 17.41,12.73 17.47,12.81 17.53,12.89 17.59,12.96 17.64,13.04 17.7,13.12 17.76,13.2 17.82,13.27 17.88,13.35 17.94,13.43 17.99,13.51 18.05,13.58 18.11,13.66 18.17,13.74 18.23,13.82 18.29,13.89 18.34,13.97 18.4,14.05 18.46,14.13 18.52,14.2 18.58,14.28 18.64,14.36 18.69,14.44 18.75,14.51 18.81,14.59 18.87,14.67 18.93,14.75 18.99,14.82 19.04,14.9 19.1,14.98 19.16,15.06 19.22,15.13 19.28,15.21 19.34,15.29 19.39,15.37 19.45,15.44 19.51,15.52 19.57,15.6 19.63,15.68 19.69,15.75 19.74,15.83 19.8,15.91 19.86,15.99 19.92,16.06 19.98,16.14 20.04,16.22 20.09,16.3 20.15,16.37 20.21,16.45 20.27,16.53 20.33,16.61 20.39,16.68 20.44,16.76 20.5,16.84 20.56,16.92 20.62,16.99 20.68,17.07 20.74,17.15 20.79,17.23 20.85,17.3 20.91,17.38 20.97,17.46 21.03,17.54 21.09,17.61 21.14,17.69 21.2,17.77 21.26,17.85 21.32,17.92 21.38,18 21.44,18.08 21.49,18.15 21.55,18.23 21.61,18.31 21.67,18.39 21.73,18.46 21.79,18.54 21.84,18.62 21.9,18.7 21.96,18.77 22.02,18.85 22.08,18.93 22.14,19.01 22.19,19.08 22.25,19.16 22.31,19.24 22.37,19.32 22.43,19.39 22.49,19.47 22.54,19.55 22.6,19.63 22.66,19.7 22.72,19.78 22.78,19.86 22.84,19.94 22.89,20.01 22.95,20.09 23.01,20.17 23.07,20.25 23.13,20.32 23.19,20.4 23.24,20.48 23.3,20.55 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ylabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-60\">\n", + " <g transform=\"translate(19.3,131.11)\" id=\"img-68edbf8e-61\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.00</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(19.3,115.14)\" id=\"img-68edbf8e-62\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.05</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(19.3,99.17)\" id=\"img-68edbf8e-63\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.10</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(19.3,83.2)\" id=\"img-68edbf8e-64\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.15</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-65\">\n", + " <g transform=\"translate(8.81,105.16)\" id=\"img-68edbf8e-66\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\" transform=\"rotate(-90,0, 2)\">Velocity</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + "</g>\n", + "<g class=\"plotroot xscalable yscalable\" id=\"img-68edbf8e-67\">\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-68\">\n", + " <g transform=\"translate(121.12,64.59)\" id=\"img-68edbf8e-69\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">Time (s)</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xlabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-70\">\n", + " <g transform=\"translate(96.83,57.91)\" id=\"img-68edbf8e-71\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.00</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(108.97,57.91)\" id=\"img-68edbf8e-72\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.05</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(121.12,57.91)\" id=\"img-68edbf8e-73\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.10</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(133.26,57.91)\" id=\"img-68edbf8e-74\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.15</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(145.4,57.91)\" id=\"img-68edbf8e-75\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.20</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g clip-path=\"url(#img-68edbf8e-76)\">\n", + " <g id=\"img-68edbf8e-77\">\n", + " <g pointer-events=\"visible\" stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#000000\" stroke-opacity=\"0.000\" class=\"guide background\" id=\"img-68edbf8e-78\">\n", + " <g transform=\"translate(121.12,30.96)\" id=\"img-68edbf8e-79\">\n", + " <path d=\"M-26.28,-25.96 L26.28,-25.96 26.28,25.96 -26.28,25.96 z\" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ygridlines xfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-80\">\n", + " <g transform=\"translate(121.12,54.91)\" id=\"img-68edbf8e-81\">\n", + " <path fill=\"none\" d=\"M-26.28,0 L26.28,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(121.12,45.33)\" id=\"img-68edbf8e-82\">\n", + " <path fill=\"none\" d=\"M-26.28,0 L26.28,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(121.12,35.75)\" id=\"img-68edbf8e-83\">\n", + " <path fill=\"none\" d=\"M-26.28,0 L26.28,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(121.12,26.17)\" id=\"img-68edbf8e-84\">\n", + " <path fill=\"none\" d=\"M-26.28,0 L26.28,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(121.12,16.58)\" id=\"img-68edbf8e-85\">\n", + " <path fill=\"none\" d=\"M-26.28,0 L26.28,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(121.12,7)\" id=\"img-68edbf8e-86\">\n", + " <path fill=\"none\" d=\"M-26.28,0 L26.28,0 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xgridlines yfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-87\">\n", + " <g transform=\"translate(96.83,30.96)\" id=\"img-68edbf8e-88\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(108.97,30.96)\" id=\"img-68edbf8e-89\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(121.12,30.96)\" id=\"img-68edbf8e-90\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(133.26,30.96)\" id=\"img-68edbf8e-91\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(145.4,30.96)\" id=\"img-68edbf8e-92\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"plotpanel\" id=\"img-68edbf8e-93\">\n", + " <metadata>\n", + " <boundingbox value=\"94.83166666666665mm 5.0mm 52.56833333333332mm 51.91499999999999mm\"/>\n", + " <unitbox value=\"-0.008235818949246769 1.0208702911405614 0.21647163789849355 -0.5417405822811229\"/>\n", + " </metadata>\n", + " <g stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" class=\"geometry\" id=\"img-68edbf8e-94\">\n", + " <g class=\"color_LCHab{Float32}(70.0f0,60.0f0,240.0f0)\" stroke-dasharray=\"none\" stroke=\"#00BFFF\" id=\"img-68edbf8e-95\">\n", + " <g transform=\"translate(121.03,38.75)\" id=\"img-68edbf8e-96\">\n", + " <path fill=\"none\" d=\"M-24.13,-31.75 L-24.07,-31.59 -24.01,-31.42 -23.95,-31.25 -23.89,-31.09 -23.83,-30.92 -23.77,-30.75 -23.71,-30.59 -23.65,-30.42 -23.59,-30.25 -23.53,-30.09 -23.47,-29.92 -23.41,-29.75 -23.35,-29.59 -23.29,-29.42 -23.23,-29.25 -23.17,-29.08 -23.11,-28.92 -23.05,-28.75 -22.99,-28.58 -22.92,-28.42 -22.86,-28.25 -22.8,-28.08 -22.74,-27.92 -22.68,-27.75 -22.62,-27.58 -22.56,-27.42 -22.5,-27.25 -22.44,-27.08 -22.38,-26.92 -22.32,-26.75 -22.26,-26.58 -22.2,-26.42 -22.14,-26.25 -22.08,-26.08 -22.02,-25.91 -21.96,-25.75 -21.9,-25.58 -21.84,-25.41 -21.78,-25.25 -21.72,-25.08 -21.66,-24.91 -21.6,-24.75 -21.54,-24.58 -21.48,-24.41 -21.41,-24.25 -21.35,-24.08 -21.29,-23.91 -21.23,-23.75 -21.17,-23.58 -21.11,-23.41 -21.05,-23.25 -20.99,-23.08 -20.93,-22.91 -20.87,-22.74 -20.81,-22.58 -20.75,-22.41 -20.69,-22.24 -20.63,-22.08 -20.57,-21.91 -20.51,-21.74 -20.45,-21.58 -20.39,-21.41 -20.33,-21.24 -20.27,-21.08 -20.21,-20.91 -20.15,-20.74 -20.09,-20.58 -20.03,-20.41 -19.96,-20.24 -19.9,-20.08 -19.84,-19.91 -19.78,-19.74 -19.72,-19.58 -19.66,-19.41 -19.6,-19.24 -19.54,-19.08 -19.48,-18.91 -19.42,-18.74 -19.36,-18.58 -19.3,-18.41 -19.24,-18.24 -19.18,-18.08 -19.12,-17.91 -19.06,-17.75 -19,-17.58 -18.94,-17.41 -18.88,-17.25 -18.82,-17.08 -18.76,-16.92 -18.7,-16.75 -18.64,-16.59 -18.58,-16.43 -18.52,-16.27 -18.45,-16.12 -18.39,-15.98 -18.33,-15.86 -18.27,-15.74 -18.21,-15.64 -18.15,-15.53 -18.09,-15.43 -18.03,-15.33 -17.97,-15.23 -17.91,-15.13 -17.85,-15.02 -17.79,-14.92 -17.73,-14.82 -17.67,-14.72 -17.61,-14.61 -17.55,-14.51 -17.49,-14.41 -17.43,-14.31 -17.37,-14.21 -17.31,-14.1 -17.25,-14 -17.19,-13.9 -17.13,-13.8 -17.07,-13.69 -17,-13.59 -16.94,-13.49 -16.88,-13.39 -16.82,-13.28 -16.76,-13.18 -16.7,-13.08 -16.64,-12.98 -16.58,-12.87 -16.52,-12.77 -16.46,-12.67 -16.4,-12.57 -16.34,-12.46 -16.28,-12.36 -16.22,-12.26 -16.16,-12.15 -16.1,-12.05 -16.04,-11.95 -15.98,-11.84 -15.92,-11.74 -15.86,-11.64 -15.8,-11.53 -15.74,-11.43 -15.68,-11.33 -15.62,-11.22 -15.56,-11.12 -15.49,-11.02 -15.43,-10.91 -15.37,-10.81 -15.31,-10.7 -15.25,-10.6 -15.19,-10.5 -15.13,-10.39 -15.07,-10.29 -15.01,-10.18 -14.95,-10.08 -14.89,-9.98 -14.83,-9.87 -14.77,-9.77 -14.71,-9.66 -14.65,-9.56 -14.59,-9.45 -14.53,-9.35 -14.47,-9.24 -14.41,-9.14 -14.35,-9.03 -14.29,-8.93 -14.23,-8.82 -14.17,-8.72 -14.11,-8.61 -14.04,-8.5 -13.98,-8.4 -13.92,-8.29 -13.86,-8.19 -13.8,-8.08 -13.74,-7.97 -13.68,-7.87 -13.62,-7.76 -13.56,-7.65 -13.5,-7.55 -13.44,-7.44 -13.38,-7.33 -13.32,-7.23 -13.26,-7.12 -13.2,-7.01 -13.14,-6.9 -13.08,-6.8 -13.02,-6.69 -12.96,-6.58 -12.9,-6.47 -12.84,-6.36 -12.78,-6.26 -12.72,-6.15 -12.66,-6.04 -12.6,-5.93 -12.53,-5.82 -12.47,-5.71 -12.41,-5.6 -12.35,-5.49 -12.29,-5.38 -12.23,-5.27 -12.17,-5.16 -12.11,-5.05 -12.05,-4.94 -11.99,-4.83 -11.93,-4.72 -11.87,-4.61 -11.81,-4.5 -11.75,-4.39 -11.69,-4.28 -11.63,-4.16 -11.57,-4.05 -11.51,-3.94 -11.45,-3.83 -11.39,-3.71 -11.33,-3.6 -11.27,-3.49 -11.21,-3.37 -11.15,-3.26 -11.08,-3.15 -11.02,-3.03 -10.96,-2.92 -10.9,-2.8 -10.84,-2.69 -10.78,-2.58 -10.72,-2.46 -10.66,-2.34 -10.6,-2.23 -10.54,-2.11 -10.48,-2 -10.42,-1.88 -10.36,-1.76 -10.3,-1.65 -10.24,-1.53 -10.18,-1.41 -10.12,-1.29 -10.06,-1.17 -10,-1.06 -9.94,-0.94 -9.88,-0.82 -9.82,-0.7 -9.76,-0.58 -9.7,-0.46 -9.64,-0.34 -9.57,-0.22 -9.51,-0.1 -9.45,0.03 -9.39,0.15 -9.33,0.27 -9.27,0.39 -9.21,0.51 -9.15,0.64 -9.09,0.76 -9.03,0.89 -8.97,1.01 -8.91,1.14 -8.85,1.26 -8.79,1.39 -8.73,1.51 -8.67,1.64 -8.61,1.77 -8.55,1.89 -8.49,2.02 -8.43,2.15 -8.37,2.28 -8.31,2.41 -8.25,2.54 -8.19,2.67 -8.12,2.8 -8.06,2.93 -8,3.06 -7.94,3.19 -7.88,3.33 -7.82,3.46 -7.76,3.59 -7.7,3.73 -7.64,3.86 -7.58,4 -7.52,4.13 -7.46,4.27 -7.4,4.4 -7.34,4.54 -7.28,4.68 -7.22,4.82 -7.16,4.96 -7.1,5.09 -7.04,5.23 -6.98,5.37 -6.92,5.51 -6.86,5.65 -6.8,5.78 -6.74,5.92 -6.68,6.05 -6.61,6.18 -6.55,6.3 -6.49,6.4 -6.43,6.46 -6.37,6.5 -6.31,6.52 -6.25,6.53 -6.19,6.54 -6.13,6.54 -6.07,6.55 -6.01,6.55 -5.95,6.55 -5.89,6.56 -5.83,6.56 -5.77,6.56 -5.71,6.56 -5.65,6.56 -5.59,6.56 -5.53,6.56 -5.47,6.56 -5.41,6.56 -5.35,6.56 -5.29,6.56 -5.23,6.57 -5.16,6.57 -5.1,6.57 -5.04,6.57 -4.98,6.57 -4.92,6.57 -4.86,6.57 -4.8,6.57 -4.74,6.57 -4.68,6.57 -4.62,6.57 -4.56,6.57 -4.5,6.57 -4.44,6.57 -4.38,6.57 -4.32,6.57 -4.26,6.57 -4.2,6.57 -4.14,6.57 -4.08,6.57 -4.02,6.57 -3.96,6.57 -3.9,6.57 -3.84,6.57 -3.78,6.57 -3.72,6.57 -3.65,6.57 -3.59,6.57 -3.53,6.57 -3.47,6.57 -3.41,6.57 -3.35,6.57 -3.29,6.57 -3.23,6.57 -3.17,6.57 -3.11,6.57 -3.05,6.57 -2.99,6.57 -2.93,6.57 -2.87,6.57 -2.81,6.57 -2.75,6.57 -2.69,6.57 -2.63,6.57 -2.57,6.57 -2.51,6.57 -2.45,6.57 -2.39,6.57 -2.33,6.57 -2.27,6.57 -2.2,6.57 -2.14,6.57 -2.08,6.57 -2.02,6.57 -1.96,6.57 -1.9,6.57 -1.84,6.57 -1.78,6.57 -1.72,6.57 -1.66,6.57 -1.6,6.57 -1.54,6.57 -1.48,6.57 -1.42,6.57 -1.36,6.57 -1.3,6.57 -1.24,6.57 -1.18,6.57 -1.12,6.57 -1.06,6.57 -1,6.57 -0.94,6.57 -0.88,6.57 -0.82,6.57 -0.76,6.57 -0.69,6.57 -0.63,6.57 -0.57,6.57 -0.51,6.57 -0.45,6.57 -0.39,6.57 -0.33,6.57 -0.27,6.57 -0.21,6.57 -0.15,6.57 -0.09,6.57 -0.03,6.57 0.03,6.57 0.09,6.57 0.15,6.57 0.21,6.57 0.27,6.57 0.33,6.57 0.39,6.57 0.45,6.57 0.51,6.57 0.57,6.57 0.63,6.57 0.69,6.57 0.76,6.57 0.82,6.57 0.88,6.57 0.94,6.57 1,6.57 1.06,6.57 1.12,6.57 1.18,6.57 1.24,6.57 1.3,6.57 1.36,6.57 1.42,6.57 1.48,6.57 1.54,6.57 1.6,6.57 1.66,6.57 1.72,6.57 1.78,6.57 1.84,6.57 1.9,6.57 1.96,6.57 2.02,6.57 2.08,6.57 2.14,6.57 2.2,6.57 2.27,6.57 2.33,6.57 2.39,6.57 2.45,6.57 2.51,6.57 2.57,6.57 2.63,6.57 2.69,6.57 2.75,6.57 2.81,6.57 2.87,6.57 2.93,6.57 2.99,6.57 3.05,6.57 3.11,6.57 3.17,6.57 3.23,6.57 3.29,6.57 3.35,6.57 3.41,6.57 3.47,6.57 3.53,6.57 3.59,6.57 3.65,6.57 3.72,6.57 3.78,6.57 3.84,6.57 3.9,6.57 3.96,6.57 4.02,6.57 4.08,6.57 4.14,6.57 4.2,6.57 4.26,6.57 4.32,6.57 4.38,6.57 4.44,6.57 4.5,6.57 4.56,6.57 4.62,6.57 4.68,6.57 4.74,6.57 4.8,6.57 4.86,6.57 4.92,6.57 4.98,6.57 5.04,6.57 5.1,6.57 5.16,6.57 5.23,6.57 5.29,6.57 5.35,6.57 5.41,6.57 5.47,6.57 5.53,6.57 5.59,6.57 5.65,6.57 5.71,6.57 5.77,6.57 5.83,6.57 5.89,6.57 5.95,6.57 6.01,6.57 6.07,6.57 6.13,6.57 6.19,6.57 6.25,6.57 6.31,6.57 6.37,6.57 6.43,6.57 6.49,6.57 6.55,6.57 6.61,6.57 6.68,6.57 6.74,6.57 6.8,6.58 6.86,6.58 6.92,6.58 6.98,6.58 7.04,6.58 7.1,6.58 7.16,6.58 7.22,6.58 7.28,6.58 7.34,6.58 7.4,6.58 7.46,6.58 7.52,6.58 7.58,6.58 7.64,6.58 7.7,6.58 7.76,6.58 7.82,6.58 7.88,6.58 7.94,6.58 8,6.58 8.06,6.58 8.12,6.58 8.19,6.58 8.25,6.58 8.31,6.58 8.37,6.58 8.43,6.58 8.49,6.58 8.55,6.58 8.61,6.58 8.67,6.58 8.73,6.58 8.79,6.58 8.85,6.58 8.91,6.58 8.97,6.58 9.03,6.58 9.09,6.58 9.15,6.58 9.21,6.58 9.27,6.58 9.33,6.58 9.39,6.58 9.45,6.58 9.51,6.58 9.57,6.58 9.64,6.58 9.7,6.58 9.76,6.58 9.82,6.58 9.88,6.58 9.94,6.58 10,6.58 10.06,6.58 10.12,6.58 10.18,6.58 10.24,6.58 10.3,6.58 10.36,6.58 10.42,6.58 10.48,6.58 10.54,6.58 10.6,6.58 10.66,6.58 10.72,6.58 10.78,6.58 10.84,6.58 10.9,6.58 10.96,6.58 11.02,6.58 11.08,6.58 11.15,6.58 11.21,6.58 11.27,6.58 11.33,6.58 11.39,6.58 11.45,6.58 11.51,6.58 11.57,6.58 11.63,6.58 11.69,6.58 11.75,6.58 11.81,6.58 11.87,6.58 11.93,6.58 11.99,6.58 12.05,6.58 12.11,6.58 12.17,6.58 12.23,6.58 12.29,6.58 12.35,6.58 12.41,6.58 12.47,6.58 12.53,6.58 12.6,6.58 12.66,6.58 12.72,6.58 12.78,6.58 12.84,6.58 12.9,6.58 12.96,6.58 13.02,6.58 13.08,6.58 13.14,6.58 13.2,6.58 13.26,6.58 13.32,6.58 13.38,6.58 13.44,6.58 13.5,6.58 13.56,6.58 13.62,6.58 13.68,6.58 13.74,6.58 13.8,6.58 13.86,6.58 13.92,6.58 13.98,6.58 14.04,6.58 14.11,6.58 14.17,6.58 14.23,6.58 14.29,6.58 14.35,6.58 14.41,6.58 14.47,6.58 14.53,6.58 14.59,6.58 14.65,6.58 14.71,6.58 14.77,6.58 14.83,6.58 14.89,6.58 14.95,6.58 15.01,6.58 15.07,6.58 15.13,6.58 15.19,6.58 15.25,6.58 15.31,6.58 15.37,6.58 15.43,6.58 15.49,6.58 15.56,6.58 15.62,6.58 15.68,6.58 15.74,6.58 15.8,6.58 15.86,6.58 15.92,6.58 15.98,6.58 16.04,6.58 16.1,6.58 16.16,6.58 16.22,6.58 16.28,6.58 16.34,6.58 16.4,6.58 16.46,6.58 16.52,6.58 16.58,6.58 16.64,6.58 16.7,6.58 16.76,6.58 16.82,6.58 16.88,6.58 16.94,6.58 17,6.58 17.07,6.58 17.13,6.58 17.19,6.58 17.25,6.58 17.31,6.58 17.37,6.58 17.43,6.58 17.49,6.58 17.55,6.58 17.61,6.58 17.67,6.58 17.73,6.58 17.79,6.58 17.85,6.58 17.91,6.58 17.97,6.58 18.03,6.58 18.09,6.58 18.15,6.58 18.21,6.58 18.27,6.58 18.33,6.58 18.39,6.58 18.45,6.58 18.52,6.58 18.58,6.58 18.64,6.58 18.7,6.58 18.76,6.58 18.82,6.58 18.88,6.58 18.94,6.58 19,6.58 19.06,6.58 19.12,6.58 19.18,6.58 19.24,6.58 19.3,6.58 19.36,6.58 19.42,6.58 19.48,6.58 19.54,6.58 19.6,6.58 19.66,6.58 19.72,6.58 19.78,6.58 19.84,6.58 19.9,6.58 19.96,6.58 20.03,6.58 20.09,6.58 20.15,6.58 20.21,6.58 20.27,6.58 20.33,6.58 20.39,6.58 20.45,6.58 20.51,6.58 20.57,6.58 20.63,6.58 20.69,6.58 20.75,6.58 20.81,6.58 20.87,6.58 20.93,6.58 20.99,6.58 21.05,6.58 21.11,6.58 21.17,6.58 21.23,6.58 21.29,6.58 21.35,6.58 21.41,6.58 21.48,6.58 21.54,6.58 21.6,6.58 21.66,6.58 21.72,6.58 21.78,6.58 21.84,6.58 21.9,6.58 21.96,6.58 22.02,6.58 22.08,6.58 22.14,6.58 22.2,6.58 22.26,6.58 22.32,6.58 22.38,6.58 22.44,6.58 22.5,6.58 22.56,6.58 22.62,6.58 22.68,6.58 22.74,6.58 22.8,6.58 22.86,6.58 22.92,6.58 22.99,6.58 23.05,6.58 23.11,6.58 23.17,6.58 23.23,6.58 23.29,6.58 23.35,6.58 23.41,6.58 23.47,6.58 23.53,6.58 23.59,6.58 23.65,6.58 23.71,6.58 23.77,6.58 23.83,6.58 23.89,6.58 23.95,6.58 24.01,6.58 24.07,6.58 24.13,6.58 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ylabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-97\">\n", + " <g transform=\"translate(93.83,54.91)\" id=\"img-68edbf8e-98\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.5</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(93.83,45.33)\" id=\"img-68edbf8e-99\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.6</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(93.83,35.75)\" id=\"img-68edbf8e-100\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.7</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(93.83,26.17)\" id=\"img-68edbf8e-101\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.8</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(93.83,16.58)\" id=\"img-68edbf8e-102\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">0.9</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(93.83,7)\" id=\"img-68edbf8e-103\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">1.0</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-104\">\n", + " <g transform=\"translate(85.01,28.96)\" id=\"img-68edbf8e-105\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\" transform=\"rotate(-90,0, 2)\">Mass</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + "</g>\n", + "<g class=\"plotroot xscalable yscalable\" id=\"img-68edbf8e-106\">\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-107\">\n", + " <g transform=\"translate(46.59,64.59)\" id=\"img-68edbf8e-108\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">Time (s)</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xlabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-109\">\n", + " <g transform=\"translate(23.98,57.91)\" id=\"img-68edbf8e-110\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.00</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(35.28,57.91)\" id=\"img-68edbf8e-111\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.05</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(46.59,57.91)\" id=\"img-68edbf8e-112\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.10</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(57.89,57.91)\" id=\"img-68edbf8e-113\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.15</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(69.2,57.91)\" id=\"img-68edbf8e-114\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.6em\">0.20</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g clip-path=\"url(#img-68edbf8e-115)\">\n", + " <g id=\"img-68edbf8e-116\">\n", + " <g pointer-events=\"visible\" stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#000000\" stroke-opacity=\"0.000\" class=\"guide background\" id=\"img-68edbf8e-117\">\n", + " <g transform=\"translate(46.59,30.96)\" id=\"img-68edbf8e-118\">\n", + " <path d=\"M-24.61,-25.96 L24.61,-25.96 24.61,25.96 -24.61,25.96 z\" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ygridlines xfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-119\">\n", + " <g transform=\"translate(46.59,54.91)\" id=\"img-68edbf8e-120\">\n", + " <path fill=\"none\" d=\"M-24.61,0 L24.61,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(46.59,38.94)\" id=\"img-68edbf8e-121\">\n", + " <path fill=\"none\" d=\"M-24.61,0 L24.61,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(46.59,22.97)\" id=\"img-68edbf8e-122\">\n", + " <path fill=\"none\" d=\"M-24.61,0 L24.61,0 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(46.59,7)\" id=\"img-68edbf8e-123\">\n", + " <path fill=\"none\" d=\"M-24.61,0 L24.61,0 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide xgridlines yfixed\" stroke-dasharray=\"0.5,0.5\" stroke-width=\"0.2\" stroke=\"#D0D0E0\" id=\"img-68edbf8e-124\">\n", + " <g transform=\"translate(23.98,30.96)\" id=\"img-68edbf8e-125\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(35.28,30.96)\" id=\"img-68edbf8e-126\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(46.59,30.96)\" id=\"img-68edbf8e-127\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(57.89,30.96)\" id=\"img-68edbf8e-128\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(69.2,30.96)\" id=\"img-68edbf8e-129\">\n", + " <path fill=\"none\" d=\"M0,-25.96 L0,25.96 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " <g class=\"plotpanel\" id=\"img-68edbf8e-130\">\n", + " <metadata>\n", + " <boundingbox value=\"21.97833333333333mm 5.0mm 49.22166666666666mm 51.91499999999999mm\"/>\n", + " <unitbox value=\"-0.008845317510043122 1.0156261087342169 0.21769063502008623 -0.016252217468433822\"/>\n", + " </metadata>\n", + " <g stroke-width=\"0.3\" fill=\"#000000\" fill-opacity=\"0.000\" class=\"geometry\" id=\"img-68edbf8e-131\">\n", + " <g class=\"color_LCHab{Float32}(70.0f0,60.0f0,240.0f0)\" stroke-dasharray=\"none\" stroke=\"#00BFFF\" id=\"img-68edbf8e-132\">\n", + " <g transform=\"translate(46.5,32.12)\" id=\"img-68edbf8e-133\">\n", + " <path fill=\"none\" d=\"M-22.47,22.8 L-22.41,22.8 -22.36,22.8 -22.3,22.8 -22.25,22.79 -22.19,22.79 -22.13,22.79 -22.08,22.79 -22.02,22.78 -21.96,22.78 -21.91,22.77 -21.85,22.77 -21.8,22.76 -21.74,22.76 -21.68,22.75 -21.63,22.74 -21.57,22.73 -21.51,22.73 -21.46,22.72 -21.4,22.71 -21.35,22.7 -21.29,22.69 -21.23,22.68 -21.18,22.66 -21.12,22.65 -21.06,22.64 -21.01,22.63 -20.95,22.61 -20.9,22.6 -20.84,22.59 -20.78,22.57 -20.73,22.56 -20.67,22.54 -20.61,22.52 -20.56,22.51 -20.5,22.49 -20.45,22.47 -20.39,22.45 -20.33,22.43 -20.28,22.41 -20.22,22.39 -20.16,22.37 -20.11,22.35 -20.05,22.33 -20,22.31 -19.94,22.29 -19.88,22.26 -19.83,22.24 -19.77,22.22 -19.71,22.19 -19.66,22.17 -19.6,22.14 -19.55,22.12 -19.49,22.09 -19.43,22.06 -19.38,22.03 -19.32,22.01 -19.26,21.98 -19.21,21.95 -19.15,21.92 -19.1,21.89 -19.04,21.86 -18.98,21.83 -18.93,21.8 -18.87,21.76 -18.81,21.73 -18.76,21.7 -18.7,21.67 -18.65,21.63 -18.59,21.6 -18.53,21.56 -18.48,21.53 -18.42,21.49 -18.36,21.46 -18.31,21.42 -18.25,21.38 -18.2,21.34 -18.14,21.31 -18.08,21.27 -18.03,21.23 -17.97,21.19 -17.91,21.15 -17.86,21.11 -17.8,21.07 -17.75,21.03 -17.69,20.98 -17.63,20.94 -17.58,20.9 -17.52,20.86 -17.46,20.81 -17.41,20.77 -17.35,20.72 -17.3,20.68 -17.24,20.63 -17.18,20.59 -17.13,20.54 -17.07,20.5 -17.01,20.45 -16.96,20.4 -16.9,20.35 -16.85,20.31 -16.79,20.26 -16.73,20.21 -16.68,20.17 -16.62,20.12 -16.56,20.07 -16.51,20.02 -16.45,19.97 -16.4,19.93 -16.34,19.88 -16.28,19.83 -16.23,19.78 -16.17,19.73 -16.11,19.68 -16.06,19.63 -16,19.58 -15.95,19.54 -15.89,19.49 -15.83,19.44 -15.78,19.39 -15.72,19.34 -15.66,19.29 -15.61,19.24 -15.55,19.19 -15.5,19.13 -15.44,19.08 -15.38,19.03 -15.33,18.98 -15.27,18.93 -15.21,18.88 -15.16,18.83 -15.1,18.78 -15.05,18.72 -14.99,18.67 -14.93,18.62 -14.88,18.57 -14.82,18.51 -14.76,18.46 -14.71,18.41 -14.65,18.36 -14.6,18.3 -14.54,18.25 -14.48,18.2 -14.43,18.14 -14.37,18.09 -14.31,18.03 -14.26,17.98 -14.2,17.92 -14.15,17.87 -14.09,17.82 -14.03,17.76 -13.98,17.71 -13.92,17.65 -13.86,17.59 -13.81,17.54 -13.75,17.48 -13.7,17.43 -13.64,17.37 -13.58,17.31 -13.53,17.26 -13.47,17.2 -13.41,17.14 -13.36,17.08 -13.3,17.03 -13.25,16.97 -13.19,16.91 -13.13,16.85 -13.08,16.79 -13.02,16.74 -12.96,16.68 -12.91,16.62 -12.85,16.56 -12.8,16.5 -12.74,16.44 -12.68,16.38 -12.63,16.32 -12.57,16.26 -12.51,16.2 -12.46,16.14 -12.4,16.08 -12.35,16.02 -12.29,15.95 -12.23,15.89 -12.18,15.83 -12.12,15.77 -12.06,15.71 -12.01,15.64 -11.95,15.58 -11.9,15.52 -11.84,15.45 -11.78,15.39 -11.73,15.33 -11.67,15.26 -11.61,15.2 -11.56,15.13 -11.5,15.07 -11.45,15 -11.39,14.94 -11.33,14.87 -11.28,14.81 -11.22,14.74 -11.16,14.67 -11.11,14.61 -11.05,14.54 -11,14.47 -10.94,14.4 -10.88,14.34 -10.83,14.27 -10.77,14.2 -10.71,14.13 -10.66,14.06 -10.6,13.99 -10.55,13.92 -10.49,13.85 -10.43,13.78 -10.38,13.71 -10.32,13.64 -10.26,13.57 -10.21,13.5 -10.15,13.43 -10.1,13.35 -10.04,13.28 -9.98,13.21 -9.93,13.13 -9.87,13.06 -9.81,12.99 -9.76,12.91 -9.7,12.84 -9.65,12.76 -9.59,12.69 -9.53,12.61 -9.48,12.54 -9.42,12.46 -9.36,12.38 -9.31,12.31 -9.25,12.23 -9.2,12.15 -9.14,12.07 -9.08,12 -9.03,11.92 -8.97,11.84 -8.91,11.76 -8.86,11.68 -8.8,11.6 -8.75,11.52 -8.69,11.44 -8.63,11.36 -8.58,11.27 -8.52,11.19 -8.47,11.11 -8.41,11.03 -8.35,10.94 -8.3,10.86 -8.24,10.77 -8.18,10.69 -8.13,10.6 -8.07,10.52 -8.02,10.43 -7.96,10.34 -7.9,10.26 -7.85,10.17 -7.79,10.08 -7.73,9.99 -7.68,9.9 -7.62,9.81 -7.57,9.72 -7.51,9.63 -7.45,9.54 -7.4,9.45 -7.34,9.36 -7.28,9.27 -7.23,9.17 -7.17,9.08 -7.12,8.99 -7.06,8.89 -7,8.8 -6.95,8.7 -6.89,8.61 -6.83,8.51 -6.78,8.41 -6.72,8.31 -6.67,8.21 -6.61,8.12 -6.55,8.02 -6.5,7.92 -6.44,7.81 -6.38,7.71 -6.33,7.61 -6.27,7.51 -6.22,7.41 -6.16,7.3 -6.1,7.2 -6.05,7.09 -5.99,6.99 -5.93,6.88 -5.88,6.78 -5.82,6.67 -5.77,6.57 -5.71,6.47 -5.65,6.36 -5.6,6.26 -5.54,6.16 -5.48,6.05 -5.43,5.95 -5.37,5.85 -5.32,5.75 -5.26,5.65 -5.2,5.55 -5.15,5.44 -5.09,5.34 -5.03,5.24 -4.98,5.14 -4.92,5.04 -4.87,4.94 -4.81,4.85 -4.75,4.75 -4.7,4.65 -4.64,4.55 -4.58,4.45 -4.53,4.35 -4.47,4.26 -4.42,4.16 -4.36,4.06 -4.3,3.97 -4.25,3.87 -4.19,3.77 -4.13,3.68 -4.08,3.58 -4.02,3.49 -3.97,3.39 -3.91,3.3 -3.85,3.2 -3.8,3.11 -3.74,3.02 -3.68,2.92 -3.63,2.83 -3.57,2.74 -3.52,2.64 -3.46,2.55 -3.4,2.46 -3.35,2.37 -3.29,2.27 -3.23,2.18 -3.18,2.09 -3.12,2 -3.07,1.91 -3.01,1.82 -2.95,1.73 -2.9,1.64 -2.84,1.55 -2.78,1.46 -2.73,1.37 -2.67,1.28 -2.62,1.19 -2.56,1.1 -2.5,1.01 -2.45,0.93 -2.39,0.84 -2.33,0.75 -2.28,0.66 -2.22,0.58 -2.17,0.49 -2.11,0.4 -2.05,0.32 -2,0.23 -1.94,0.14 -1.88,0.06 -1.83,-0.03 -1.77,-0.11 -1.72,-0.2 -1.66,-0.28 -1.6,-0.37 -1.55,-0.45 -1.49,-0.54 -1.43,-0.62 -1.38,-0.71 -1.32,-0.79 -1.27,-0.87 -1.21,-0.96 -1.15,-1.04 -1.1,-1.12 -1.04,-1.2 -0.98,-1.29 -0.93,-1.37 -0.87,-1.45 -0.82,-1.53 -0.76,-1.61 -0.7,-1.69 -0.65,-1.78 -0.59,-1.86 -0.53,-1.94 -0.48,-2.02 -0.42,-2.1 -0.37,-2.18 -0.31,-2.26 -0.25,-2.34 -0.2,-2.42 -0.14,-2.49 -0.08,-2.57 -0.03,-2.65 0.03,-2.73 0.08,-2.81 0.14,-2.89 0.2,-2.96 0.25,-3.04 0.31,-3.12 0.37,-3.2 0.42,-3.27 0.48,-3.35 0.53,-3.43 0.59,-3.5 0.65,-3.58 0.7,-3.66 0.76,-3.73 0.82,-3.81 0.87,-3.88 0.93,-3.96 0.98,-4.03 1.04,-4.11 1.1,-4.18 1.15,-4.25 1.21,-4.33 1.27,-4.4 1.32,-4.48 1.38,-4.55 1.43,-4.62 1.49,-4.7 1.55,-4.77 1.6,-4.84 1.66,-4.91 1.72,-4.99 1.77,-5.06 1.83,-5.13 1.88,-5.2 1.94,-5.27 2,-5.34 2.05,-5.41 2.11,-5.48 2.17,-5.56 2.22,-5.63 2.28,-5.7 2.33,-5.77 2.39,-5.84 2.45,-5.9 2.5,-5.97 2.56,-6.04 2.62,-6.11 2.67,-6.18 2.73,-6.25 2.78,-6.32 2.84,-6.39 2.9,-6.45 2.95,-6.52 3.01,-6.59 3.07,-6.66 3.12,-6.72 3.18,-6.79 3.23,-6.86 3.29,-6.92 3.35,-6.99 3.4,-7.06 3.46,-7.12 3.52,-7.19 3.57,-7.25 3.63,-7.32 3.68,-7.38 3.74,-7.45 3.8,-7.51 3.85,-7.58 3.91,-7.64 3.97,-7.7 4.02,-7.77 4.08,-7.83 4.13,-7.9 4.19,-7.96 4.25,-8.02 4.3,-8.09 4.36,-8.15 4.42,-8.21 4.47,-8.27 4.53,-8.33 4.58,-8.4 4.64,-8.46 4.7,-8.52 4.75,-8.58 4.81,-8.64 4.87,-8.7 4.92,-8.76 4.98,-8.82 5.03,-8.88 5.09,-8.94 5.15,-9 5.2,-9.06 5.26,-9.12 5.32,-9.18 5.37,-9.24 5.43,-9.3 5.48,-9.36 5.54,-9.42 5.6,-9.48 5.65,-9.53 5.71,-9.59 5.77,-9.65 5.82,-9.71 5.88,-9.77 5.93,-9.82 5.99,-9.88 6.05,-9.94 6.1,-9.99 6.16,-10.05 6.22,-10.11 6.27,-10.16 6.33,-10.22 6.38,-10.27 6.44,-10.33 6.5,-10.38 6.55,-10.44 6.61,-10.49 6.67,-10.55 6.72,-10.6 6.78,-10.66 6.83,-10.71 6.89,-10.76 6.95,-10.82 7,-10.87 7.06,-10.92 7.12,-10.98 7.17,-11.03 7.23,-11.08 7.28,-11.13 7.34,-11.19 7.4,-11.24 7.45,-11.29 7.51,-11.34 7.57,-11.39 7.62,-11.45 7.68,-11.5 7.73,-11.55 7.79,-11.6 7.85,-11.65 7.9,-11.7 7.96,-11.75 8.02,-11.8 8.07,-11.85 8.13,-11.9 8.18,-11.95 8.24,-12 8.3,-12.04 8.35,-12.09 8.41,-12.14 8.47,-12.19 8.52,-12.24 8.58,-12.29 8.63,-12.33 8.69,-12.38 8.75,-12.43 8.8,-12.48 8.86,-12.52 8.91,-12.57 8.97,-12.62 9.03,-12.66 9.08,-12.71 9.14,-12.76 9.2,-12.8 9.25,-12.85 9.31,-12.89 9.36,-12.94 9.42,-12.98 9.48,-13.03 9.53,-13.07 9.59,-13.12 9.65,-13.16 9.7,-13.2 9.76,-13.25 9.81,-13.29 9.87,-13.34 9.93,-13.38 9.98,-13.42 10.04,-13.46 10.1,-13.51 10.15,-13.55 10.21,-13.59 10.26,-13.63 10.32,-13.68 10.38,-13.72 10.43,-13.76 10.49,-13.8 10.55,-13.84 10.6,-13.88 10.66,-13.92 10.71,-13.96 10.77,-14 10.83,-14.04 10.88,-14.08 10.94,-14.12 11,-14.16 11.05,-14.2 11.11,-14.24 11.16,-14.28 11.22,-14.32 11.28,-14.36 11.33,-14.4 11.39,-14.44 11.45,-14.47 11.5,-14.51 11.56,-14.55 11.61,-14.59 11.67,-14.62 11.73,-14.66 11.78,-14.7 11.84,-14.73 11.9,-14.77 11.95,-14.81 12.01,-14.84 12.06,-14.88 12.12,-14.91 12.18,-14.95 12.23,-14.99 12.29,-15.02 12.35,-15.06 12.4,-15.09 12.46,-15.13 12.51,-15.16 12.57,-15.19 12.63,-15.23 12.68,-15.26 12.74,-15.29 12.8,-15.33 12.85,-15.36 12.91,-15.39 12.96,-15.43 13.02,-15.46 13.08,-15.49 13.13,-15.52 13.19,-15.56 13.25,-15.59 13.3,-15.62 13.36,-15.65 13.41,-15.68 13.47,-15.71 13.53,-15.74 13.58,-15.78 13.64,-15.81 13.7,-15.84 13.75,-15.87 13.81,-15.9 13.86,-15.93 13.92,-15.96 13.98,-15.98 14.03,-16.01 14.09,-16.04 14.15,-16.07 14.2,-16.1 14.26,-16.13 14.31,-16.16 14.37,-16.18 14.43,-16.21 14.48,-16.24 14.54,-16.27 14.6,-16.29 14.65,-16.32 14.71,-16.35 14.76,-16.37 14.82,-16.4 14.88,-16.43 14.93,-16.45 14.99,-16.48 15.05,-16.51 15.1,-16.53 15.16,-16.56 15.21,-16.58 15.27,-16.61 15.33,-16.63 15.38,-16.65 15.44,-16.68 15.5,-16.7 15.55,-16.73 15.61,-16.75 15.66,-16.77 15.72,-16.8 15.78,-16.82 15.83,-16.84 15.89,-16.87 15.95,-16.89 16,-16.91 16.06,-16.93 16.11,-16.96 16.17,-16.98 16.23,-17 16.28,-17.02 16.34,-17.04 16.4,-17.06 16.45,-17.08 16.51,-17.1 16.56,-17.12 16.62,-17.15 16.68,-17.17 16.73,-17.18 16.79,-17.2 16.85,-17.22 16.9,-17.24 16.96,-17.26 17.01,-17.28 17.07,-17.3 17.13,-17.32 17.18,-17.34 17.24,-17.36 17.3,-17.37 17.35,-17.39 17.41,-17.41 17.46,-17.43 17.52,-17.44 17.58,-17.46 17.63,-17.48 17.69,-17.49 17.75,-17.51 17.8,-17.53 17.86,-17.54 17.91,-17.56 17.97,-17.57 18.03,-17.59 18.08,-17.6 18.14,-17.62 18.2,-17.63 18.25,-17.65 18.31,-17.66 18.36,-17.68 18.42,-17.69 18.48,-17.71 18.53,-17.72 18.59,-17.73 18.65,-17.75 18.7,-17.76 18.76,-17.77 18.81,-17.78 18.87,-17.8 18.93,-17.81 18.98,-17.82 19.04,-17.83 19.1,-17.85 19.15,-17.86 19.21,-17.87 19.26,-17.88 19.32,-17.89 19.38,-17.9 19.43,-17.91 19.49,-17.92 19.55,-17.93 19.6,-17.94 19.66,-17.95 19.71,-17.96 19.77,-17.97 19.83,-17.98 19.88,-17.99 19.94,-18 20,-18.01 20.05,-18.02 20.11,-18.02 20.16,-18.03 20.22,-18.04 20.28,-18.05 20.33,-18.06 20.39,-18.06 20.45,-18.07 20.5,-18.08 20.56,-18.08 20.61,-18.09 20.67,-18.1 20.73,-18.1 20.78,-18.11 20.84,-18.11 20.9,-18.12 20.95,-18.13 21.01,-18.13 21.06,-18.14 21.12,-18.14 21.18,-18.15 21.23,-18.15 21.29,-18.15 21.35,-18.16 21.4,-18.16 21.46,-18.17 21.51,-18.17 21.57,-18.17 21.63,-18.18 21.68,-18.18 21.74,-18.18 21.8,-18.18 21.85,-18.19 21.91,-18.19 21.96,-18.19 22.02,-18.19 22.08,-18.19 22.13,-18.19 22.19,-18.2 22.25,-18.2 22.3,-18.2 22.36,-18.2 22.41,-18.2 22.47,-18.2 \" class=\"primitive\"/>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g class=\"guide ylabels\" font-size=\"2.82\" font-family=\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\" fill=\"#6C606B\" id=\"img-68edbf8e-134\">\n", + " <g transform=\"translate(20.98,54.91)\" id=\"img-68edbf8e-135\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">1.000</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(20.98,38.94)\" id=\"img-68edbf8e-136\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">1.005</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(20.98,22.97)\" id=\"img-68edbf8e-137\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">1.010</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(20.98,7)\" id=\"img-68edbf8e-138\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"end\" dy=\"0.35em\">1.015</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + " <g font-size=\"3.88\" font-family=\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\" fill=\"#564A55\" stroke=\"#000000\" stroke-opacity=\"0.000\" id=\"img-68edbf8e-139\">\n", + " <g transform=\"translate(8.81,28.96)\" id=\"img-68edbf8e-140\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\" transform=\"rotate(-90,0, 2)\">Altitude</text>\n", + " </g>\n", + " </g>\n", + " </g>\n", + "</g>\n", + "<defs>\n", + " <clipPath id=\"img-68edbf8e-4\">\n", + " <path d=\"M92.48,81.2 L147.4,81.2 147.4,133.11 92.48,133.11 \" />\n", + " </clipPath>\n", + " <clipPath id=\"img-68edbf8e-41\">\n", + " <path d=\"M20.3,81.2 L71.2,81.2 71.2,133.11 20.3,133.11 \" />\n", + " </clipPath>\n", + " <clipPath id=\"img-68edbf8e-76\">\n", + " <path d=\"M94.83,5 L147.4,5 147.4,56.91 94.83,56.91 \" />\n", + " </clipPath>\n", + " <clipPath id=\"img-68edbf8e-115\">\n", + " <path d=\"M21.98,5 L71.2,5 71.2,56.91 21.98,56.91 \" />\n", + " </clipPath>\n", + "</defs>\n", + "</svg>\n" + ], + "text/plain": [ + "SVG(152.39999999999998mm, 152.39999999999998mm, IOBuffer(data=UInt8[...], readable=true, writable=true, seekable=true, append=false, size=61717, maxsize=Inf, ptr=61718, mark=-1), nothing, \"img-68edbf8e\", 0, Compose.SVGPropertyFrame[], Dict{Type, Union{Nothing, Compose.Property}}(Compose.Property{Compose.FontSizePrimitive} => nothing, Compose.Property{Compose.SVGAttributePrimitive} => nothing, Compose.Property{Compose.SVGClassPrimitive} => nothing, Compose.Property{Compose.FillPrimitive} => nothing, Compose.Property{Compose.StrokePrimitive} => nothing, Compose.Property{Compose.LineWidthPrimitive} => nothing, Compose.Property{Compose.FontPrimitive} => nothing, Compose.Property{Compose.JSIncludePrimitive} => nothing, Compose.Property{Compose.JSCallPrimitive} => nothing, Compose.Property{Compose.StrokeDashPrimitive} => nothing…), OrderedCollections.OrderedDict{Compose.ClipPrimitive, String}(Compose.ClipPrimitive{Tuple{Measures.AbsoluteLength, Measures.AbsoluteLength}}(Tuple{Measures.AbsoluteLength, Measures.AbsoluteLength}[(92.48499999999999mm, 81.19999999999999mm), (147.39999999999998mm, 81.19999999999999mm), (147.39999999999998mm, 133.11499999999998mm), (92.48499999999999mm, 133.11499999999998mm)]) => \"img-68edbf8e-4\", Compose.ClipPrimitive{Tuple{Measures.AbsoluteLength, Measures.AbsoluteLength}}(Tuple{Measures.AbsoluteLength, Measures.AbsoluteLength}[(20.305mm, 81.19999999999999mm), (71.19999999999999mm, 81.19999999999999mm), (71.19999999999999mm, 133.11499999999998mm), (20.305mm, 133.11499999999998mm)]) => \"img-68edbf8e-41\", Compose.ClipPrimitive{Tuple{Measures.AbsoluteLength, Measures.AbsoluteLength}}(Tuple{Measures.AbsoluteLength, Measures.AbsoluteLength}[(94.83166666666665mm, 5.0mm), (147.39999999999998mm, 5.0mm), (147.39999999999998mm, 56.91499999999999mm), (94.83166666666665mm, 56.91499999999999mm)]) => \"img-68edbf8e-76\", Compose.ClipPrimitive{Tuple{Measures.AbsoluteLength, Measures.AbsoluteLength}}(Tuple{Measures.AbsoluteLength, Measures.AbsoluteLength}[(21.97833333333333mm, 5.0mm), (71.19999999999999mm, 5.0mm), (71.19999999999999mm, 56.91499999999999mm), (21.97833333333333mm, 56.91499999999999mm)]) => \"img-68edbf8e-115\"), Tuple{Compose.FormPrimitive, String}[], Set{AbstractString}(), true, false, nothing, true, \"img-68edbf8e-140\", false, 140, Set(AbstractString[\"/Users/ocots/.julia/packages/Gadfly/nN3lf/src/gadfly.js\"]), Set(Tuple{AbstractString, AbstractString}[(\"Snap.svg\", \"Snap\"), (\"Gadfly\", \"Gadfly\")]), AbstractString[\"fig.select(\\\"#img-68edbf8e-5\\\")\\n .init_gadfly();\", \"fig.select(\\\"#img-68edbf8e-42\\\")\\n .init_gadfly();\", \"fig.select(\\\"#img-68edbf8e-77\\\")\\n .init_gadfly();\", \"fig.select(\\\"#img-68edbf8e-116\\\")\\n .init_gadfly();\"], false, :none, (Measures.BoundingBox{Tuple{Measures.AbsoluteLength, Measures.AbsoluteLength}, Tuple{Measures.AbsoluteLength, Measures.AbsoluteLength}}((21.97833333333333mm, 5.0mm), (49.22166666666666mm, 51.91499999999999mm)), Compose.UnitBox{Float64, Float64, Float64, Float64}(-0.008845317510043122, 1.0156261087342169, 0.21769063502008623, -0.016252217468433822, 0.0mm, 0.0mm, 0.0mm, 0.0mm), Compose.IdentityTransform()))" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "h_plot = plot(x = (1:n) * value.(Δt), y = value.(h)[:], Geom.line,\n", + " Guide.xlabel(\"Time (s)\"), Guide.ylabel(\"Altitude\"))\n", + "m_plot = plot(x = (1:n) * value.(Δt), y = value.(m)[:], Geom.line,\n", + " Guide.xlabel(\"Time (s)\"), Guide.ylabel(\"Mass\"))\n", + "v_plot = plot(x = (1:n) * value.(Δt), y = value.(v)[:], Geom.line,\n", + " Guide.xlabel(\"Time (s)\"), Guide.ylabel(\"Velocity\"))\n", + "T_plot = plot(x = (1:n) * value.(Δt), y = value.(T)[:], Geom.line,\n", + " Guide.xlabel(\"Time (s)\"), Guide.ylabel(\"Thrust\"))\n", + "draw(SVG(6inch, 6inch), vstack(hstack(h_plot, m_plot), hstack(v_plot, T_plot)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.6.0", + "language": "julia", + "name": "julia-1.6" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/tp/simple_shooting_application.ipynb b/tp/simple_shooting_application.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..5f078434c84f8e950bbbad5f61639b5e16e4941e --- /dev/null +++ b/tp/simple_shooting_application.ipynb @@ -0,0 +1,661 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Application of the simple shooting method" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Author: Olivier Cots\n", + "* Date: March 2021\n", + "\n", + "------" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The energy min 2D integrator problem with friction and transversality 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 c(x(1)) = 0.\n", + " \\end{array}\n", + " \\right. \n", + "$$\n", + "\n", + "We will consider two cases:\n", + "\n", + "$$\n", + "a)~ c(x) = x - (1, 0), \\quad b)~ c(x) = x_1 - 1.\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" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-warning\">\n", + "\n", + "**Goal**\n", + "\n", + "Solve the cases a) and b) of this optimal control problem by simple shooting with the nutopy package.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**_Remark._** \n", + "* 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. \n", + "* 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", + "* See this [page](https://ct.gitlabpages.inria.fr/nutopy/) for the documention of nutopy package." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Preliminaries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# import packages\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", + "#plt.rcParams['figure.figsize'] = [10, 5]\n", + "plt.rcParams['figure.dpi'] = 150" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# parameters\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_a = np.array([1.0, 0.0]) # final target for the case a\n", + "xf_target_b = np.array([1.0]) # final target for the case b\n", + "mu = 0.5 # parameter mu" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Questions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 1:_**\n", + " \n", + "Write the maximizing control in feeback form $u[p]$.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Answer 1:** To complete here (double-click on the line to complete)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 2:_**\n", + " \n", + "Complete the code of `ufun` coding the control in feedback form.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# ----------------------------\n", + "# Answer 2 to complete here\n", + "# ----------------------------\n", + "#\n", + "# Control in feedback form: used for plotting\n", + "#\n", + "@tools.vectorize(vvars=(1,))\n", + "def ufun(p):\n", + " u = 0 ### TO COMPLETE\n", + " return u" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 3:_**\n", + " \n", + "Write the maximized Hamiltonian and the adjoint equation.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Answer 3:** To complete here (double-click on the line to complete)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 4:_**\n", + " \n", + "Complete the code of `hfun` and `dhfun` coding the maximized Hamiltonian and its derivative.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**_Remark._** Let us denote by $h(t, x, p) = H(x, p, u[p])$ the maximized Hamiltonian. The function `dhfun` codes:\n", + "\n", + "$$\n", + " \\frac{\\partial h}{\\partial x}(t, x, p) \\cdot \\delta x + \\frac{\\partial h}{\\partial p}(t, x, p) \\cdot \\delta p.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The (normal and maximized) Hamiltonian is straightforwardly implemented in `hfun`. For further needs, we have to implement its first and second derivatives _wrt._ to state ($x$) and costate ($p$). This derivatives, evaluated against first and second order increments are implemented by `dhfun` and `d2hfun`, respectively." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# ----------------------------\n", + "# Answer 4 to complete here\n", + "# ----------------------------\n", + "#\n", + "# Maximized Hamiltonian with its derivative\n", + "#\n", + "def hfun(t, x, p):\n", + " '''\n", + " Hamiltonian: \n", + " \n", + " h = hfun(t, x, p, mu)\n", + " \n", + " Inputs: \n", + " \n", + " - t : time, float\n", + " - x : state, array\n", + " - p : co-state, array\n", + " - mu : friction parameter, float\n", + " \n", + " Outputs:\n", + " \n", + " - h : Hamiltonian, float\n", + " \n", + " '''\n", + " x2 = x[1]\n", + " p1 = p[0]\n", + " p2 = p[1]\n", + " h = 0.0 ### TO COMPLETE\n", + " return h\n", + "\n", + "def dhfun(t, x, dx, p, dp):\n", + " '''\n", + " Derivative of the Hamiltonian: \n", + " \n", + " hd = dhfun(t, x, dx, p, dp, mu)\n", + " \n", + " Inputs: \n", + " \n", + " - t : time, float\n", + " - x : state, array\n", + " - dx : state increment, array\n", + " - p : co-state, array\n", + " - dp : co-state increment, array\n", + " - mu : friction parameter, float\n", + " \n", + " Outputs:\n", + " \n", + " - hd : derivative of the Hamiltonian, float\n", + " \n", + " '''\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 = 0.0 ### TO COMPLETE\n", + " return hd" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# The second order derivative of hfun and the definition of the flow\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)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "h = ocp.Hamiltonian(hfun) # The Hamiltonian object" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To define in the following the shooting function, one must integrate the Hamiltonian system defined by `h`. This is done by defining a [Flow](https://ct.gitlabpages.inria.fr/nutopy/api/ocp.html#nutopy.ocp.Flow) object:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "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": [ + "To compute the value of the Hamiltonan flow at time $t_f$ starting from time $t_0$ and initial conditions $(x_0,p_0)$, do the following:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-1. 0.] [0.1 0.1]\n" + ] + } + ], + "source": [ + "p0 = np.array([0.1, 0.1])\n", + "xf, pf = f(t0, x0, p0, tf)\n", + "print(xf, pf)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### case a: $c(x) = x - x_f$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case, the shooting function is simply given by\n", + "\n", + "$$\n", + " S(p_0) = \\pi_x(z(t_f, t_0, x_0, p_0)) - x_f,\n", + "$$\n", + "\n", + "where $x_f = (1, 0)$ and $z(t_f, t_0, x_0, p_0)$ is the value of the Hamiltonan flow at time $t_f$ starting from time $t_0$ and initial conditions $(x_0,p_0)$. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 5:_**\n", + " \n", + "Complete the code of `shoot` coding the shooting function.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# ----------------------------\n", + "# Answer 5 to complete here\n", + "# ----------------------------\n", + "#\n", + "# Shooting function and its derivative\n", + "#\n", + "# Nota bene: use f, t0, x0, tf, xf_target_a\n", + "#\n", + "\n", + "def shoot(p0):\n", + " '''\n", + " Shooting function\n", + " \n", + " s = S(p0)\n", + " \n", + " Inputs:\n", + " \n", + " p0 : initial co-state, array\n", + " \n", + " Outputs:\n", + " \n", + " s : value of the shooting function, array\n", + " '''\n", + " s = np.zeros([2]) ### TO COMPLETE\n", + " return s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Jacobian of $S$ at $p_0$ against the vector $\\delta p_0$ is given by:\n", + "\n", + "$$\n", + " S'(p_0) \\cdot \\delta p_0 = \\pi_x \\left(\\frac{\\partial z}{\\partial p_0}(t_f, t_0, x_0, p_0) \\cdot \\delta p_0 \\right) = \n", + " \\frac{\\partial x}{\\partial p_0}(t_f, t_0, x_0, p_0) \\cdot \\delta p_0.\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Jacobian of the shooting function against dp0\n", + "def dshoot(p0, dp0):\n", + " (xf, dxf), _ = f(t0, x0, (p0, dp0), tf)\n", + " ds = dxf\n", + " return ds\n", + "\n", + "# We tensorize the shooting function, otherwise, we would have to give the Jacobian \n", + "# of S instead of the Jacobian against a vector, to the nle solver.\n", + "shoot = nt.tools.tensorize(dshoot)(shoot)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "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_sol = [0.1 0.1] \t shoot = [0. 0.]\n" + ] + } + ], + "source": [ + "# Resolution of the shooting function\n", + "#\n", + "p0_guess = np.array([0.1, 0.1])\n", + "sol = nt.nle.solve(shoot, p0_guess, df=shoot); p0_sol = sol.x\n", + "print('p0_sol =', p0_sol, '\\t shoot =', shoot(p0_sol))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Function to plot the solution\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": 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_sol)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### case b: $c(x) = x_1 - 1$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 6:_**\n", + " \n", + "Give the transversality condition.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Answer 6:** To complete here (double-click on the line to complete)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 7:_**\n", + " \n", + "Write the shooting function.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Answer 7:** To complete here (double-click on the line to complete)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question 8:_**\n", + " \n", + "Solve the shooting equations.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# ----------------------------\n", + "# Answer 8 to complete here\n", + "# ----------------------------\n", + "#\n", + "# Write the shooting function and its derivative\n", + "# Write the call to the nle solver\n", + "# Plot the solution\n", + "#\n", + "# Nota bene: use f, t0, x0, tf, xf_target_b\n", + "#" + ] + } + ], + "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 +} diff --git a/tp/simple_shooting_coding.ipynb b/tp/simple_shooting_coding.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..ea956721939d79386a83451c2389e2c09732206d --- /dev/null +++ b/tp/simple_shooting_coding.ipynb @@ -0,0 +1,1421 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Implementing the indirect simple shooting method" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Author: Olivier Cots\n", + "* Date: March 2021\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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WZCw7v0NwJeAlwDfCP6tfwRf416qhXmHc+7+JjwHmSczex7wzprshJn9tGr7Pc65bwXrHf89TzUuy5hzLo1v1vEe/NjcLwDOAD4LXDSfmW+dc0fxVcQfwUfkLwRW4H/luSzYL20ixHtfms8hiv+l7ZUNFmkTYf7dS2cJ+TM/DTwDeAd+vqbn4L/E/AC4xjn3VyEWXRYprHsf1Ki/FHgtfjjks/H/3p+Br31/ju59W1mDD05LC/ihi6vz1szlQp3yPc/U6kNERERERNqdalxERERERKTtKXAREREREZG2p8BFRERERETangIXERERERFpewpcRERERESk7SlwERERERGRtqfARURERERE2p4CFxERERERaXsKXEREREREpO0pcBERERERkbanwEVERERERNqeAhcREREREWl7ClxERKQrmdkZZubM7IetLouIiMxOgYuIiIiIiLQ9BS4iIiIiItL2FLiIiEjXMbN3A48Em08NmoyVls+0rmQiItJIrNUFEBERaYG7ga8A1wGHgBur9t3SigKJiMipmXOu1WUQERFZcmZ2Br7W5UfOuae1tjQiIjIbNRUTEREREZG2p8BFRERERETangIXERERERFpewpcRERERESk7SlwERERERGRtqfARUREulU2SDU1gIhIB1DgIiIi3eookAO2mlm01YUREZFT0zwuIiLStczsG8C1wA7gTnwtzI+dc59uacFEROQkClxERKRrmdla4O+B3wDWAFHgs865V7WyXCIicjIFLiIiIiIi0vbUx0VERERERNqeAhcREREREWl7ClxERERERKTtKXAREREREZG2p8BFRERERETangIXERERERFpewpcRERERESk7SlwERERERGRtqfARURERERE2p4CFxERERERaXsKXEREREREpO0pcBERERERkbanwEVERERERNqeAhcREREREWl7ClxERERERKTtKXAREREREZG2p8BFRERERETaXqzVBZCTmdlBoBfY0+qyiIiIiIiEZDMw5Zxbv5CTzTkXcnlkscxsLJlMDmzdurUlj1/Ue0JERERk2YuYLenj7dq1i0wmM+6cG1zI+apxaU97tm7dum3Hjh1L/sCj0zkuvP6/lvxxRURERGRp3fPnz2JFT3zJHm/79u3cd999C25R1LV9XMys18xeYGafNLNfmNmYmU2a2T1m9i4z669z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O9rd4py7vSr/9Wa208z+uuZaB4Av4vs1fCxo/17yt8Aa4AvOOc3n0QbCvPdm1gv8J3A+8O/A7zvnGnXekxYL895LZwn5M38K+AgQBz5ec61nA6/Ed+L9P816PjJ3If/d3xCkrzCzGRNWmtnzgZfjv8Cqf2MHWg7f89RUbHl7L37I2quAB83sZvzQppfjhzN8dc3xq/HDXdYb4vKNwBXAdcBOM/s5fqz/84Fd6Ff4dhPWvf9L/H0vAHngkzX9HQBwzr0qxLLL4oT5dy+dJcx7fz3wFOB5wbV+hu/TcgX+R893OOdua8aTkAUJ697fAHwJeAnwjeDf+kfwNe6lWph3OOfub8JzkHkys+cB76zJTpjZT6u23+Oc+1aw3vHf81Tjsow559L4Zh3vwY/N/QLgDOCzwEXzmfnWOXcUX0X8EXxE/kJgBf5XnsuC/dImQrz3pfkcovhf2l7ZYJE2EebfvXSWkD/z08AzgHfg52t6Dv5LzA+Aa5xzfxVi0WWRwrr3QY36S4HX4odDPhv/7/0Z+Nr35+jet5U1+OC0tIAfurg6b81cLtQp3/NMrT5ERERERKTdqcZFRERERETangIXERERERFpewpcRERERESk7SlwERERERGRtqfARURERERE2p4CFxERERERaXsKXEREREREpO0pcBERERERkbanwEVERERERNqeAhcREREREWl7ClxERERERKTtKXAREREREZG2p8BFRES6kpmdYWbOzH7Y6rKIiMjsFLiIiIiIiEjbU+AiIiIiIiJtT4GLiIh0HTN7N/BIsPnUoMlYaflM60omIiKNxFpdABERkRa4G/gKcB1wCLixat8trSiQiIicmjnnWl0GERGRJWdmZ+BrXX7knHtaa0sjIiKzUVMxERERERFpewpcRERERESk7SlwERERERGRtqfARURERERE2p4CFxERERERaXsKXEREpFtlg1RTA4iIdAAFLiIi0q2OAjlgq5lFW10YERE5Nc3jIiIiXcvMvgFcC+wA7sTXwvzYOffplhZMREROosBFRES6lpmtBf4e+A1gDRAFPuuce1UryyUiIidT4CIiIiIiIm1PfVxERERERKTtKXAREREREZG2p8BFRERERETangIXERERERFpewpcRERERESk7SlwERERERGRtqfARURERERE2p4CFxERERERaXsKXEREREREpO0p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RERERETanWpcRERERESk7SlwERERERGRtqfARURERERE2p4CFxERERERaXsKXEREREREpO0pcBERERERkbanwEVERERERNqeAhcREREREWl7ClxERERERKTtKXAREREREZG2p8BFRERERETangIXERERERFpewpcRESkK5nZGWbmzOyHrS6LiIjMToGLiIiIiIi0PQUuIiIiIiLS9hS4iIhI1zGzdwOPBJtPDZqMlZbPtK5kIiLSSKzVBRAREWmBu4GvANcBh4Abq/bd0ooCiYjIqZlzrtVlEBERWXJmdga+1uVHzrmntbY0IiIyGzUVExERERGRtqfARURERERE2p4CFxERERERaXsKXEREREREpO0pcBERERERkbanwEVERLpVNkg1NYCISAdQ4CIiIt3qKJADtppZtNWFERGRU9M8LiIi0rXM7BvAtcAO4E58LcyPnXOfbmnBRETkJApcRESka5nZWuDvgd8A1gBR4LPOuVe1slwiInIyBS4iIiIiItL21MdFRERERETangIXERERERFpewpcRERERESk7SlwERERERGRtqfARURERERE2p4CFxERERERaXsKXEREREREpO0pcBERERERkbanwEVERERERNqeAhcREREREWl7ClxERERERKTtKXAREREREZG2p8BFRERERETangIXERERERFpewpcRERERESk7SlwERERERGRtqfARURERERE2l6s1QWQk5nZQaAX2NPqsoiIiIiIhGQzMOWcW7+Qk805F3J5ZLHMbCyZTA5s3bq11UUREVkSLvifq2xR/c9TabWS52bkl1Ya/YvmGm6cgs1IGu1ucKxhVv9Yn28EScPri4gsN7t27SKTyYw75wYXcr5qXNrTnq1bt27bsWNHq8shIh0mXyiSzhfJ5Apk8sVgKZDNF8tLphCkwXau4Jdsvki2UCSXd5W8IC3nFR35Ul7BkS/6NFcoki848kVHoVgMUke+EKRFf2yh4Cg4v10M8sWLRoyoGZEIxCIRohEjFrFyGotGytvRiBGLGrFIhHiQxqJGIurTWDRCPGLEoxHisQiJqD8uHo0Qj0ZIxPx2Itgfj0ZIBsclYhGSsSiJmF+v5EVIxiOk4tHysWYKu0Rk7rZv385999234BZFyz5wMbNe4FnAtcCTgDOAKPAQ8BXg/c65iXlcbzdw+ikOebxzbudCyysi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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|| = [0.05055979 0.00108516] \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 1.967806967940155e+00 1.414213562373095e-01\n", + " 2 7.763352078391242e-01 1.925483764232603e+01\n", + " 3 8.714030918936800e-01 3.049871913351400e+01\n", + " 4 5.872090745406082e-01 3.560501399402753e+01\n", + " 5 2.014006521293087e-01 3.231327643632874e+01\n", + " 6 1.931710384142391e-03 3.316264831206244e+01\n", + " 7 8.043024319278244e-05 3.317049712945209e+01\n", + " 8 1.579715263727760e-06 3.317019011559066e+01\n", + " 9 3.292283942567928e-09 3.317019601604508e+01\n", + " 10 1.643167583551767e-13 3.317019600377284e+01\n", + "\n", + " Results of the nle solver method:\n", + "\n", + " xsol = [30.73610989 12.47210694]\n", + " f(xsol) = [-1.70974346e-14 -1.63424829e-13]\n", + " nfev = 10\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 = [30.73610989 12.47210694] \n", + " ||p0_euler-p0_nutopy|| = 1.2572301914908524 \n", + " shoot(p0_euler) = [-0.16689276 -0.36186443]\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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Kra6vZcwZO1VwH1m9l3C0KaXE4YzfG3D8RsJw13ONsTlbwJXANcCe8zsx4Sx/h8H7EW/wneauK79HxCuexkoAR9tuN8BAHd/TYx1l6WJ8+9eVpY4r/27gacBL4jK+iHhnpYrCD96vsPdb2rFk5BFievafwH4NPALwJeif+sfILS4V1th3uHu97TgOcgCmdkLgHc2ZGfM7Ad12+9x969E6yv+e55aXFYxd58idOt4D2Fs7hcBO4BPABcvZOZbdz9GaCL+ACEifzGwjvArz5Oj/dIhYrz21fkckoRf2l7dZJEOEeffvawsMX/mTwHPAt5BmK/peYQvMd8CrnH3P4yx6rJEcV37qEX95cAvE4ZDfhTh3/sdhNb35+nad5RNhOC0ukAYurg+b9N8Clop3/NMvT5ERERERKTTqcVFREREREQ6ngIXERERERHpeApcRERERESk4ylwERERERGRjqfARUREREREOp4CFxERERER6XgKXEREREREpOMpcBERERERkY6nwEVERERERDqeAhcREREREel4ClxERERERKTjKXAREREREZGOp8BFRETWJDPbYWZuZt9ud11ERGRuClxERERERKTjKXAREREREZGOp8BFRETWHDN7F/BAtHl11GWsuny8fTUTEZFmUu2ugIiISBvcBnwWuBY4DFxXt++GdlRIREROz9y93XUQERFZdma2g9Dq8h13f0Z7ayMiInNRVzEREREREel4ClxERERERKTjKXAREREREZGOp8BFREREREQ6ngIXERERERHpeApcRERkrSpEqaYGEBFZARS4iIjIWnUMKAI7zSzZ7sqIiMjpaR4XERFZs8zsS8ALgd3ALYRWmO+5+8faWjERETmFAhcREVmzzGwz8OfAzwKbgCTwCXd/TTvrJSIip1LgIiIiIiIiHU/3uIiIiIiISMdT4CIiIiIiIh1PgYuIiIiIiHQ8BS4iIiIiItLxFLiIiIiIiEjHU+AiIiIiIiIdT4GLiIiIiIh0PAUuIiIiIiLS8RS4iIiIiIhIx1PgIiIiIiIiHU+Bi4iIiIiIdDwFLiIiIiIi0vEUuIiIiIiISMdT4CIiIiIiIh1PgYuIiIiIiHQ8BS4iIiIiItLxUu2ugJzKzA4B3cC+dtdFRERERCQm24EJd9+ymJPN3WOujyyVmY1ks9m+nTt3tuXxK3pPiIiIiKx6CbNl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iOXau/uD7m6zLcAzo8O+FuUNxFZ7WYo4/+6/QbgZd6eZbZ9l/zOitNnQqbK84rz21eHtL2uy/0lR+uC8aycrwYr5nqfAZZWKRgD6YLT5wWhYUwDM7M2EG+1ucPcf1eW/wcz2mNkfNZR1EPhnwn0NH4r6v1f9KbAJ+JS7az6PDhDntTezbuDfgccB/wr8qrs3u3lP2izOay8rS8yf+RPAB4A08OGGsp4LvJpwE+//bdXzkfmL+e/+C1H6KjObMWGlmf088ErCF1jd37gCrYbveeoqtrq9lzBk7VXAfWb2XcLQppcThjN8bcPxGwnDXc42xOVvAlcA1wJ7zOzHhLH+HwfsRb/Cd5q4rv0fEK57GSgBH2243wEAd39NjHWXpYnz715Wljiv/buBpwEviMr6IeGelisIP3q+w91vasWTkEWJ69p/Afg08AvAl6J/6x8gtLhXW2He4e73tOA5yAKZ2QuAdzZkZ8zsB3Xb73H3r0TrK/57nlpcVjF3nyJ063gPYWzuFwE7gE8AFy9k5lt3P0ZoIv4AISJ/MbCO8CvPk6P90iFivPbV+RyShF/aXt1kkQ4R59+9rCwxf+ZPAc8C3kGYr+l5hC8x3wKucfc/jLHqskRxXfuoRf3lwC8ThkN+FOHf+x2E1vfn6dp3lE2E4LS6QBi6uD5v03wKWinf80y9PkREREREpNOpxUVERERERDqeAhcREREREel4ClxERERERKTjKXAREREREZGOp8BFREREREQ6ngIXERERERHpeApcRERERESk4ylwERERERGRjqfARUREREREOp4CFxERERER6XgKXEREREREpOMpcBERERERkY6nwEVERERERDqeAhcREVmTzGyHmbmZfbvddRERkbkpcBERERERkY6nwEVERERERDqeAhcREVlzzOxdwAPR5tVRl7Hq8vH21UxERJpJtbsCIiIibXAb8FngWuAwcF3dvhvaUSERETk9c/d210FERGTZmdkOQqvLd9z9Ge2tjYiIzEVdxUREREREpOMpcBERERERkY6nwEVERERERDqeAhcREREREel4ClxERERERKTjKXAREZG1qhClmhpARGQFUOAiIiJr1TGgCOw0s2S7KyMiIqeneVxERGTNMrMvAS8EdgO3EFphvufuH2trxURE5BQKXEREZM0ys83AnwM/C2wCksAn3P017ayXiIic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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|| = [ 1.20427602e-05 -5.16624482e-04] \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 1.967134895295981e+00 1.414213562373095e-01\n", + " 2 1.767925240530967e+00 1.799940022905573e+01\n", + " 3 1.259960259144468e+00 3.478958349066952e+01\n", + " 4 1.729469341852931e+00 3.830379709452797e+01\n", + " 5 7.454299618763681e-01 3.575955343995667e+01\n", + " 6 4.995424447550748e-01 3.510337739286172e+01\n", + " 7 1.863642739895163e-02 3.381938420706238e+01\n", + " 8 2.220983908854785e-03 3.387938502752595e+01\n", + " 9 4.633520849820257e-04 3.388375606015803e+01\n", + " 10 3.201130105575809e-05 3.388288851655970e+01\n", + " 11 3.067154905436612e-08 3.388282399525519e+01\n", + " 12 2.467268656218346e-10 3.388282393446912e+01\n", + "\n", + " Results of the nle solver method:\n", + "\n", + " xsol = [31.39989788 12.73154235]\n", + " f(xsol) = [5.20279375e-11 2.41178855e-10]\n", + " nfev = 12\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_runge = [31.39989788 12.73154235] \n", + " ||p0_runge-p0_nutopy|| = 0.5451475363343861 \n", + " shoot(p0_runge) = [-0.09338002 -0.22667258]\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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qNcjsxfz3/2NUfl6M5tyI1czeznwOsIHY10/ugzpc97M1GVuZfsQYWjk64CHzewWwhC6VxOGzXxT3f5rCMOqTjeU6tuAa4AbgF1m9iPCvSouBnajVoOlJq5z/weE814GSsDf1V1PAoC7vzHGusvCxPl3L8tLnOf+A8AzgZdGx/oB4Zqhawhfpr7X3X/YiBch8xLXub8R+Dzwc8BXo3/rHyP0EKi2Gr3X3R9swGuQOTKzlwLvq1udMbPv1yx/0N3/LZrX57wZqIVoBXP3HKF7ywcJY8u/AtgKfAa4bC53mnb3Y4Sm8o8TvkF4JdBL+Fbqqmi7LBExnvvq/UiShG8G3zDDJEtEnH/3srzE/J6fA34GeC/hfmMvJnw4+g5wvbv/YYxVlwWK69xHPQBeA/wiYdjt8wn/3m8l9BZ4sc79krKWEHqrE4QhsmvXrZ3NgVr9c56p94uIiIiIiLQqtRCJiIiIiEjLUiASEREREZGWpUAkIiIiIiItS4FIRERERERalgKRiIiIiIi0LAUiERERERFpWQpEIiIiIiLSshSIRERERESkZSkQiYiIiIhIy1IgEhERERGRlqVAJCIiIiIiLUuBSEREREREWpYCkYiItCQz22pmbmbfbXZdRESkeRSIRERERESkZSkQiYiIiIhIy1IgEhGRlmNm7wceixafHXWdq06fbl7NRERksaWaXQEREZEmuBf4InADcBi4qWbbrc2okIiINIe5e7PrICIisujMbCuhleh77v6c5tZGRESaRV3mRERERESkZSkQiYiIiIhIy1IgEhERERGRlqVAJCIiIiIiLUuBSEREREREWpYCkYiItKpCVOoWFCIiLUyBSEREWtUxoAhsM7NksysjIiLNofsQiYhIyzKzrwIvA3YCdxNajW5z9081tWIiIrJoFIhERKRlmdk64H8DzwfWAkngM+7+xmbWS0REFo8CkYiIiIiItCxdQyQiIiIiIi1LgUhERERERFqWApGIiIiIiLQsBSIREREREWlZCkQiIiIiItKyFIhERERERKRlKRCJiIiIiEjLUiASEREREZGWpUAkIiIiIiItS4FIRERERERalgKRiIiIiIi0LAUiERERERFpWQpEIiIiIiLSshSIRERERESkZSkQiYiIiIhIy1IgEhERERGRlpVqdgXkVGZ2COgA9ja7LiIiIiIiMdkCjLn7hmZX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fMK/91sJvQVerHO/pKwlhN7qBGGI7Np1a2dzoFb/nGfq/SIiIiIiIq1KLUQiIiIiItKyFIhERERERKRlKRCJiIiIiEjLUiASEREREZGWpUAkIiIiIiItS4FIRERERERalgKRiIiIiIi0LAUiERERERFpWQpEIiIiIiLSshSIRERERESkZSkQiYiIiIhIy1IgEhERERGRlqVAJCIiLcnMtpqZm9l3m10XERFpHgUiERERERFpWQpEIiIiIiLSshSIRESk5ZjZ+4HHosVnR13nqtOnm1czERFZbKlmV0BERKQJ7gW+CNwAHAZuqtl2azMqJCIizWHu3uw6iIiILDoz20poJfqeuz+nubUREZFmUZc5ERERERFpWQpEIiIiIiLSshSIRERERESkZSkQiYiIiIhIy1IgEhERERGRlqVAJCIiraoQlboFhYhIC1MgEhGRVnUMKALbzCzZ7MqIiEhz6D5EIiLSsszsq8DLgJ3A3YRWo9vc/VNNrZiIiCwaBSIREWlZZrYO+N/A84G1QBL4jLu/sZn1EhGRxaNAJCIiIiIiLUvXEImIiIiISMtSIBIRERERkZalQCQiIiIiIi1LgUhERERERFqWApGIiIiIiLQsBSIREREREWlZCkQiIiIiItKyFIhERERERKRlKRCJiIiIiEjLUiASEREREZGWpUAkIiIiIiItS4FIRERERERalgKRiIiIiIi0LAUiERERERFpWQpEIiIiIiLSshSIRERERESkZaWaXQE5lZkdAjqAvc2ui4iIiIhITLYAY+6+odkVqWXu3uw6SB0zG8pms93btm1rdlVERBrOo//55BK1/zR5zcyUfep2ON2/ZvX7zopNOzvTLmC1y2HObPrHh/WGnfI4EZGVa/fu3eTz+WF372l2XWqt+BYiM+sAXgC8DHgasBVIAo8AXwT+3N1H5nC8PcA5p9nlye6+a771jezdtm3b9p07dy7wMCLSCioVp1CukC9VyJfK5IthvlCqUChHZalCoVymUJrcViw7xXKFYjnsVyzVLVfXVSqUyk6pEh5TKlcoVcK+pbJTrDjlaJ9yxSlVwr7lcpivrivXTh5KmcoMkmYkE0YqEZXJxMRywoxUcnJ7KpEgnZzcL508dV0mWp9OJqJpcj6TSpBK2MR8JhX2r5bpmuVsNIX5ZFhOh/lkQpFORM5sx44dPPDAA0uuB9SK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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|| = [-6.6754946e-10 2.5492652e-08] \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 1.967300774283730e+00 1.414213562373095e-01\n", + " 2 1.718121875205946e+00 1.798533569285286e+01\n", + " 3 1.406165562584493e+00 3.486476110144650e+01\n", + " 4 1.981046367008785e+00 3.935407562882144e+01\n", + " 5 7.222261105195386e-01 3.624812389853345e+01\n", + " 6 4.685797072830273e-01 3.555566002644467e+01\n", + " 7 3.156098318109074e-02 3.434490490616069e+01\n", + " 8 2.209657850974052e-03 3.442947696252523e+01\n", + " 9 6.854635293194169e-04 3.443344316235571e+01\n", + " 10 1.075121403765715e-04 3.443232650607474e+01\n", + " 11 2.196852996890357e-07 3.443211824931880e+01\n", + " 12 2.061014211109517e-09 3.443211782785873e+01\n", + " 13 1.899130372352069e-11 3.443211783182064e+01\n", + "\n", + " Results of the nle solver method:\n", + "\n", + " xsol = [31.8979059 12.96512003]\n", + " f(xsol) = [4.21995772e-12 1.85165216e-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_rk4 = [31.8979059 12.96512003] \n", + " ||p0_rk4-p0_nutopy|| = 0.005271636844688571 \n", + " shoot(p0_rk4) = [0.00280851 0.00846786]\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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4aj/e8WfAxuAT7m77ufRAuK89mbWBfwbcAnwL8Cvuftsg/ekyeK89tJeYv7MHwc+CKSBj9Sd6znAqwiDeP93o56PzF/Mf/c3RekrzWzaDSvN7JeAVxC+wGp8YxtaCd/z1FVsZXsPYcraa4EHzOw7hKlNryZMZ/iauv3XE6a7nGmKy98GngzcCOw2sx8R5vq/BNiDfoVvNXFd+z8iXPcSUAQ+WjfeAQB3f3WMdZelifPvXtpLnNf+XcBTgedH5/o+YUzLkwk/er7d3X/QiCchixLXtb8J+AzwUuBL0b/1DxNa3CutMG9395814DnIApnZ84F31GVnzOx7NdvvdvevROtt/z1PLS4rmLtPErp1vJswN/cLgbOBTwCXL+TOt+5+jNBE/EFCRP4ioJ/wK89VUbm0iBivfeV+DknCL22vmmWRFhHn3720l5g/8yeBZwBvJ9yv6bmELzHfBF7g7n8cY9VlieK69lGL+suA1xGmQz6P8O/92YTW9+fq2reUDYTgtLJAmLq4Nm/DfE7ULt/zTL0+RERERESk1anFRUREREREWp4CFxERERERaXkKXEREREREpOUpcBERERERkZanwEVERERERFqeAhcREREREWl5ClxERERERKTlKXAREREREZGWp8BFRERERERangIXERERERFpeQpcRERERESk5SlwERERERGRlqfARUREViUzO9vM3My+1ey6iIjI3BS4iIiIiIhIy1PgIiIiIiIiLU+Bi4iIrDpm9k7g4Wjz+qjLWGX5ePNqJiIis0k1uwIiIiJNcDfwOeBG4DBwc03Zrc2okIiInJ65e7PrICIisuzM7GxCq8u33f1pza2NiIjMRV3FRERERESk5SlwERERERGRlqfARUREREREWp4CFxERERERaXkKXEREREREpOUpcBERkdUqH6W6NYCISBtQ4CIiIqvVMaAA7DCzZLMrIyIip6f7uIiIyKplZl8CbgB2AXcSWmG+6+4fa2rFRETkFApcRERk1TKzjcBfAj8PbACSwCfc/dXNrJeIiJxKgYuIiIiIiLQ8jXEREREREZGWp8BFRERERERangIXERERERFpeQpcRERERESk5SlwERERERGRlqfARUREREREWp4CFxERERERaXkKXEREREREpOUpcBERERERkZanwEVERERERFqeAhcREREREWl5ClxERERERKTl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k3jrL1xAIhreMlko81//zx185kf7mlu5GLV04ALg7j9tdh1WswODE7z8777HgcGJqbz//rQdfPw1V7G2O9PEmomIiIhIRSJhvP7p5/GPr7ua3my440mp7Lz1s/fypXsea3Lt4tHygYs0z9BEgdd87AccHq7eUucPbriY//GcC0kmWnO2ChEREZHV7Nrz1vPPv/5k1vdkp/Le8i/3cNueY02sVTwUuMiM3J23fOaead3D3vPCS3jNU85pYq1EREREZC47z+jn//76k1nTFcYg50tlXv9Pd3JkZLLJNVsaBS4yo8/feYCv31cd0PWGp5/Hf37yWU2skYiIiIjM144NPXz01U+iIx2+7p8cL/C2z/2YVp1ReD5WTeBiZh1m9i4zu9/MJs3sMTP7BzPbuohzDZjZ+8zsETPLRen7zWygAVVfdkPjBd71r9WpmJ96/np+59mPa2KNRERERGShrti+hne84OKp7W/sPsJXf3LoNEe0tlURuJhZB/AN4PeBHuCLwD7gNcCdZrZjAedaB/wAeCNhquabgBHgt4AfRuVt7RO372U4mgu8J5viT2+8tGXvwCoiIiIis3vFVdv5uZqpkj/wjQcol9uz1WVVBC7A7wHXArcDj3P3l7n71cDvABuAf1jAud4LnA98HrggOtclwAeB84C/jrXmy2yyUOJj3314avu1153DmQOdTayRiIiIiCyWmfF7z7twanv3oRG+/cDRJtZo8VZ84GJmaeA3o83Xu/vUaHN3/2vgXuDnzOyJ8zjXZuCVQAH47+5ee3PMtwJHgVea2aa46r/cfvDwCU6OFwDoSCd4zbVnN7dCIiIiIrIkF27u41kXbZza/vdd7dldbMUHLsB1wACwx93vmqH8s1F6wzzO9VzCa3aLu0+7Fam754B/BZLRfm3p2/dXI/DrztvAGt2rRURERKTtPe/xW6bW/2P3kbYcpL8aApfLovTOWcrvrNtvuc7Vkn68f2hq/annr29iTUREREQkLk89vzrO5fBwjhNj+SbWZnFSza7AMtgepftnKd9ft99yneu0yuUyg4ODSz3Ngj129DjlyTEA1qYKTamDiIiIiMQr5U66NE6uUAbg/n2HuGhL/7LWoVwuL+n41RC49ETp+CzlY3X7Lde5MLNdsxTt2L17N2vWrJnPaRrmF9/f1IcXERERkQa5tg2/562GrmKVeXxn68i3kHl+4zyXiIiIiIjM02pocRmJ0u5ZyruidHSW8kadC3ffOVO+mQ0D2fmcQ0RERESkjWxb7IGrIXB5NEq3zlK+tW6/5TrX6VS6ou1b4nkWq3JDzj1Nevx2ptdu8fTaLZ5eu8XTa7d4eu2WRq/f4um1W7xmv3bbmH3IxZxWQ+ByT5ReMUt5Jf/eZT7XrNx981KOX6rK2JvZWoRkdnrtFk+v3eLptVs8vXaLp9duafT6LZ5eu8Vr99duNYxx+S4wBOwws8tnKH9JlH55Hue6GSgDTzWzjbUFZpYl3AumDHx18dUVEREREZF6Kz5wcfc88KFo80NmNjU+xczeDFwK3OruP6zJf4OZ7TazP6k710Hg00AG+LCZ1bZY/TmwAfiUu7fn7UhFRERERFrUaugqBvAe4FnAtcADZvYd4CzgauA48Jq6/dcDFwBbONVvA08GbgR2m9mPgJ3AJYT+gm9qQP1FRERERFa1Fd/iAuDuk8DTgXcTBgS9EDgb+ARwubs/uIBzHQOeBHyQ0PLyIqCf0KpzVVQuIiIiIiIxWi0tLrj7BPD70TLXvu8E3nma8pPAb0WLiIiIiIg0mLnPdi9FERERERGR1rAquoqJiIiIiEh7U+AiIiIiIiItT4GLiIiIiIi0PAUuIiIiIiLS8hS4iIiIiIhIy1PgIiIiIiIiLU+Bi4iIiIiItDwFLiucmXWb2X8xsw+a2Q/MLGdmbma/u8TzvsDMvm1mQ2Y2HK2/YI5jLjKzz5jZUTObMLMfm9mbzKyl34dmdq2Z/ZuZnTCz0eh1fNUizrM3eu1PtzxUd8zZc+x/KL5nGr8YX7tXz/E6/PNpjl3t77snmtk7zew7ZvZY9Bmwz8z+0cwuneWYln7fmVmHmb3LzO43s8noef2DmW1dxLkGzOx9ZvZI9No8YmbvN7OB0xyTMLPfjt5LE9F76zNmdvGSntgyieP1i163V5jZp8zsPjMbM7MRM/u+mb3RzNKzHPfxOd5b/y2+Zxq/uN578/j34MJZjmvb915M77u5/i2oLL9Sd1zbvu+iz/DfNbPPm9mBqL6TSzhfW3/mpZb7AWXZnQ98Ms4TmtlvAe8HisD/A3LAs4F/NbM3uvsHZjjmycA3gC7gB8Be4OeAvwaeYmYv9Ra8G6qZvQj4DCHIvwU4BjwT+LiZXebub17A6T4LrJ+l7HrgbOA7s5QfBm6eIX9oAY+/rGJ+7SruAe6eIf/7s9RhVb/vzCwF/CjaPEZ4DcaBy4FXAr9sZq9w98/OcoqWe9+ZWQfhml4LHAS+SPjbeQ3wAjO7xt33zPNc64DbCZ+TDwE3ATuB3wKeZ2ZPdvfjdccY8H+BlwCDwFcIf9c3As83s6e7+4zvx1YQ4+v3FuDtQBm4C/hXYAPwFOAq4CVm9gvuPj7L8V8DZgqAfzb/Z7O84nzv1fjELPmn/I2183svxtfuQWZ/zfqBF0brt86yT9u974B3AL8Ux4lWxGeeu2tZwQuwA/h74L8Svqy8B3Dgdxd5vscBBWASuKYu/1hUdn7dMSnCh40Db6rJ7wFui/Jf0+zXaobnuobwR+rAi2vyNwEPRPlPj+FxEsCB6HzPqis7O8r/VrNfj2a+dsCro2PeuYBjVv37LnoNvgc8H0jUvecqnwXDwPp2ed8BfxjV7Tagpyb/zVH+txdwrk9Gx3wOSNXkfyDK/8QMx7w2Krsf2FSTf2OU/2DtuVptiev1A34X+CPgzLr884FHonP98QzHfTwqe1qzX4smv/f2Ar7Ax2/b916cr91pHuM3onPdOkNZO7/v/ifwLuAF0b8DDkwu8lxt/5nX9AuiZXkX4J0sLXD5/6Lj3zdD2Zuisg/W5b80yr97hmMuj8p+3OzXZoa6vTWq200zlL0oKvvXGB7n56NzHaDmy2VUdjYt+gVyOV87Fhe46H13+scx4KfR+V5VV9aS7zsgDZyM6nb5DOX3RGVPnMe5NgMlIF/7j3FUlgWOEFqV68t2RY/xwhnO+cWo7MZmv1aNfv3meJyXR+d5eIayj9OGXyDjfu1YXODSlu+9ZXzffTc6z6/PUNaW77tZnueiApeV8pnX0n28pSVVxrHM1LXkM1F6w3yPcfe7CM2Vl5jZ2XFUMEane65fIbQ6PStqAl+K/xyl/+Tu5SWeq1Us12u3qDrofRd9Y4IfR5tnLOVcy+g6YADYE13DepXXrP4zaCbPJeqK5+6HawvcPUfo+pSM9gPAzM4BLgYmCNdiKY/fDHG+fqdzT5S2y/tqPpbrtZtRm7/3Gv7aRa/PtYQv5f+y2POscCviM09jXGTeooFb26PNUz583H2/mR0DzjKzfnev9NG9LErvnOXUdwLnRvvtja3CS1cZuHxKvd09b2Y/Aa4ELqD6D/WCmFkn4Vd0gH88za6bzOxdwBZC3+fvA19y9/xiHncZNOq1e6KZ/QXQR+in/B/u/u1Z9tX7bm7nRulsg+1b7X03n2tau99Sz/XaunNV1n/i7oUlPn4zxPn6nc5c7yuAF5vZjYQvSg8TWhF3L/FxG6khr52ZvZXQpTtH+GX7C+5+9DSP347vveV431V+APyKu588zX7t9r6L04r4zFPgIgtRCVpOuvvYLPvsJwza2k7119ztNWWzHVO7X9OZWR/hFyI4fb2vJNR7sV8gXwj0Ave6+72n2e9C4Pfr8h41s1/2FhuM2eDX7gVUWyQAft/Mvg28rP4XJPS+m+uxrgOeSPiFcqYB+NB677s4r+liztV276k6y1X/N0bpF0+zz2/Wbf+ZmX0EeKO7F5f4+I3QqNfuz+u232tmv+XuH12mx18Oy1H3V0bp/5ljv3Z738VpRXzmqauYLERPlM42SwxAJaDpqcmb67iZjmm22ro0st7/JUpn+7DNAR8BnkYYlNcPXAP8G+GD4uYW7OrUiNfuIGF81uWE12Az8IvAbsKMbF8xs+Qs9dD7rk4UIP1DtPledz9Yt0urvu/ivKaLOVc7vqdqNbz+0bSyzyJMMPGnM+xyF/DfCBO6dBFaZ14f7f/fgb9Y7GM3WNyv3ZeAFwNnEV6HSwizHWaBvzezFzb48ZdTQ+tuZlcRWqBPMnN3Jmjf912cVsRnnlpcWpyZfZbwgbYQv+LuP2hEdaLU57HPTGY77nTHLNoSX7v51GlJ9TazDYSB+WXgUzPtE32h/O912d8jTEH4T8ArgN8jzBoXm1Z77dz9a4RpLCuGCdNvfxO4g9By8P+3d7exclRlAMf/D1CVlhCKtQlYYgEFE/hSg1EQIoloP6CigAGiQUBUQrQJwgdMTCxKNJiI4SWN4FsjghLBItFoQKyC0GpAkVAUeU3BGk15kRJoK+nxwzmbu11m777c3Tuzy/+XbPbumTkz5z5zdnaeeT2N6jja79or5wTvBvLdn/7Eq4+o1Nbv+tBrHTRIbIaZVj/rwCYbZfxeXTniveRb5SfgnJTSls5xUkpXdBQ9AayJiDvJ3+XPR8TlKaWn5tKWMRhp7FJKqzqKNgEXRsTDwDXAZeRb1fY7/yYba79j5jSxG7udxjrB/W6UpmKdZ+LSfMvJexIGsXAM7QDYVt4X9THvF9vKXiTf4rVbvao6o7Cc4WO3raPshVnGHbbdZ5C/g7dX/cD34WvkDciVQ85/NstpduwASCm9GBFXAleT49CeuNjvql1Lvj3yw8CJQ1yvMs5+10uvddAgsRlmWr3qtMpH3adGZZTx203kh5neArwOWJVSWjdI/ZTSgxFxK/lZEScAPxi0DWM2tth1+C7wVeCwiDg4pfREn/Nvct8bZ7/bi7zTCnqfJvYqE9DvRmkq1nkmLg2XUjqq7ja02VzeF0fEoi7XuSzrGLf19+IyrOo6jqo6czaX2KWUXoiI/5JPkVkGPFQx2lzb3dpLNNtF+bN5pLwfMGT9riYgdu26xcF+16Hc2OAc4Cng/SmlrUM0c2z9rg+t/7nbk7YHic0w0xrl/OswlvZHxKHkI6L7kW9ZftVQrau3b/UyL8s+pbQrIh4DlpLj0EpcJrnvjbPtHyDH6vGU0j1D1Idm97tRmop1nte4qG8ppeeZ6ZwrOodHxDLyhfmb2+4oBjMXEL+jy6Rb5bNdnF6Hru2OiAXk04F2MMQTdyPiMOCd5PNGfzZk+xaX9ybuYRtb7Cp0i4P9bve6XyQ/7fw/5KRl2FMi6ux3o1ymw0yrVefIsizmMv86jPw7EREHAreTrzu7IqV0yfDNm8x1Wkf5KJZ9VRwmue+NM3Zz3QEIze53ozQV6zwTFw2qdeHbqRXDPlbef9FvnYhYQb5I7qG2Q+JNMdv/+kHgDcAdKaXtQ0y7tbJdl1IadmV5Snm/b8j64zTO2HXqFgf7XRERnyGf4vU8sDKlNJeEsc5+dzf5tsyHlmXYqRWzznVQlV+Try87LiKWtg+IiNeTn0uwC/hVq7z0lb8Be5NPt5vL/OswyvgREYvJR1oOJp9ic8GwDSsxb8W0ieu0kcaum4g4gnyq6Uvkm48AE9/3xhK7iNgHOKl8HCpxmYB+N0rTsc6brydd+mrGi3xnpgRc3GO8v5fXmzvKDyc/WXU78O628rcBW8uwwzvqLCA/7C8BF7SVLwLuKeWfqjs2FTHYn7yyTcDJbeVLyYeWE/C+fmPXMc5jpf7KHm04E1hWUX4y+fqHBHy07liNO3bAKmCfin715TKtlyrq2O9y+ankpyVvA47usw2N7XfApWX+dwOL2sq/UMrv6hj/cyUuX6+Y1o9KnZuAvdrKWxeYX1dR59wy7B/A0o7YpNLnFtTdj8YdP/L58BtKnRuBPfuY9+HkDc09O8rfBKwr07ofiLrjNObYraTiKfHkZzg9VKZ1xTT1vVF+b9vGObPU3TDN/a7i/0nA9lmGT/U6r/YF4GseFnL+Ym4sr6dLR9vcVrauok4qr+UVwy4ow/5Hvj3qLeQNx902EDvqHNM2zsbyQ7elfF4H7FF3nLq0+xTyRt8uYD3wU/ItFyt/WHrFri0WiXyL31l/7IHflflvIu+Jv5m896M1j2/UHaP5iB0zycm9JQa/BP5Zyl+mbQPffjcTO3Kys6OUPwCs7fL6yKT0O/IRp42lHVvKMm193gq8tWP81WXY2oppLQEeLcMfBX5Cfv5U6/OSijp7kE/vTMCzZdmsL8vqZeCYuvvPfMQP+FYpfwW4vlvf6qhzfNt8/lDmvZ6ZZPgp4LC6YzQPsWuVPwncUfrdH8m/qal8/xZOU98b5fe2bZzbyjjn95j3pPe7E5nZXmvFbFdH2Yn9xI4pWOfVvkB8zcNCzivHNMvryYo6vTa+PwTcSd6Luw24C/hwj3YcQc7yt5KP2GwCLqSPPXU1x+895EOnz5HvWX4vcPYs4/eK3Zoy/PI+5v3xspJ4hLwXfid5g/1m4IS6YzNfsQMuKT9Sm8mJyMslJt+m4wif/W63xGV5j+9+67V6kvod+bSFr5B/aHeQn9C+FjioYtzVzLIBRD6//crSt3aU96uA/WeZ/57kPcUPlr64tcTmiLpjM1/xK+P37FsddQ4kJzwbyDtudpJ/P+4r81lcd2zmKXZHA98j70zYSk5YniFvDJ4727ppkvveiL+3B5CT5p3AG3vMd6L7HXBWH9+1swaI3USv86I0SJIkSZIay4vzJUmSJDWeiYskSZKkxjNxkSRJktR4Ji6SJEmSGs/ERZIkSVLjmbhIkiRJajwTF0mSJEmNZ+IiSZIkqfFMXCRJkiQ1nomLJEmSpMYzcZEkSZLUeCYukqTXvIhYEhHnRsS1EXF/RLwSESkiTq+7bZKkbK+6GyBJUgMcC3yn7kZIkrrziIskSfBvYA1wNnAkcF29zZEkdfKIiyTpNS+ltAHY0PocEbtqbI4kqYJHXCRJUycibizXqFxWMeztEfFSRLwQEYfU0T5J0uBMXCRJ0+g84Gngoog4vlUYEQuAG4C9gVUppcdraZ0kaWAmLpKkqZNSeg44s3z8YUTsV/6+FFgB3JRSWltD0yRJQzJxkSRNpZTSeuCbwEHAmnLk5SJgC/DZ+lomSRqGiYskaZp9CfgLcAbwcyCAT6aUnq21VZKkgZm4SJKmVkppJ3BW+bgvcHVK6Tf1tUiSNCwTF0nStDut7e8VEeFvnyRNIFfekqSpFRHHAReTr2v5LXBs+SxJmjAmLpKkqRQR+wLXka9rORv4BPAMsDoijqqzbZKkwZm4SJKm1RrgLcBVKaXbUkr/Aj4NLACuj4iFtbZOkjSQSCnV3QZJkkYqIk4HfgxsAo5KKW1vG/Z98hGYa1JK57WVb2ybxKHAEuBR8lEagD+nlM4fd9slSdVMXCRJUyUiDgIeABYC70op3d8xfB/gr8AhwEkppVtLea8fxN+nlI4feYMlSX0xcZEkSZLUeF7jIkmSJKnxTFwkSZIkNZ6JiyRJkqTGM3GRJEmS1HgmLpIkSZIaz8RFkiRJUuOZuEiSJElqPBMXSZIkSY1n4iJJkiSp8UxcJEmSJDWeiYskSZKkxjNxkSRJktR4Ji6SJEmSGs/ERZIkSVLjmbhIkiRJajwTF0mSJEmNZ+IiSZIkqfFMXCRJkiQ13v8BKjsj9VlueBoAAAAASUVORK5CYII=\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 1.000000000000000e+00 1.414213562373095e+00\n", + " 2 5.337630192336734e-01 1.734119814433538e+00\n", + " 3 6.588879577933728e-02 1.572058663656674e+00\n", + " 4 9.572191917890302e-05 1.570796329712061e+00\n", + " 5 2.923566265536036e-13 1.570796326794897e+00\n", + " 6 6.123233995736766e-17 1.570796326794897e+00\n", + "(array([1.57079633, 0. ]), array([6.123234e-17, 0.000000e+00]), 1, 5)\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 1.967300774283730e+00 1.414213562373095e-01\n", + " 2 7.385204030659501e+00 2.683757631301588e+01\n", + " 3 3.301727242107068e+00 2.067764703459671e+01\n", + " 4 5.124424337033568e-01 3.243074079406659e+01\n", + " 5 1.072191710682703e-02 3.438919455778397e+01\n", + " 6 9.531293521908929e-06 3.443203660979187e+01\n", + " 7 9.649733708236964e-08 3.443211793181983e+01\n", + " 8 1.438328245247572e-10 3.443211783256179e+01\n", + "\n", + " p0_sol = [31.89790591 12.96512003] \n", + " shoot = [0.00280851 0.00846786] \n", + " flag = 1 \n", + " iterations = 7\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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4aj/e8WfAxuAT7m77ufRAuK89mbWBfwbcAnwL8Cvuftsg/ekyeK89tJeYv7MHwc+CKSBj9Sd6znAqwiDeP93o56PzF/Mf/c3RekrzWzaDSvN7JeAVxC+wGp8YxtaCd/z1FVsZXsPYcraa4EHzOw7hKlNryZMZ/iauv3XE6a7nGmKy98GngzcCOw2sx8R5vq/BNiDfoVvNXFd+z8iXPcSUAQ+WjfeAQB3f3WMdZelifPvXtpLnNf+XcBTgedH5/o+YUzLkwk/er7d3X/QiCchixLXtb8J+AzwUuBL0b/1DxNa3CutMG9395814DnIApnZ84F31GVnzOx7NdvvdvevROtt/z1PLS4rmLtPErp1vJswN/cLgbOBTwCXL+TOt+5+jNBE/EFCRP4ioJ/wK89VUbm0iBivfeV+DknCL22vmmWRFhHn3720l5g/8yeBZwBvJ9yv6bmELzHfBF7g7n8cY9VlieK69lGL+suA1xGmQz6P8O/92YTW9+fq2reUDYTgtLJAmLq4Nm/DfE7ULt/zTL0+RERERESk1anFRUREREREWp4CFxERERERaXkKXEREREREpOUpcBERERERkZanwEVERERERFqeAhcREREREWl5ClxERERERKTlKXAREREREZGWp8BFRERERERangIXERERERFpeQpcRERERESk5SlwERERERGRlqfARUREViUzO9vM3My+1ey6iIjI3BS4iIiIiIhIy1PgIiIiIiIiLU+Bi4iIrDpm9k7g4Wjz+qjLWGX5ePNqJiIis0k1uwIiIiJNcDfwOeBG4DBwc03Zrc2okIiInJ65e7PrICIisuzM7GxCq8u33f1pza2NiIjMRV3FRERERESk5SlwERERERGRlqfARUREREREWp4CFxERERERaXkKXEREREREpOUpcBERkdUqH6W6NYCISBtQ4CIiIqvVMaAA7DCzZLMrIyIip6f7uIiIyKplZl8CbgB2AXcSWmG+6+4fa2rFRETkFApcRERk1TKzjcBfAj8PbACSwCfc/dXNrJeIiJxKgYuIiIiIiLQ8jXEREREREZGWp8BFRERERERangIXERERERFpeQpcRERERESk5SlwERERERGRlqfARUREREREWp4CFxERERERaXkKXEREREREpOUpcBERERERkZanwEVERERERFqeAhcREREREWl5ClxERERERKTl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k3jrL1xAIhreMlko81//zx185kf7mlu5GLV04ALg7j9tdh1WswODE7z8777HgcGJqbz//rQdfPw1V7G2O9PEmomIiIhIRSJhvP7p5/GPr7ua3my440mp7Lz1s/fypXsea3Lt4tHygYs0z9BEgdd87AccHq7eUucPbriY//GcC0kmWnO2ChEREZHV7Nrz1vPPv/5k1vdkp/Le8i/3cNueY02sVTwUuMiM3J23fOaead3D3vPCS3jNU85pYq1EREREZC47z+jn//76k1nTFcYg50tlXv9Pd3JkZLLJNVsaBS4yo8/feYCv31cd0PWGp5/Hf37yWU2skYiIiIjM144NPXz01U+iIx2+7p8cL/C2z/2YVp1ReD5WTeBiZh1m9i4zu9/MJs3sMTP7BzPbuohzDZjZ+8zsETPLRen7zWygAVVfdkPjBd71r9WpmJ96/np+59mPa2KNRERERGShrti+hne84OKp7W/sPsJXf3LoNEe0tlURuJhZB/AN4PeBHuCLwD7gNcCdZrZjAedaB/wAeCNhquabgBHgt4AfRuVt7RO372U4mgu8J5viT2+8tGXvwCoiIiIis3vFVdv5uZqpkj/wjQcol9uz1WVVBC7A7wHXArcDj3P3l7n71cDvABuAf1jAud4LnA98HrggOtclwAeB84C/jrXmy2yyUOJj3314avu1153DmQOdTayRiIiIiCyWmfF7z7twanv3oRG+/cDRJtZo8VZ84GJmaeA3o83Xu/vUaHN3/2vgXuDnzOyJ8zjXZuCVQAH47+5ee3PMtwJHgVea2aa46r/cfvDwCU6OFwDoSCd4zbVnN7dCIiIiIrIkF27u41kXbZza/vdd7dldbMUHLsB1wACwx93vmqH8s1F6wzzO9VzCa3aLu0+7Fam754B/BZLRfm3p2/dXI/DrztvAGt2rRURERKTtPe/xW6bW/2P3kbYcpL8aApfLovTOWcrvrNtvuc7Vkn68f2hq/annr29iTUREREQkLk89vzrO5fBwjhNj+SbWZnFSza7AMtgepftnKd9ft99yneu0yuUyg4ODSz3Ngj129DjlyTEA1qYKTamDiIiIiMQr5U66NE6uUAbg/n2HuGhL/7LWoVwuL+n41RC49ETp+CzlY3X7Lde5MLNdsxTt2L17N2vWrJnPaRrmF9/f1IcXERERkQa5tg2/562GrmKVeXxn68i3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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 +} diff --git a/tp/turnpike.ipynb b/tp/turnpike.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..d364317342c49663a0d87e662d7224b59ef389ed --- /dev/null +++ b/tp/turnpike.ipynb @@ -0,0 +1,144 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Turnpike\n", + "\n", + "We consider the following optimal control problem:\n", + "\n", + "$$ \\int_0^{2} x^2(t)\\,\\mathrm{d}t \\to \\min, $$\n", + "\n", + "where\n", + "\n", + "$$ \\dot{x}(t) = u(t),\\quad |u(t)| \\leq 1, $$\n", + "\n", + "$$ x(0)=1,\\quad x(2)=1/2. $$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div class=\"alert alert-info\">\n", + "\n", + "**_Question._**\n", + " \n", + "Solve the optimal control problem with `Jump` and `Ipopt`.\n", + " \n", + "</div>" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "using JuMP, Ipopt\n", + "\n", + "# Create JuMP model, using Ipopt as the solver\n", + "turnpike = Model(optimizer_with_attributes(Ipopt.Optimizer, \"print_level\" => 5))\n", + "\n", + "# Parameters\n", + "t0 = 0. # initial time\n", + "tf = 2. # final time\n", + "c0 = 0. # Initial cost\n", + "x0 = 1. # Initial position\n", + "xf = 0.5 # Final position\n", + "\n", + "N = 800 # Grid size\n", + "Δt = (tf-t0)/N # Time step\n", + "\n", + "#### TO COMPLETE \n", + "#\n", + "# Define the variables (@variables), the objective (@objective), the limit constraints (@constraints)\n", + "# and the dynamic constraints (@NLconstraint)\n", + "#\n", + "# We consider the cost has an additional variable: c(0) = 0 and c(2) is free.\n", + "# The dynamics for the cost is dc = x^2 and the objective function is simple c(2)\n", + "#\n", + "\n", + "@variables(turnpike, begin\n", + "# to complete\n", + "end)\n", + "\n", + "# Objective\n", + "@objective(turnpike, \n", + " Min, \n", + "# to complete\n", + ")\n", + "\n", + "# Initial conditions\n", + "@constraints(turnpike, begin\n", + "# to complete\n", + "end)\n", + "\n", + "# Dynamics\n", + "for j in 2:N \n", + " \n", + " # cost dynamics\n", + " @NLconstraint(turnpike,\n", + "# to complete\n", + " )\n", + "\n", + " # state dynamics\n", + " @NLconstraint(turnpike,\n", + "# to complete\n", + " )\n", + "end\n", + "\n", + "#### END TO COMPLETE \n", + "\n", + "# Solve for the control and state\n", + "println(\"Solving...\")\n", + "status = optimize!(turnpike)\n", + "\n", + "# Display results\n", + "println(\"Solver status: \", status)\n", + "println(\"Minimum cost: \", objective_value(turnpike))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Can visualize the state and control variables\n", + "using Gadfly" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "c_plot = plot(x = (1:N) * Δt, y = value.(c)[:], Geom.line,\n", + " Guide.xlabel(\"Time (s)\"), Guide.ylabel(\"Cost\"))\n", + "x_plot = plot(x = (1:N) * Δt, y = value.(x)[:], Geom.line,\n", + " Guide.xlabel(\"Time (s)\"), Guide.ylabel(\"Position\"))\n", + "u_plot = plot(x = (1:N) * Δt, y = value.(u)[:], Geom.line,\n", + " Guide.xlabel(\"Time (s)\"), Guide.ylabel(\"Control\"))\n", + "draw(SVG(6inch, 6inch), vstack(c_plot, x_plot, u_plot))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.6.0", + "language": "julia", + "name": "julia-1.6" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}