Skip to content

Instantly share code, notes, and snippets.

@falcondai
Last active August 9, 2021 22:10
Show Gist options
  • Save falcondai/9767f3d39c240ac792d4aed4490275d3 to your computer and use it in GitHub Desktop.
Save falcondai/9767f3d39c240ac792d4aed4490275d3 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab notebook"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import sympy as sp"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"from scipy.integrate import solve_ivp"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [],
"source": [
"from scipy.optimize import root"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Double pendulum"
]
},
{
"cell_type": "code",
"execution_count": 331,
"metadata": {},
"outputs": [],
"source": [
"# Double pendulum\n",
"# 4 dimensional system\n",
"# Interactions: gravity, geometric constraints\n",
"\n",
"# Paramters\n",
"l1, l2, m1, m2, g = sp.symbols('l1 l2 m1 m2 g')\n",
"\n",
"# Dynamical variables\n",
"# Absolute angles from the vertical direction (gravity)\n",
"th1, th2 = sp.symbols('theta1 theta2', cls=sp.Function)\n",
"t = sp.symbols('t')"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"# Index 1 are associated with the upper mass\n",
"x1 = lambda tt : l1 * sp.sin(th1(tt))\n",
"y1 = lambda tt : -l1 * sp.cos(th1(tt))\n",
"# Index 2, the lower one. A linked system\n",
"x2 = lambda tt : x1(tt) + l2 * sp.sin(th2(tt))\n",
"y2 = lambda tt : y1(tt) - l2 * sp.cos(th2(tt))"
]
},
{
"cell_type": "code",
"execution_count": 117,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - g \\left(l_{1} m_{1} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + l_{1} m_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + l_{2} m_{2} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)}\\right)$"
],
"text/plain": [
"-g*(l1*m1*cos(theta1(t)) + l1*m2*cos(theta1(t)) + l2*m2*cos(theta2(t)))"
]
},
"execution_count": 117,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Potential energy\n",
"V = lambda tt : m1 * g * y1(tt) + m2 * g * y2(tt)\n",
"sp.simplify(V(t))"
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{l_{1}^{2} m_{1} \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2}}{2} + \\frac{m_{2} \\left(l_{1}^{2} \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2} + 2 l_{1} l_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d}{d t} \\theta_{1}{\\left(t \\right)} \\frac{d}{d t} \\theta_{2}{\\left(t \\right)} + l_{2}^{2} \\left(\\frac{d}{d t} \\theta_{2}{\\left(t \\right)}\\right)^{2}\\right)}{2}$"
],
"text/plain": [
"l1**2*m1*Derivative(theta1(t), t)**2/2 + m2*(l1**2*Derivative(theta1(t), t)**2 + 2*l1*l2*cos(theta1(t) - theta2(t))*Derivative(theta1(t), t)*Derivative(theta2(t), t) + l2**2*Derivative(theta2(t), t)**2)/2"
]
},
"execution_count": 118,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Kinetic energy\n",
"T = lambda tt : m1 * (sp.diff(x1(tt), tt)**2 + sp.diff(y1(tt), tt)**2) / 2 \\\n",
"+ m2 * (sp.diff(x2(tt), tt)**2 + sp.diff(y2(tt), tt)**2) / 2\n",
"sp.simplify(T(t))"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle g l_{1} m_{1} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + g m_{2} \\left(l_{1} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + l_{2} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)}\\right) + \\frac{l_{1}^{2} m_{1} \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2}}{2} + \\frac{m_{2} \\left(l_{1}^{2} \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2} + 2 l_{1} l_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d}{d t} \\theta_{1}{\\left(t \\right)} \\frac{d}{d t} \\theta_{2}{\\left(t \\right)} + l_{2}^{2} \\left(\\frac{d}{d t} \\theta_{2}{\\left(t \\right)}\\right)^{2}\\right)}{2}$"
],
"text/plain": [
"g*l1*m1*cos(theta1(t)) + g*m2*(l1*cos(theta1(t)) + l2*cos(theta2(t))) + l1**2*m1*Derivative(theta1(t), t)**2/2 + m2*(l1**2*Derivative(theta1(t), t)**2 + 2*l1*l2*cos(theta1(t) - theta2(t))*Derivative(theta1(t), t)*Derivative(theta2(t), t) + l2**2*Derivative(theta2(t), t)**2)/2"
]
},
"execution_count": 119,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Lagrangian\n",
"L = lambda tt : T(tt) - V(tt)\n",
"sp.simplify(L(t))"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {},
"outputs": [],
"source": [
"# Euler-Lagrange equations. Two second-order ODEs.\n",
"# Given L(x, x_dot)\n",
"# ∂_x L - d_t ∂_x_dot L = 0\n",
"el_th1 = lambda t : sp.simplify(sp.diff(L(t), th1(t)) - sp.diff(sp.diff(L(t), sp.diff(th1(t), t)), t))\n",
"el_th2 = lambda t : sp.simplify(sp.diff(L(t), th2(t)) - sp.diff(sp.diff(L(t), sp.diff(th2(t), t)), t))"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - l_{1} \\left(l_{2} m_{2} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\left(\\frac{d}{d t} \\theta_{2}{\\left(t \\right)}\\right)^{2} + l_{2} m_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d^{2}}{d t^{2}} \\theta_{2}{\\left(t \\right)} + \\left(g m_{1} + g m_{2}\\right) \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + \\left(l_{1} m_{1} + l_{1} m_{2}\\right) \\frac{d^{2}}{d t^{2}} \\theta_{1}{\\left(t \\right)}\\right)$"
],
"text/plain": [
"-l1*(l2*m2*sin(theta1(t) - theta2(t))*Derivative(theta2(t), t)**2 + l2*m2*cos(theta1(t) - theta2(t))*Derivative(theta2(t), (t, 2)) + (g*m1 + g*m2)*sin(theta1(t)) + (l1*m1 + l1*m2)*Derivative(theta1(t), (t, 2)))"
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.collect(el_th1(t), [sp.sin(th1(t)), sp.diff(th1(t), t, t)])"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle l_{2} m_{2} \\left(- g \\sin{\\left(\\theta_{2}{\\left(t \\right)} \\right)} + l_{1} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2} - l_{1} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d^{2}}{d t^{2}} \\theta_{1}{\\left(t \\right)} - l_{2} \\frac{d^{2}}{d t^{2}} \\theta_{2}{\\left(t \\right)}\\right)$"
],
"text/plain": [
"l2*m2*(-g*sin(theta2(t)) + l1*sin(theta1(t) - theta2(t))*Derivative(theta1(t), t)**2 - l1*cos(theta1(t) - theta2(t))*Derivative(theta1(t), (t, 2)) - l2*Derivative(theta2(t), (t, 2)))"
]
},
"execution_count": 122,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Simpler of the two equations but still hard to transform into a system of first-order ODEs\n",
"el_th2(t)"
]
},
{
"cell_type": "code",
"execution_count": 322,
"metadata": {},
"outputs": [],
"source": [
"# Implicit ODEs F(x, x_dot) = 0 cannot be solved directly as an IVP which handles x_dot = f(x, x_dot). Invert the \n",
"# equations and solve for theta_dot_dot.\n",
"sol_ddt = sp.solve([el_th1(t), el_th2(t)], [th1(t).diff(t, t), th2(t).diff(t, t)])"
]
},
{
"cell_type": "code",
"execution_count": 327,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - \\frac{\\frac{l_{1} m_{2} \\sin{\\left(2 \\theta_{1}{\\left(t \\right)} - 2 \\theta_{2}{\\left(t \\right)} \\right)} \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2}}{2} + l_{2} m_{2} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\left(\\frac{d}{d t} \\theta_{2}{\\left(t \\right)}\\right)^{2} + m_{1} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + \\frac{m_{2} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - 2 \\theta_{2}{\\left(t \\right)} \\right)}}{2} + \\frac{m_{2} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)}}{2}}{l_{1} \\left(m_{1} - m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + m_{2}\\right)}$"
],
"text/plain": [
"-(l1*m2*sin(2*theta1(t) - 2*theta2(t))*Derivative(theta1(t), t)**2/2 + l2*m2*sin(theta1(t) - theta2(t))*Derivative(theta2(t), t)**2 + m1*sin(theta1(t)) + m2*sin(theta1(t) - 2*theta2(t))/2 + m2*sin(theta1(t))/2)/(l1*(m1 - m2*cos(theta1(t) - theta2(t))**2 + m2))"
]
},
"execution_count": 327,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sol_ddt[th1(t).diff(t, t)].simplify()"
]
},
{
"cell_type": "code",
"execution_count": 326,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{\\left(m_{1} + m_{2}\\right) \\left(l_{1} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2} - \\sin{\\left(\\theta_{2}{\\left(t \\right)} \\right)}\\right) + \\left(l_{2} m_{2} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\left(\\frac{d}{d t} \\theta_{2}{\\left(t \\right)}\\right)^{2} + m_{1} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + m_{2} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)}\\right) \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}}{l_{2} \\left(m_{1} - m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + m_{2}\\right)}$"
],
"text/plain": [
"((m1 + m2)*(l1*sin(theta1(t) - theta2(t))*Derivative(theta1(t), t)**2 - sin(theta2(t))) + (l2*m2*sin(theta1(t) - theta2(t))*Derivative(theta2(t), t)**2 + m1*sin(theta1(t)) + m2*sin(theta1(t)))*cos(theta1(t) - theta2(t)))/(l2*(m1 - m2*cos(theta1(t) - theta2(t))**2 + m2))"
]
},
"execution_count": 326,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sol_ddt[th2(t).diff(t, t)].simplify()"
]
},
{
"cell_type": "code",
"execution_count": 334,
"metadata": {},
"outputs": [],
"source": [
"n_el_sol_th1 = sp.lambdify([l1, l2, m1, m2, g,\n",
" th1(t), th2(t), th1(t).diff(t), th2(t).diff(t)],\n",
" sol_ddt[th1(t).diff(t, t)].simplify())\n",
"n_el_sol_th2 = sp.lambdify([l1, l2, m1, m2, g,\n",
" th1(t), th2(t), th1(t).diff(t), th2(t).diff(t)],\n",
" sol_ddt[th2(t).diff(t, t)].simplify())\n",
"n_th1_dtdt = lambda x : n_el_sol_th1(l1_, l2_, m1_, m2_, g_, *x)\n",
"n_th2_dtdt = lambda x : n_el_sol_th2(l1_, l2_, m1_, m2_, g_, *x)\n",
"el_sol_ode = lambda t, x : [x[2], x[3], n_th1_dtdt(x), n_th2_dtdt(x)]"
]
},
{
"cell_type": "code",
"execution_count": 342,
"metadata": {},
"outputs": [],
"source": [
"# Total energy\n",
"E = sp.lambdify([l1, l2, m1, m2, g, th1(t), th2(t), th1(t).diff(t), th2(t).diff(t)], T(t) + V(t))"
]
},
{
"cell_type": "code",
"execution_count": 378,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x11fb30278>"
]
},
"execution_count": 378,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# A solution that seems non-chaotic at first...\n",
"r = solve_ivp(el_sol_ode, [0, 160], [2, 1, 0, 0], method='LSODA')\n",
"plot(r.t, r.y[0], label=r'$\\theta_1$')\n",
"plot(r.t, r.y[1], label=r'$\\theta_2$')\n",
"xlabel('t')\n",
"legend()"
]
},
{
"cell_type": "code",
"execution_count": 379,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x11fb87518>]"
]
},
"execution_count": 379,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(E(l1_, l2_, m1_, m2_, g_, *r.y))"
]
},
{
"cell_type": "code",
"execution_count": 388,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x11fe7dc88>"
]
},
"execution_count": 388,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# A solution that seems non-chaotic at first...\n",
"r = solve_ivp(el_sol_ode, [0, 160], [2, 1, 0, 0], vectorized=True, method='Radau')\n",
"plot(r.t, r.y[0], label=r'$\\theta_1$')\n",
"plot(r.t, r.y[1], label=r'$\\theta_2$')\n",
"xlabel('t')\n",
"legend()"
]
},
{
"cell_type": "code",
"execution_count": 389,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x11feea080>]"
]
},
"execution_count": 389,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(E(l1_, l2_, m1_, m2_, g_, *r.y))"
]
},
{
"cell_type": "code",
"execution_count": 280,
"metadata": {},
"outputs": [],
"source": [
"# The problem is that in this implicit ODE form, the IVP cannot be numerically integrated directly. \n",
"# F(x, y) = 0 or more generally, DAE (differential algebraic equations) \n",
"# requires us to first invert y as a function of x, say y = g(x). However, this y might\n",
"# not be a function (non-unique satisfying y, e.g., hysteresis). One necessary condition is ∂F/∂y ≠ 0."
]
},
{
"cell_type": "code",
"execution_count": 291,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - l_{1} \\left(l_{1} m_{1} + l_{1} m_{2}\\right)$"
],
"text/plain": [
"-l1*(l1*m1 + l1*m2)"
]
},
"execution_count": 291,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"el_th1(t).diff(th1(t).diff(t, t))"
]
},
{
"cell_type": "code",
"execution_count": 292,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - l_{1} l_{2} m_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}$"
],
"text/plain": [
"-l1*l2*m2*cos(theta1(t) - theta2(t))"
]
},
"execution_count": 292,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"el_th1(t).diff(th2(t).diff(t, t))"
]
},
{
"cell_type": "code",
"execution_count": 293,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - l_{1} l_{2} m_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}$"
],
"text/plain": [
"-l1*l2*m2*cos(theta1(t) - theta2(t))"
]
},
"execution_count": 293,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"el_th2(t).diff(th1(t).diff(t, t))"
]
},
{
"cell_type": "code",
"execution_count": 294,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - l_{2}^{2} m_{2}$"
],
"text/plain": [
"-l2**2*m2"
]
},
"execution_count": 294,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"el_th2(t).diff(th2(t).diff(t, t))"
]
},
{
"cell_type": "code",
"execution_count": 295,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle l_{1}^{2} l_{2}^{2} m_{1} m_{2} - l_{1}^{2} l_{2}^{2} m_{2}^{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + l_{1}^{2} l_{2}^{2} m_{2}^{2}$"
],
"text/plain": [
"l1**2*l2**2*m1*m2 - l1**2*l2**2*m2**2*cos(theta1(t) - theta2(t))**2 + l1**2*l2**2*m2**2"
]
},
"execution_count": 295,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.Matrix([\n",
" [el_th1(t).diff(th1(t).diff(t, t)), el_th1(t).diff(th2(t).diff(t, t))],\n",
" [el_th2(t).diff(th1(t).diff(t, t)), el_th2(t).diff(th2(t).diff(t, t))],\n",
"]).det()\n",
"# Which has det > 0"
]
},
{
"cell_type": "code",
"execution_count": 349,
"metadata": {},
"outputs": [],
"source": [
"# Specifically we will solve both E-L equations for ddt, which can be numerically done via root finding.\n",
"from scipy.optimize import root\n",
"\n",
"# Numerical functions of E-L\n",
"n_el_th1 = sp.lambdify([l1, l2, m1, m2, g, \n",
" th1(t), th2(t), th1(t).diff(t), th2(t).diff(t), th1(t).diff(t, t), th2(t).diff(t, t)], \n",
" el_th1(t))\n",
"n_el_th2 = sp.lambdify([l1, l2, m1, m2, g, \n",
" th1(t), th2(t), th1(t).diff(t), th2(t).diff(t), th1(t).diff(t, t), th2(t).diff(t, t)], \n",
" el_th2(t))"
]
},
{
"cell_type": "code",
"execution_count": 351,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
" fjac: array([[-0.96539235, -0.26080186],\n",
" [ 0.26080186, -0.96539235]])\n",
" fun: array([-0., 0.])\n",
" message: 'The solution converged.'\n",
" nfev: 5\n",
" qtf: array([3.75548243e-10, 2.90712347e-10])\n",
" r: array([2.07169655, 0.78240557, 0.82448051])\n",
" status: 1\n",
" success: True\n",
" x: array([-0.6976553 , -0.53235266])"
]
},
"execution_count": 351,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"l1_, l2_, m1_, m2_, g_ = 1, 1, 1, 1, 1\n",
"# Vectors x = [th1, th2, th1_dot, th2_dot], y =[th1_dot_dot, th2_dot_dot], and z = concat(x, y)\n",
"n_el_f = lambda x, y : [n_el_th1(l1_, l2_, m1_, m2_, g_, *x, *y), n_el_th2(l1_, l2_, m1_, m2_, g_, *x, *y)]\n",
"# Quick test to solve for theta_dot_dot\n",
"root(lambda y : n_el_f([1, 2, 0, 0], y), [0, 0])"
]
},
{
"cell_type": "code",
"execution_count": 352,
"metadata": {},
"outputs": [],
"source": [
"# Provide the system of four first-order ODEs.\n",
"el_ode = lambda t, x : concatenate([x[2:4], root(lambda y : n_el_f(x, y), [0, 0]).x])"
]
},
{
"cell_type": "code",
"execution_count": 353,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0. , 0. , -0.79852899, -0.41002393])"
]
},
"execution_count": 353,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"el_ode(0, [2, 1, 0, 0])"
]
},
{
"cell_type": "code",
"execution_count": 373,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x11f919208>"
]
},
"execution_count": 373,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# A solution that seems non-chaotic at first...\n",
"r = solve_ivp(el_ode, [0, 160], [2, 1, 0, 0], method='Radau')\n",
"plot(r.t, r.y[0], label=r'$\\theta_1$')\n",
"plot(r.t, r.y[1], label=r'$\\theta_2$')\n",
"xlabel('t')\n",
"legend()"
]
},
{
"cell_type": "code",
"execution_count": 374,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x11f9648d0>]"
]
},
"execution_count": 374,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(E(l1_, l2_, m1_, m2_, g_, *r.y))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Hamiltonian mechanics"
]
},
{
"cell_type": "code",
"execution_count": 199,
"metadata": {},
"outputs": [],
"source": [
"# Hamiltonian formulation\n",
"# Step 1. Conjugate momenta p1 to theta1 (=: q1) and p2, theta2 (=: q2)\n",
"p1_exp = lambda t : sp.diff(L(t), sp.diff(th1(t), t))\n",
"p2_exp = lambda t : sp.diff(L(t), sp.diff(th2(t), t))"
]
},
{
"cell_type": "code",
"execution_count": 200,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle l_{1} l_{2} m_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d}{d t} \\theta_{2}{\\left(t \\right)} + \\left(l_{1}^{2} m_{1} + l_{1}^{2} m_{2}\\right) \\frac{d}{d t} \\theta_{1}{\\left(t \\right)}$"
],
"text/plain": [
"l1*l2*m2*cos(theta1(t) - theta2(t))*Derivative(theta2(t), t) + (l1**2*m1 + l1**2*m2)*Derivative(theta1(t), t)"
]
},
"execution_count": 200,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.collect(sp.simplify(p1_exp(t)).expand(), [th1(t).diff(t), th2(t).diff(t)])"
]
},
{
"cell_type": "code",
"execution_count": 201,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle l_{2} m_{2} \\left(l_{1} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d}{d t} \\theta_{1}{\\left(t \\right)} + l_{2} \\frac{d}{d t} \\theta_{2}{\\left(t \\right)}\\right)$"
],
"text/plain": [
"l2*m2*(l1*cos(theta1(t) - theta2(t))*Derivative(theta1(t), t) + l2*Derivative(theta2(t), t))"
]
},
"execution_count": 201,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.simplify(p2_exp(t))"
]
},
{
"cell_type": "code",
"execution_count": 160,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}l_{1}^{2} \\left(m_{1} + m_{2}\\right) & l_{1} l_{2} m_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\\\l_{1} l_{2} m_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} & l_{2}^{2} m_{2}\\end{matrix}\\right]$"
],
"text/plain": [
"Matrix([\n",
"[ l1**2*(m1 + m2), l1*l2*m2*cos(theta1(t) - theta2(t))],\n",
"[l1*l2*m2*cos(theta1(t) - theta2(t)), l2**2*m2]])"
]
},
"execution_count": 160,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Note that above form a linear system of equations of dt(theta1) and dt(theta2):\n",
"# p = M dt(theta)\n",
"M = \\\n",
"sp.Matrix([\n",
" [l1**2 * (m1 + m2), l1 * l2 * m2 * sp.cos(th1(t) - th2(t))],\n",
" [l1 * l2 * m2 * sp.cos(th1(t) - th2(t)), l2 ** 2 * m2],\n",
"])\n",
"M"
]
},
{
"cell_type": "code",
"execution_count": 163,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}\\frac{1}{l_{1}^{2} m_{1} - l_{1}^{2} m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + l_{1}^{2} m_{2}} & - \\frac{\\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}}{l_{1} l_{2} m_{1} - l_{1} l_{2} m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + l_{1} l_{2} m_{2}}\\\\- \\frac{\\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}}{l_{1} l_{2} m_{1} - l_{1} l_{2} m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + l_{1} l_{2} m_{2}} & \\frac{m_{1} + m_{2}}{l_{2}^{2} m_{1} m_{2} - l_{2}^{2} m_{2}^{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + l_{2}^{2} m_{2}^{2}}\\end{matrix}\\right]$"
],
"text/plain": [
"Matrix([\n",
"[ 1/(l1**2*m1 - l1**2*m2*cos(theta1(t) - theta2(t))**2 + l1**2*m2), -cos(theta1(t) - theta2(t))/(l1*l2*m1 - l1*l2*m2*cos(theta1(t) - theta2(t))**2 + l1*l2*m2)],\n",
"[-cos(theta1(t) - theta2(t))/(l1*l2*m1 - l1*l2*m2*cos(theta1(t) - theta2(t))**2 + l1*l2*m2), (m1 + m2)/(l2**2*m1*m2 - l2**2*m2**2*cos(theta1(t) - theta2(t))**2 + l2**2*m2**2)]])"
]
},
"execution_count": 163,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Let N = M^-1\n",
"N = M.inv()\n",
"N"
]
},
{
"cell_type": "code",
"execution_count": 202,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle l_{1}^{2} l_{2}^{2} m_{1} m_{2} + l_{1}^{2} l_{2}^{2} m_{2}^{2} \\left(1 - \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)$"
],
"text/plain": [
"l1**2*l2**2*m1*m2 + l1**2*l2**2*m2**2*(1 - cos(theta1(t) - theta2(t))**2)"
]
},
"execution_count": 202,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# M is always invertible since det(M) > 0.\n",
"sp.collect(M.det(), l1 ** 2 * l2 ** 2 * m2 ** 2)"
]
},
{
"cell_type": "code",
"execution_count": 207,
"metadata": {},
"outputs": [],
"source": [
"# Step 2. Solve dt(theta1) and dt(theta2) in terms of conjugate momenta p1 and p2\n",
"# dt(theta) = N p\n",
"p1, p2 = sp.symbols('p1 p2', cls=sp.Function)\n",
"dt_th1_exp, dt_th2_exp = N * sp.Matrix(2, 1, [p1(t), p2(t)])"
]
},
{
"cell_type": "code",
"execution_count": 411,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{Derivative(theta1(t), t): (-l1*p2(t)*cos(theta1(t) - theta2(t)) + l2*p1(t))/(l1**2*l2*(m1 - m2*cos(theta1(t) - theta2(t))**2 + m2)),\n",
" Derivative(theta2(t), t): (l1*(m1 + m2)*p2(t) - l2*m2*p1(t)*cos(theta1(t) - theta2(t)))/(l1*l2**2*m2*(m1 - m2*cos(theta1(t) - theta2(t))**2 + m2))}"
]
},
"execution_count": 411,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Alternatively, we can solve for theta_dot automatically.\n",
"sp.solve([p1_exp(t) - p1(t), p2_exp(t) - p2(t)], [th1(t).diff(t), th2(t).diff(t)])"
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - \\frac{\\operatorname{p_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}}{l_{1} l_{2} m_{1} - l_{1} l_{2} m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + l_{1} l_{2} m_{2}} + \\frac{\\operatorname{p_{1}}{\\left(t \\right)}}{l_{1}^{2} m_{1} - l_{1}^{2} m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + l_{1}^{2} m_{2}}$"
],
"text/plain": [
"-p2(t)*cos(theta1(t) - theta2(t))/(l1*l2*m1 - l1*l2*m2*cos(theta1(t) - theta2(t))**2 + l1*l2*m2) + p1(t)/(l1**2*m1 - l1**2*m2*cos(theta1(t) - theta2(t))**2 + l1**2*m2)"
]
},
"execution_count": 208,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dt_th1_exp"
]
},
{
"cell_type": "code",
"execution_count": 209,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{\\left(m_{1} + m_{2}\\right) \\operatorname{p_{2}}{\\left(t \\right)}}{l_{2}^{2} m_{1} m_{2} - l_{2}^{2} m_{2}^{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + l_{2}^{2} m_{2}^{2}} - \\frac{\\operatorname{p_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}}{l_{1} l_{2} m_{1} - l_{1} l_{2} m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + l_{1} l_{2} m_{2}}$"
],
"text/plain": [
"(m1 + m2)*p2(t)/(l2**2*m1*m2 - l2**2*m2**2*cos(theta1(t) - theta2(t))**2 + l2**2*m2**2) - p1(t)*cos(theta1(t) - theta2(t))/(l1*l2*m1 - l1*l2*m2*cos(theta1(t) - theta2(t))**2 + l1*l2*m2)"
]
},
"execution_count": 209,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dt_th2_exp"
]
},
{
"cell_type": "code",
"execution_count": 170,
"metadata": {},
"outputs": [],
"source": [
"# Step 3. Define H(p, q) in terms of (p1, p2, q1, q2). Substitute dt(q) with p.\n",
"H = lambda t : p1(t) * th1(t).diff(t) + p2(t) * th2(t).diff(t) - L(t)"
]
},
{
"cell_type": "code",
"execution_count": 210,
"metadata": {},
"outputs": [],
"source": [
"Ht = sp.simplify(H(t))\n",
"Ht_pq = sp.simplify(Ht.subs(th1(t).diff(t), dt_th1_exp).subs(th2(t).diff(t), dt_th2_exp))"
]
},
{
"cell_type": "code",
"execution_count": 399,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - g l_{1} m_{1} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - g m_{2} \\left(l_{1} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + l_{2} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)}\\right) - \\frac{l_{1}^{2} m_{1} \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2}}{2} - \\frac{m_{2} \\left(l_{1}^{2} \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2} + 2 l_{1} l_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d}{d t} \\theta_{1}{\\left(t \\right)} \\frac{d}{d t} \\theta_{2}{\\left(t \\right)} + l_{2}^{2} \\left(\\frac{d}{d t} \\theta_{2}{\\left(t \\right)}\\right)^{2}\\right)}{2} + \\operatorname{p_{1}}{\\left(t \\right)} \\frac{d}{d t} \\theta_{1}{\\left(t \\right)} + \\operatorname{p_{2}}{\\left(t \\right)} \\frac{d}{d t} \\theta_{2}{\\left(t \\right)}$"
],
"text/plain": [
"-g*l1*m1*cos(theta1(t)) - g*m2*(l1*cos(theta1(t)) + l2*cos(theta2(t))) - l1**2*m1*Derivative(theta1(t), t)**2/2 - m2*(l1**2*Derivative(theta1(t), t)**2 + 2*l1*l2*cos(theta1(t) - theta2(t))*Derivative(theta1(t), t)*Derivative(theta2(t), t) + l2**2*Derivative(theta2(t), t)**2)/2 + p1(t)*Derivative(theta1(t), t) + p2(t)*Derivative(theta2(t), t)"
]
},
"execution_count": 399,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.collect(Ht, [l1, sp.cos(th1(t)), l1, g])"
]
},
{
"cell_type": "code",
"execution_count": 211,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{- g l_{1}^{3} l_{2}^{2} m_{1}^{2} m_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + g l_{1}^{3} l_{2}^{2} m_{1} m_{2}^{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - 2 g l_{1}^{3} l_{2}^{2} m_{1} m_{2}^{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + g l_{1}^{3} l_{2}^{2} m_{2}^{3} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - g l_{1}^{3} l_{2}^{2} m_{2}^{3} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - g l_{1}^{2} l_{2}^{3} m_{1} m_{2}^{2} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)} + g l_{1}^{2} l_{2}^{3} m_{2}^{3} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)} - g l_{1}^{2} l_{2}^{3} m_{2}^{3} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)} + \\frac{l_{1}^{2} m_{1} \\operatorname{p_{2}}^{2}{\\left(t \\right)}}{2} + \\frac{l_{1}^{2} m_{2} \\operatorname{p_{2}}^{2}{\\left(t \\right)}}{2} - l_{1} l_{2} m_{2} \\operatorname{p_{1}}{\\left(t \\right)} \\operatorname{p_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + \\frac{l_{2}^{2} m_{2} \\operatorname{p_{1}}^{2}{\\left(t \\right)}}{2}}{l_{1}^{2} l_{2}^{2} m_{2} \\left(m_{1} - m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + m_{2}\\right)}$"
],
"text/plain": [
"(-g*l1**3*l2**2*m1**2*m2*cos(theta1(t)) + g*l1**3*l2**2*m1*m2**2*cos(theta1(t) - theta2(t))**2*cos(theta1(t)) - 2*g*l1**3*l2**2*m1*m2**2*cos(theta1(t)) + g*l1**3*l2**2*m2**3*cos(theta1(t) - theta2(t))**2*cos(theta1(t)) - g*l1**3*l2**2*m2**3*cos(theta1(t)) - g*l1**2*l2**3*m1*m2**2*cos(theta2(t)) + g*l1**2*l2**3*m2**3*cos(theta1(t) - theta2(t))**2*cos(theta2(t)) - g*l1**2*l2**3*m2**3*cos(theta2(t)) + l1**2*m1*p2(t)**2/2 + l1**2*m2*p2(t)**2/2 - l1*l2*m2*p1(t)*p2(t)*cos(theta1(t) - theta2(t)) + l2**2*m2*p1(t)**2/2)/(l1**2*l2**2*m2*(m1 - m2*cos(theta1(t) - theta2(t))**2 + m2))"
]
},
"execution_count": 211,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Ht_pq"
]
},
{
"cell_type": "code",
"execution_count": 394,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{l_{1}^{3} \\left(- g l_{2}^{2} m_{1}^{2} m_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + g l_{2}^{2} m_{1} m_{2}^{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - 2 g l_{2}^{2} m_{1} m_{2}^{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + g l_{2}^{2} m_{2}^{3} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - g l_{2}^{2} m_{2}^{3} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)}\\right) + l_{1}^{2} \\left(- g l_{2}^{3} m_{1} m_{2}^{2} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)} + g l_{2}^{3} m_{2}^{3} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)} - g l_{2}^{3} m_{2}^{3} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)}\\right) - l_{1} l_{2} m_{2} \\operatorname{p_{1}}{\\left(t \\right)} \\operatorname{p_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + \\frac{l_{2}^{2} m_{2} \\operatorname{p_{1}}^{2}{\\left(t \\right)}}{2} + \\left(\\frac{l_{1}^{2} m_{1}}{2} + \\frac{l_{1}^{2} m_{2}}{2}\\right) \\operatorname{p_{2}}^{2}{\\left(t \\right)}}{l_{1}^{2} l_{2}^{2} m_{2} \\left(m_{1} - m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + m_{2}\\right)}$"
],
"text/plain": [
"(l1**3*(-g*l2**2*m1**2*m2*cos(theta1(t)) + g*l2**2*m1*m2**2*cos(theta1(t) - theta2(t))**2*cos(theta1(t)) - 2*g*l2**2*m1*m2**2*cos(theta1(t)) + g*l2**2*m2**3*cos(theta1(t) - theta2(t))**2*cos(theta1(t)) - g*l2**2*m2**3*cos(theta1(t))) + l1**2*(-g*l2**3*m1*m2**2*cos(theta2(t)) + g*l2**3*m2**3*cos(theta1(t) - theta2(t))**2*cos(theta2(t)) - g*l2**3*m2**3*cos(theta2(t))) - l1*l2*m2*p1(t)*p2(t)*cos(theta1(t) - theta2(t)) + l2**2*m2*p1(t)**2/2 + (l1**2*m1/2 + l1**2*m2/2)*p2(t)**2)/(l1**2*l2**2*m2*(m1 - m2*cos(theta1(t) - theta2(t))**2 + m2))"
]
},
"execution_count": 394,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.collect(Ht_pq, [p2(t), p1(t), l1, l2])"
]
},
{
"cell_type": "code",
"execution_count": 360,
"metadata": {},
"outputs": [],
"source": [
"n_Ht_pq = sp.lambdify([l1, l2, m1, m2, g, th1(t), th2(t), p1(t), p2(t)], Ht_pq)"
]
},
{
"cell_type": "code",
"execution_count": 213,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{d}{d t} \\operatorname{p_{1}}{\\left(t \\right)} = \\frac{- g l_{1}^{3} l_{2}^{2} m_{1}^{3} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + 2 g l_{1}^{3} l_{2}^{2} m_{1}^{2} m_{2} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 3 g l_{1}^{3} l_{2}^{2} m_{1}^{2} m_{2} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - g l_{1}^{3} l_{2}^{2} m_{1} m_{2}^{2} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} \\cos^{4}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 4 g l_{1}^{3} l_{2}^{2} m_{1} m_{2}^{2} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 3 g l_{1}^{3} l_{2}^{2} m_{1} m_{2}^{2} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - g l_{1}^{3} l_{2}^{2} m_{2}^{3} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} \\cos^{4}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 2 g l_{1}^{3} l_{2}^{2} m_{2}^{3} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - g l_{1}^{3} l_{2}^{2} m_{2}^{3} \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + \\frac{l_{1}^{2} m_{1} \\operatorname{p_{2}}^{2}{\\left(t \\right)} \\sin{\\left(2 \\theta_{1}{\\left(t \\right)} - 2 \\theta_{2}{\\left(t \\right)} \\right)}}{2} + \\frac{l_{1}^{2} m_{2} \\operatorname{p_{2}}^{2}{\\left(t \\right)} \\sin{\\left(2 \\theta_{1}{\\left(t \\right)} - 2 \\theta_{2}{\\left(t \\right)} \\right)}}{2} - l_{1} l_{2} m_{1} \\operatorname{p_{1}}{\\left(t \\right)} \\operatorname{p_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - l_{1} l_{2} m_{2} \\operatorname{p_{1}}{\\left(t \\right)} \\operatorname{p_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - l_{1} l_{2} m_{2} \\operatorname{p_{1}}{\\left(t \\right)} \\operatorname{p_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + \\frac{l_{2}^{2} m_{2} \\operatorname{p_{1}}^{2}{\\left(t \\right)} \\sin{\\left(2 \\theta_{1}{\\left(t \\right)} - 2 \\theta_{2}{\\left(t \\right)} \\right)}}{2}}{l_{1}^{2} l_{2}^{2} \\left(m_{1}^{2} - 2 m_{1} m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 2 m_{1} m_{2} + m_{2}^{2} \\cos^{4}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 2 m_{2}^{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + m_{2}^{2}\\right)}$"
],
"text/plain": [
"Eq(Derivative(p1(t), t), (-g*l1**3*l2**2*m1**3*sin(theta1(t)) + 2*g*l1**3*l2**2*m1**2*m2*sin(theta1(t))*cos(theta1(t) - theta2(t))**2 - 3*g*l1**3*l2**2*m1**2*m2*sin(theta1(t)) - g*l1**3*l2**2*m1*m2**2*sin(theta1(t))*cos(theta1(t) - theta2(t))**4 + 4*g*l1**3*l2**2*m1*m2**2*sin(theta1(t))*cos(theta1(t) - theta2(t))**2 - 3*g*l1**3*l2**2*m1*m2**2*sin(theta1(t)) - g*l1**3*l2**2*m2**3*sin(theta1(t))*cos(theta1(t) - theta2(t))**4 + 2*g*l1**3*l2**2*m2**3*sin(theta1(t))*cos(theta1(t) - theta2(t))**2 - g*l1**3*l2**2*m2**3*sin(theta1(t)) + l1**2*m1*p2(t)**2*sin(2*theta1(t) - 2*theta2(t))/2 + l1**2*m2*p2(t)**2*sin(2*theta1(t) - 2*theta2(t))/2 - l1*l2*m1*p1(t)*p2(t)*sin(theta1(t) - theta2(t)) - l1*l2*m2*p1(t)*p2(t)*sin(theta1(t) - theta2(t))*cos(theta1(t) - theta2(t))**2 - l1*l2*m2*p1(t)*p2(t)*sin(theta1(t) - theta2(t)) + l2**2*m2*p1(t)**2*sin(2*theta1(t) - 2*theta2(t))/2)/(l1**2*l2**2*(m1**2 - 2*m1*m2*cos(theta1(t) - theta2(t))**2 + 2*m1*m2 + m2**2*cos(theta1(t) - theta2(t))**4 - 2*m2**2*cos(theta1(t) - theta2(t))**2 + m2**2)))"
]
},
"execution_count": 213,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Step 4. We arrive at the four first-order ODEs. dt(p) = -∂_q H, dt(q) = ∂_p H.\n",
"sp.Eq(p1(t).diff(t), sp.simplify(-Ht_pq.diff(th1(t))))"
]
},
{
"cell_type": "code",
"execution_count": 223,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{d}{d t} \\operatorname{p_{2}}{\\left(t \\right)} = - \\frac{2 \\left(- g l_{1}^{3} l_{2}^{2} m_{1}^{2} m_{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + g l_{1}^{3} l_{2}^{2} m_{1} m_{2}^{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - 2 g l_{1}^{3} l_{2}^{2} m_{1} m_{2}^{2} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + g l_{1}^{3} l_{2}^{2} m_{2}^{3} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - g l_{1}^{3} l_{2}^{2} m_{2}^{3} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - g l_{1}^{2} l_{2}^{3} m_{1} m_{2}^{2} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)} + g l_{1}^{2} l_{2}^{3} m_{2}^{3} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)} - g l_{1}^{2} l_{2}^{3} m_{2}^{3} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)} + \\frac{l_{1}^{2} m_{1} \\operatorname{p_{2}}^{2}{\\left(t \\right)}}{2} + \\frac{l_{1}^{2} m_{2} \\operatorname{p_{2}}^{2}{\\left(t \\right)}}{2} - l_{1} l_{2} m_{2} \\operatorname{p_{1}}{\\left(t \\right)} \\operatorname{p_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + \\frac{l_{2}^{2} m_{2} \\operatorname{p_{1}}^{2}{\\left(t \\right)}}{2}\\right) \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}}{l_{1}^{2} l_{2}^{2} \\left(m_{1} - m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + m_{2}\\right)^{2}} - \\frac{2 g l_{1}^{3} l_{2}^{2} m_{1} m_{2}^{2} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + 2 g l_{1}^{3} l_{2}^{2} m_{2}^{3} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + g l_{1}^{2} l_{2}^{3} m_{1} m_{2}^{2} \\sin{\\left(\\theta_{2}{\\left(t \\right)} \\right)} + 2 g l_{1}^{2} l_{2}^{3} m_{2}^{3} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)} - g l_{1}^{2} l_{2}^{3} m_{2}^{3} \\sin{\\left(\\theta_{2}{\\left(t \\right)} \\right)} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + g l_{1}^{2} l_{2}^{3} m_{2}^{3} \\sin{\\left(\\theta_{2}{\\left(t \\right)} \\right)} - l_{1} l_{2} m_{2} \\operatorname{p_{1}}{\\left(t \\right)} \\operatorname{p_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}}{l_{1}^{2} l_{2}^{2} m_{2} \\left(m_{1} - m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + m_{2}\\right)}$"
],
"text/plain": [
"Eq(Derivative(p2(t), t), -2*(-g*l1**3*l2**2*m1**2*m2*cos(theta1(t)) + g*l1**3*l2**2*m1*m2**2*cos(theta1(t) - theta2(t))**2*cos(theta1(t)) - 2*g*l1**3*l2**2*m1*m2**2*cos(theta1(t)) + g*l1**3*l2**2*m2**3*cos(theta1(t) - theta2(t))**2*cos(theta1(t)) - g*l1**3*l2**2*m2**3*cos(theta1(t)) - g*l1**2*l2**3*m1*m2**2*cos(theta2(t)) + g*l1**2*l2**3*m2**3*cos(theta1(t) - theta2(t))**2*cos(theta2(t)) - g*l1**2*l2**3*m2**3*cos(theta2(t)) + l1**2*m1*p2(t)**2/2 + l1**2*m2*p2(t)**2/2 - l1*l2*m2*p1(t)*p2(t)*cos(theta1(t) - theta2(t)) + l2**2*m2*p1(t)**2/2)*sin(theta1(t) - theta2(t))*cos(theta1(t) - theta2(t))/(l1**2*l2**2*(m1 - m2*cos(theta1(t) - theta2(t))**2 + m2)**2) - (2*g*l1**3*l2**2*m1*m2**2*sin(theta1(t) - theta2(t))*cos(theta1(t) - theta2(t))*cos(theta1(t)) + 2*g*l1**3*l2**2*m2**3*sin(theta1(t) - theta2(t))*cos(theta1(t) - theta2(t))*cos(theta1(t)) + g*l1**2*l2**3*m1*m2**2*sin(theta2(t)) + 2*g*l1**2*l2**3*m2**3*sin(theta1(t) - theta2(t))*cos(theta1(t) - theta2(t))*cos(theta2(t)) - g*l1**2*l2**3*m2**3*sin(theta2(t))*cos(theta1(t) - theta2(t))**2 + g*l1**2*l2**3*m2**3*sin(theta2(t)) - l1*l2*m2*p1(t)*p2(t)*sin(theta1(t) - theta2(t)))/(l1**2*l2**2*m2*(m1 - m2*cos(theta1(t) - theta2(t))**2 + m2)))"
]
},
"execution_count": 223,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.Eq(p2(t).diff(t), -Ht_pq.diff(th2(t)))"
]
},
{
"cell_type": "code",
"execution_count": 390,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - \\frac{g l_{1}^{2} l_{2}^{3} m_{1}^{2} m_{2} \\sin{\\left(\\theta_{2}{\\left(t \\right)} \\right)} - 2 g l_{1}^{2} l_{2}^{3} m_{1} m_{2}^{2} \\sin{\\left(\\theta_{2}{\\left(t \\right)} \\right)} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 2 g l_{1}^{2} l_{2}^{3} m_{1} m_{2}^{2} \\sin{\\left(\\theta_{2}{\\left(t \\right)} \\right)} + g l_{1}^{2} l_{2}^{3} m_{2}^{3} \\sin{\\left(\\theta_{2}{\\left(t \\right)} \\right)} \\cos^{4}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 2 g l_{1}^{2} l_{2}^{3} m_{2}^{3} \\sin{\\left(\\theta_{2}{\\left(t \\right)} \\right)} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + g l_{1}^{2} l_{2}^{3} m_{2}^{3} \\sin{\\left(\\theta_{2}{\\left(t \\right)} \\right)} + \\frac{l_{1}^{2} m_{1} \\operatorname{p_{2}}^{2}{\\left(t \\right)} \\sin{\\left(2 \\theta_{1}{\\left(t \\right)} - 2 \\theta_{2}{\\left(t \\right)} \\right)}}{2} + \\frac{l_{1}^{2} m_{2} \\operatorname{p_{2}}^{2}{\\left(t \\right)} \\sin{\\left(2 \\theta_{1}{\\left(t \\right)} - 2 \\theta_{2}{\\left(t \\right)} \\right)}}{2} - l_{1} l_{2} m_{1} \\operatorname{p_{1}}{\\left(t \\right)} \\operatorname{p_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - l_{1} l_{2} m_{2} \\operatorname{p_{1}}{\\left(t \\right)} \\operatorname{p_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - l_{1} l_{2} m_{2} \\operatorname{p_{1}}{\\left(t \\right)} \\operatorname{p_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + \\frac{l_{2}^{2} m_{2} \\operatorname{p_{1}}^{2}{\\left(t \\right)} \\sin{\\left(2 \\theta_{1}{\\left(t \\right)} - 2 \\theta_{2}{\\left(t \\right)} \\right)}}{2}}{l_{1}^{2} l_{2}^{2} \\left(m_{1}^{2} - 2 m_{1} m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 2 m_{1} m_{2} + m_{2}^{2} \\cos^{4}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 2 m_{2}^{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + m_{2}^{2}\\right)}$"
],
"text/plain": [
"-(g*l1**2*l2**3*m1**2*m2*sin(theta2(t)) - 2*g*l1**2*l2**3*m1*m2**2*sin(theta2(t))*cos(theta1(t) - theta2(t))**2 + 2*g*l1**2*l2**3*m1*m2**2*sin(theta2(t)) + g*l1**2*l2**3*m2**3*sin(theta2(t))*cos(theta1(t) - theta2(t))**4 - 2*g*l1**2*l2**3*m2**3*sin(theta2(t))*cos(theta1(t) - theta2(t))**2 + g*l1**2*l2**3*m2**3*sin(theta2(t)) + l1**2*m1*p2(t)**2*sin(2*theta1(t) - 2*theta2(t))/2 + l1**2*m2*p2(t)**2*sin(2*theta1(t) - 2*theta2(t))/2 - l1*l2*m1*p1(t)*p2(t)*sin(theta1(t) - theta2(t)) - l1*l2*m2*p1(t)*p2(t)*sin(theta1(t) - theta2(t))*cos(theta1(t) - theta2(t))**2 - l1*l2*m2*p1(t)*p2(t)*sin(theta1(t) - theta2(t)) + l2**2*m2*p1(t)**2*sin(2*theta1(t) - 2*theta2(t))/2)/(l1**2*l2**2*(m1**2 - 2*m1*m2*cos(theta1(t) - theta2(t))**2 + 2*m1*m2 + m2**2*cos(theta1(t) - theta2(t))**4 - 2*m2**2*cos(theta1(t) - theta2(t))**2 + m2**2))"
]
},
"execution_count": 390,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"-Ht_pq.diff(th2(t)).simplify()"
]
},
{
"cell_type": "code",
"execution_count": 218,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{d}{d t} \\theta_{1}{\\left(t \\right)} = \\frac{- l_{1} l_{2} m_{2} \\operatorname{p_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + l_{2}^{2} m_{2} \\operatorname{p_{1}}{\\left(t \\right)}}{l_{1}^{2} l_{2}^{2} m_{2} \\left(m_{1} - m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + m_{2}\\right)}$"
],
"text/plain": [
"Eq(Derivative(theta1(t), t), (-l1*l2*m2*p2(t)*cos(theta1(t) - theta2(t)) + l2**2*m2*p1(t))/(l1**2*l2**2*m2*(m1 - m2*cos(theta1(t) - theta2(t))**2 + m2)))"
]
},
"execution_count": 218,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.Eq(th1(t).diff(t), Ht_pq.diff(p1(t)))"
]
},
{
"cell_type": "code",
"execution_count": 217,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{d}{d t} \\theta_{2}{\\left(t \\right)} = \\frac{l_{1}^{2} m_{1} \\operatorname{p_{2}}{\\left(t \\right)} + l_{1}^{2} m_{2} \\operatorname{p_{2}}{\\left(t \\right)} - l_{1} l_{2} m_{2} \\operatorname{p_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}}{l_{1}^{2} l_{2}^{2} m_{2} \\left(m_{1} - m_{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + m_{2}\\right)}$"
],
"text/plain": [
"Eq(Derivative(theta2(t), t), (l1**2*m1*p2(t) + l1**2*m2*p2(t) - l1*l2*m2*p1(t)*cos(theta1(t) - theta2(t)))/(l1**2*l2**2*m2*(m1 - m2*cos(theta1(t) - theta2(t))**2 + m2)))"
]
},
"execution_count": 217,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.Eq(th2(t).diff(t), Ht_pq.diff(p2(t)))"
]
},
{
"cell_type": "code",
"execution_count": 238,
"metadata": {},
"outputs": [],
"source": [
"# Numerical functions\n",
"dt_th1 = sp.lambdify([l1, l2, m1, m2, g, th1(t), th2(t), p1(t), p2(t)], Ht_pq.diff(p1(t)))\n",
"dt_th2 = sp.lambdify([l1, l2, m1, m2, g, th1(t), th2(t), p1(t), p2(t)], Ht_pq.diff(p2(t)))\n",
"dt_p1 = sp.lambdify([l1, l2, m1, m2, g, th1(t), th2(t), p1(t), p2(t)], -Ht_pq.diff(th1(t)))\n",
"dt_p2 = sp.lambdify([l1, l2, m1, m2, g, th1(t), th2(t), p1(t), p2(t)], -Ht_pq.diff(th2(t)))"
]
},
{
"cell_type": "code",
"execution_count": 365,
"metadata": {
"collapsed": true,
"jupyter": {
"outputs_hidden": true
}
},
"outputs": [
{
"data": {
"text/plain": [
" message: 'The solver successfully reached the end of the integration interval.'\n",
" nfev: 1622\n",
" njev: 0\n",
" nlu: 0\n",
" sol: None\n",
" status: 0\n",
" success: True\n",
" t: array([0.00000000e+00, 6.95195481e-04, 7.64715029e-03, 7.71666984e-02,\n",
" 7.72362180e-01, 1.66934221e+00, 2.03781248e+00, 2.41591665e+00,\n",
" 2.73938080e+00, 3.06284494e+00, 3.49149019e+00, 3.93831495e+00,\n",
" 4.53894321e+00, 5.35132459e+00, 6.25024258e+00, 7.02989742e+00,\n",
" 7.45337662e+00, 7.78046026e+00, 8.12241215e+00, 8.46436405e+00,\n",
" 8.93018239e+00, 9.39600074e+00, 1.01539266e+01, 1.09948650e+01,\n",
" 1.18546093e+01, 1.22574994e+01, 1.25374780e+01, 1.27762779e+01,\n",
" 1.30150778e+01, 1.32813338e+01, 1.37102163e+01, 1.40553841e+01,\n",
" 1.44009252e+01, 1.47464664e+01, 1.52338500e+01, 1.59982406e+01,\n",
" 1.64167135e+01, 1.66970415e+01, 1.68622971e+01, 1.70275528e+01,\n",
" 1.73454541e+01, 1.79585248e+01, 1.85715956e+01, 1.89395672e+01,\n",
" 1.92828107e+01, 1.97047099e+01, 2.02324024e+01, 2.04878222e+01,\n",
" 2.07726889e+01, 2.10575557e+01, 2.14429691e+01, 2.21397711e+01,\n",
" 2.28789722e+01, 2.36867715e+01, 2.44177427e+01, 2.50156730e+01,\n",
" 2.53961853e+01, 2.56837527e+01, 2.60112013e+01, 2.63386500e+01,\n",
" 2.68092463e+01, 2.73324990e+01, 2.82796910e+01, 2.92454103e+01,\n",
" 3.00754594e+01, 3.03830495e+01, 3.06156131e+01, 3.07900929e+01,\n",
" 3.09096199e+01, 3.10439884e+01, 3.12234755e+01, 3.14685774e+01,\n",
" 3.19708672e+01, 3.27396049e+01, 3.35359794e+01, 3.44393420e+01,\n",
" 3.55451489e+01, 3.60653591e+01, 3.64110062e+01, 3.65591334e+01,\n",
" 3.67467051e+01, 3.70450400e+01, 3.73464263e+01, 3.78446149e+01,\n",
" 3.82336486e+01, 3.84030996e+01, 3.86121941e+01, 3.88395136e+01,\n",
" 3.92708539e+01, 3.97741910e+01, 4.01629613e+01, 4.04807736e+01,\n",
" 4.07161086e+01, 4.09514435e+01, 4.13531151e+01, 4.17779866e+01,\n",
" 4.23286386e+01, 4.25983783e+01, 4.27504756e+01, 4.29030381e+01,\n",
" 4.31116263e+01, 4.34995255e+01, 4.39835188e+01, 4.45097379e+01,\n",
" 4.48310463e+01, 4.51796623e+01, 4.55577798e+01, 4.62094608e+01,\n",
" 4.68109874e+01, 4.72468717e+01, 4.74510573e+01, 4.75944160e+01,\n",
" 4.77773484e+01, 4.79711387e+01, 4.83779749e+01, 4.93460851e+01,\n",
" 5.03720469e+01, 5.14615002e+01, 5.22620312e+01, 5.25443662e+01,\n",
" 5.27959618e+01, 5.30062026e+01, 5.32164435e+01, 5.34266843e+01,\n",
" 5.38143183e+01, 5.44453861e+01, 5.51398022e+01, 5.58935285e+01,\n",
" 5.66532381e+01, 5.74991946e+01, 5.83858467e+01, 5.87970796e+01,\n",
" 5.91254629e+01, 5.93730018e+01, 5.95733486e+01, 5.97736955e+01,\n",
" 6.02071192e+01, 6.09069725e+01, 6.16305621e+01, 6.22528982e+01,\n",
" 6.28642694e+01, 6.32605653e+01, 6.36811721e+01, 6.41145582e+01,\n",
" 6.45690850e+01, 6.50236117e+01, 6.55803012e+01, 6.61434094e+01,\n",
" 6.70531958e+01, 6.79629822e+01, 6.82508122e+01, 6.84427357e+01,\n",
" 6.86346591e+01, 6.89038596e+01, 6.95801270e+01, 7.02946661e+01,\n",
" 7.08694866e+01, 7.14586234e+01, 7.21361722e+01, 7.24960889e+01,\n",
" 7.28560057e+01, 7.33032107e+01, 7.36898366e+01, 7.40772548e+01,\n",
" 7.47924084e+01, 7.54684966e+01, 7.60878254e+01, 7.67106285e+01,\n",
" 7.72528708e+01, 7.74951575e+01, 7.76810540e+01, 7.78669506e+01,\n",
" 7.80951392e+01, 7.84541545e+01, 7.89709529e+01, 7.92069581e+01,\n",
" 7.93826290e+01, 7.95786691e+01, 7.98200826e+01, 8.00000000e+01])\n",
" t_events: None\n",
" y: array([[ 2.00000000e+00, 1.99999978e+00, 1.99997341e+00,\n",
" 1.99729159e+00, 1.72235100e+00, 8.31992784e-01,\n",
" 4.88846828e-01, 3.30121253e-01, 1.27477599e-01,\n",
" -2.97499198e-01, -1.03181216e+00, -1.65807121e+00,\n",
" -2.07319642e+00, -2.11765018e+00, -1.55807449e+00,\n",
" -6.62825037e-01, -2.96820095e-01, -2.39207062e-01,\n",
" -3.66062204e-02, 4.22594330e-01, 1.21520549e+00,\n",
" 1.84711267e+00, 2.34893049e+00, 2.47425892e+00,\n",
" 2.05025241e+00, 1.55762355e+00, 1.09430941e+00,\n",
" 5.65130226e-01, -3.37891126e-02, -5.66831532e-01,\n",
" -1.20040697e+00, -1.38088560e+00, -1.16483745e+00,\n",
" -9.47039069e-01, -8.79072130e-01, -9.50551490e-01,\n",
" -6.72834553e-01, -2.03151109e-01, 2.15227816e-01,\n",
" 5.02202235e-01, 8.15113835e-01, 9.15574630e-01,\n",
" 9.63131497e-01, 1.12025656e+00, 1.40888825e+00,\n",
" 1.36124800e+00, 6.24502439e-01, 1.06990576e-01,\n",
" -6.22859551e-01, -1.21900070e+00, -1.80562316e+00,\n",
" -2.37711082e+00, -2.40064705e+00, -2.00398618e+00,\n",
" -1.17086621e+00, -3.91233127e-01, -1.46496439e-01,\n",
" -1.08869476e-01, 1.69473771e-01, 6.43122945e-01,\n",
" 1.43180974e+00, 2.07076698e+00, 2.60421858e+00,\n",
" 2.58307028e+00, 1.67009845e+00, 1.13960405e+00,\n",
" 7.12942229e-01, 3.45392038e-01, 3.04015793e-02,\n",
" -3.60604629e-01, -7.69893845e-01, -1.21758997e+00,\n",
" -2.02687042e+00, -2.88407252e+00, -3.26275911e+00,\n",
" -3.51406315e+00, -3.94350089e+00, -4.46263013e+00,\n",
" -5.00929388e+00, -5.35871784e+00, -5.81096692e+00,\n",
" -6.39667897e+00, -6.97136374e+00, -7.69674608e+00,\n",
" -7.72388346e+00, -7.53956982e+00, -7.23208194e+00,\n",
" -7.02381501e+00, -6.83218253e+00, -6.73837717e+00,\n",
" -6.46370046e+00, -5.92760738e+00, -5.44365744e+00,\n",
" -5.22583871e+00, -5.30986159e+00, -5.80427091e+00,\n",
" -6.05702214e+00, -5.84936695e+00, -5.59415426e+00,\n",
" -5.41705028e+00, -5.38111179e+00, -5.78614057e+00,\n",
" -6.66913188e+00, -7.45037429e+00, -7.89299596e+00,\n",
" -8.33400465e+00, -8.56579988e+00, -8.33942818e+00,\n",
" -7.35373139e+00, -6.53603894e+00, -6.12588831e+00,\n",
" -5.76102084e+00, -5.28780056e+00, -4.93577643e+00,\n",
" -4.40856942e+00, -3.72013329e+00, -3.33983905e+00,\n",
" -2.71189680e+00, -1.60073933e+00, -1.11440883e+00,\n",
" -6.34983314e-01, -9.61872002e-02, 4.69497741e-01,\n",
" 8.93305921e-01, 1.58310844e+00, 2.51607234e+00,\n",
" 2.99402745e+00, 3.12134223e+00, 3.10946088e+00,\n",
" 2.67604321e+00, 1.27200581e+00, 4.93185859e-01,\n",
" -7.35219529e-02, -6.00711395e-01, -1.10378060e+00,\n",
" -1.43418202e+00, -1.82621032e+00, -1.84165076e+00,\n",
" -1.70475805e+00, -1.43214987e+00, -1.08044771e+00,\n",
" -9.84550779e-01, -8.39735597e-01, -2.00651419e-01,\n",
" 7.70375069e-01, 1.43329032e+00, 1.65021615e+00,\n",
" 1.53652072e+00, 1.35873967e+00, 8.38538101e-01,\n",
" 3.77104781e-01, -1.43593228e-01, -5.44746873e-01,\n",
" -8.99778005e-01, -1.33464452e+00, -1.59835122e+00,\n",
" -1.82385107e+00, -1.79941484e+00, -9.26801802e-01,\n",
" -9.58274353e-02, 6.34003476e-01, 1.07403725e+00,\n",
" 1.04327037e+00, 1.16048412e+00, 1.59885010e+00,\n",
" 1.99956711e+00, 2.44682750e+00, 2.52255168e+00,\n",
" 2.06777953e+00, 1.68789645e+00, 1.32608229e+00,\n",
" 9.95703131e-01, 6.04533380e-01, -6.66618988e-02,\n",
" -8.25824611e-01, -8.41193190e-01, -6.44263210e-01,\n",
" -3.87145673e-01, -3.12827198e-01, -3.83742823e-01],\n",
" [ 2.00000000e+00, 2.00000000e+00, 2.00000000e+00,\n",
" 2.00000111e+00, 2.00290909e+00, 1.65915521e+00,\n",
" 1.11363591e+00, 2.28200004e-01, -4.91450425e-01,\n",
" -9.14532652e-01, -1.01568164e+00, -1.07477216e+00,\n",
" -1.39549345e+00, -1.74657628e+00, -1.95496236e+00,\n",
" -1.62993127e+00, -8.94206818e-01, -2.01408988e-02,\n",
" 7.62270020e-01, 1.18622244e+00, 1.19627445e+00,\n",
" 1.13107669e+00, 1.25289096e+00, 1.06569840e+00,\n",
" 3.91424146e-01, 1.23493815e-01, 1.29443115e-01,\n",
" 3.78241933e-01, 7.10287215e-01, 7.36881783e-01,\n",
" 2.03300987e-01, -4.94373877e-01, -1.40564197e+00,\n",
" -2.20252051e+00, -3.08098426e+00, -4.56968758e+00,\n",
" -5.36265022e+00, -6.09189740e+00, -6.69380417e+00,\n",
" -7.12972852e+00, -7.74705518e+00, -8.91687075e+00,\n",
" -9.99074391e+00, -1.07126769e+01, -1.16140199e+01,\n",
" -1.25401382e+01, -1.32414699e+01, -1.32166561e+01,\n",
" -1.28098579e+01, -1.26040868e+01, -1.27650604e+01,\n",
" -1.34527807e+01, -1.39832689e+01, -1.42228427e+01,\n",
" -1.43653798e+01, -1.38672946e+01, -1.30177612e+01,\n",
" -1.21973341e+01, -1.15186183e+01, -1.11803514e+01,\n",
" -1.12287688e+01, -1.13041680e+01, -1.13514141e+01,\n",
" -1.20594487e+01, -1.31595725e+01, -1.33460940e+01,\n",
" -1.32699185e+01, -1.30502247e+01, -1.27799479e+01,\n",
" -1.24151776e+01, -1.21108922e+01, -1.19525617e+01,\n",
" -1.21939793e+01, -1.30651194e+01, -1.35900010e+01,\n",
" -1.35070752e+01, -1.27434019e+01, -1.23955387e+01,\n",
" -1.19730147e+01, -1.16456768e+01, -1.12569114e+01,\n",
" -1.10371470e+01, -1.12338130e+01, -1.22065206e+01,\n",
" -1.31156657e+01, -1.36027383e+01, -1.42476175e+01,\n",
" -1.47737240e+01, -1.56060643e+01, -1.66267837e+01,\n",
" -1.74025956e+01, -1.83008804e+01, -1.90908171e+01,\n",
" -1.96633370e+01, -2.06788521e+01, -2.19259662e+01,\n",
" -2.33510818e+01, -2.41314738e+01, -2.47184985e+01,\n",
" -2.52391548e+01, -2.58220537e+01, -2.68038975e+01,\n",
" -2.75562328e+01, -2.74533454e+01, -2.70432130e+01,\n",
" -2.64724858e+01, -2.59562339e+01, -2.48868288e+01,\n",
" -2.38774552e+01, -2.38298005e+01, -2.41014672e+01,\n",
" -2.44551752e+01, -2.49453817e+01, -2.52616420e+01,\n",
" -2.56298082e+01, -2.61757051e+01, -2.62614739e+01,\n",
" -2.53786479e+01, -2.44918198e+01, -2.44564839e+01,\n",
" -2.46683861e+01, -2.51276680e+01, -2.56313573e+01,\n",
" -2.58578164e+01, -2.58139230e+01, -2.50319709e+01,\n",
" -2.42239074e+01, -2.38843991e+01, -2.41215739e+01,\n",
" -2.51305434e+01, -2.66154493e+01, -2.68529137e+01,\n",
" -2.65888979e+01, -2.60543026e+01, -2.54582755e+01,\n",
" -2.50637943e+01, -2.44193309e+01, -2.32698484e+01,\n",
" -2.23922595e+01, -2.17309175e+01, -2.08739687e+01,\n",
" -2.00265297e+01, -1.90321746e+01, -1.85018115e+01,\n",
" -1.85152924e+01, -1.81479161e+01, -1.72335062e+01,\n",
" -1.62756503e+01, -1.50306373e+01, -1.36010456e+01,\n",
" -1.29706338e+01, -1.22774679e+01, -1.17429531e+01,\n",
" -1.12427204e+01, -1.01864704e+01, -9.17978133e+00,\n",
" -8.24289750e+00, -7.22865126e+00, -6.55929455e+00,\n",
" -6.68260890e+00, -6.53729173e+00, -5.68227140e+00,\n",
" -4.64615094e+00, -3.85601608e+00, -2.78982026e+00,\n",
" -1.81556185e+00, -5.96355385e-01, 4.78004554e-01,\n",
" 1.12568433e+00, 1.51448966e+00, 1.85846366e+00,\n",
" 2.08777873e+00, 2.19511488e+00, 1.93908060e+00,\n",
" 7.64507207e-01, 8.07207850e-02, -5.60957473e-01,\n",
" -1.29097799e+00, -1.97735088e+00, -2.45121893e+00],\n",
" [ 0.00000000e+00, -1.26427897e-03, -1.39071246e-02,\n",
" -1.40392831e-01, -1.45284643e+00, -2.87425786e+00,\n",
" -2.97433768e+00, -3.14160515e+00, -3.48308785e+00,\n",
" -3.77141013e+00, -3.34634330e+00, -2.44880537e+00,\n",
" -1.18472563e+00, 2.08203596e-01, 1.88854474e+00,\n",
" 2.93864665e+00, 2.85310058e+00, 2.96802844e+00,\n",
" 3.33176772e+00, 3.62176400e+00, 3.01644183e+00,\n",
" 2.12072933e+00, 7.89195003e-01, -2.82915342e-01,\n",
" -1.88183833e+00, -2.97359081e+00, -3.50201351e+00,\n",
" -3.57791772e+00, -3.89400960e+00, -3.77308780e+00,\n",
" -2.35997812e+00, -1.35698326e+00, -8.05191123e-01,\n",
" 1.03065488e-01, 9.88209512e-01, 2.15859601e+00,\n",
" 2.32864843e+00, 1.62410885e+00, 1.78520206e+00,\n",
" 2.28230680e+00, 2.46763459e+00, 1.62023583e+00,\n",
" 5.62299711e-01, -3.41034761e-01, -1.07303294e+00,\n",
" -2.02419458e+00, -3.81704169e+00, -3.96413577e+00,\n",
" -3.69122034e+00, -3.52087509e+00, -2.53197602e+00,\n",
" -8.05161030e-01, 2.02092712e-01, 1.39578598e+00,\n",
" 2.83373548e+00, 3.14721541e+00, 2.98758832e+00,\n",
" 3.08855460e+00, 3.45738435e+00, 3.57074243e+00,\n",
" 2.79925042e+00, 1.82487450e+00, 5.48894849e-01,\n",
" -4.14758730e-01, -2.64775297e+00, -3.51196769e+00,\n",
" -3.74006175e+00, -3.50603855e+00, -3.19975208e+00,\n",
" -3.28714165e+00, -3.60697724e+00, -3.48725029e+00,\n",
" -2.22745483e+00, -7.17990565e-01, -4.54583988e-01,\n",
" -9.12783671e-01, -2.01502191e+00, -2.60034748e+00,\n",
" -2.68836339e+00, -2.70733762e+00, -3.29809840e+00,\n",
" -3.79174701e+00, -3.20962783e+00, -1.08690970e+00,\n",
" -2.40617964e-01, -1.73053592e-01, 4.17922974e-01,\n",
" 1.17310682e+00, 2.01650122e+00, 2.51282887e+00,\n",
" 2.31207444e+00, 1.20451002e+00, 1.54559834e+00,\n",
" 1.67743612e+00, 8.91394528e-01, 4.07951659e-01,\n",
" 5.05096194e-01, -1.51167491e-01, -4.39010115e-01,\n",
" -3.22384273e-01, -5.56649344e-01, -1.99401313e+00,\n",
" -3.17004431e+00, -2.30891011e+00, -1.32687544e+00,\n",
" -7.92347206e-01, -4.44649160e-01, 9.12884219e-01,\n",
" 3.16423217e+00, 3.73138344e+00, 3.25143043e+00,\n",
" 2.73650288e+00, 2.85552672e+00, 3.01301480e+00,\n",
" 2.65777065e+00, 1.28315082e+00, 5.05029902e-01,\n",
" 1.02223991e+00, 3.02803798e+00, 3.62002354e+00,\n",
" 3.60712413e+00, 3.15108892e+00, 3.58313204e+00,\n",
" 3.75143397e+00, 2.98489522e+00, 1.16704302e+00,\n",
" 2.73087948e-01, 1.08274416e-01, 7.53652611e-02,\n",
" -5.79882123e-01, -2.79346188e+00, -3.63062789e+00,\n",
" -3.32589822e+00, -2.37040794e+00, -2.37362536e+00,\n",
" -2.57100316e+00, -2.23123027e+00, -9.62448858e-01,\n",
" 3.18602803e-01, 1.27018317e+00, 1.96872787e+00,\n",
" 2.51728660e+00, 3.34526743e+00, 4.27680192e+00,\n",
" 4.05018195e+00, 2.92684356e+00, 1.61465645e+00,\n",
" 4.02357901e-01, -1.61722512e+00, -2.93342886e+00,\n",
" -2.32580300e+00, -2.14653699e+00, -2.84822772e+00,\n",
" -3.12337298e+00, -2.06049366e+00, -3.19497119e-01,\n",
" 1.04078608e+00, 2.25034482e+00, 4.06935796e+00,\n",
" 4.41945671e+00, 4.01608650e+00, 2.73472871e+00,\n",
" 2.03882707e+00, 1.54906496e+00, 7.99413232e-01,\n",
" -3.80784732e-02, -7.77218305e-01, -1.48509229e+00,\n",
" -1.74974456e+00, -1.90070453e+00, -2.38405071e+00,\n",
" -3.01154922e+00, -3.51146265e+00, -3.24497816e+00,\n",
" -1.20901579e+00, -8.06656756e-01, -8.74941756e-01,\n",
" -3.49717182e-01, 4.08123338e-03, -5.03004997e-02],\n",
" [ 0.00000000e+00, -6.32139462e-04, -6.95353409e-03,\n",
" -7.01674730e-02, -7.01859219e-01, -1.79282410e+00,\n",
" -2.49538706e+00, -2.85215491e+00, -2.62139375e+00,\n",
" -2.07394131e+00, -1.62654435e+00, -1.28055854e+00,\n",
" -8.52782256e-01, -6.39931364e-02, 7.95956300e-01,\n",
" 1.84065132e+00, 2.69655214e+00, 2.89177939e+00,\n",
" 2.50997235e+00, 1.81314697e+00, 1.32036578e+00,\n",
" 8.76279939e-01, 2.36642350e-01, -5.54391760e-01,\n",
" -7.76186046e-01, -5.53055459e-01, -5.94289697e-01,\n",
" -9.25554097e-01, -8.56057521e-01, -9.98722005e-01,\n",
" -1.95323760e+00, -2.24352980e+00, -1.86319135e+00,\n",
" -1.85092939e+00, -1.75075660e+00, -2.13200693e+00,\n",
" -2.07412453e+00, -1.27166941e+00, -1.41734687e+00,\n",
" -1.93531854e+00, -2.23009307e+00, -1.83036653e+00,\n",
" -1.77256349e+00, -1.78357368e+00, -2.03199178e+00,\n",
" -2.10001201e+00, -9.97947026e-01, -8.73123150e-01,\n",
" -8.81664010e-01, -5.68116777e-01, -7.63637658e-01,\n",
" -9.83761247e-01, -3.42157877e-01, 5.28771685e-01,\n",
" 1.23266191e+00, 2.32201092e+00, 2.95358718e+00,\n",
" 2.93937486e+00, 2.34979254e+00, 1.67719121e+00,\n",
" 1.19604280e+00, 6.63253138e-01, -2.57511386e-01,\n",
" -9.55686635e-01, 2.65280527e-02, 4.91014352e-01,\n",
" 5.09365446e-01, 1.97796289e-01, -1.12528695e-01,\n",
" 2.31314517e-02, 4.80478621e-01, 6.40829037e-01,\n",
" 9.80620272e-02, -4.73912445e-01, -1.01050155e-01,\n",
" 6.87513641e-01, 1.23861046e+00, 9.43018144e-01,\n",
" 2.28952006e-01, -1.15913189e-01, 6.90531095e-02,\n",
" 1.65417968e-01, -4.83977920e-01, -2.10534544e+00,\n",
" -2.14453007e+00, -1.76274901e+00, -1.78155046e+00,\n",
" -1.99194186e+00, -2.12268237e+00, -2.32050438e+00,\n",
" -2.22607124e+00, -1.41566574e+00, -2.05778722e+00,\n",
" -2.45765382e+00, -2.00201676e+00, -1.82849203e+00,\n",
" -2.55097744e+00, -2.31624553e+00, -2.28702565e+00,\n",
" -2.64160090e+00, -2.65357452e+00, -1.39079394e+00,\n",
" 1.37720912e-01, 3.51149006e-01, 2.64917059e-01,\n",
" 7.41147924e-01, 1.33902201e+00, 1.19290070e+00,\n",
" -3.21626231e-01, -7.94845517e-01, -4.81681593e-01,\n",
" -1.68516158e-01, -6.13692950e-01, -1.13093556e+00,\n",
" -1.44640206e+00, -8.41433104e-01, 1.20178923e-01,\n",
" 4.64172028e-01, -5.01577570e-01, -7.24238904e-01,\n",
" -4.66915091e-01, 9.00801107e-02, -3.69605668e-01,\n",
" -6.79362772e-01, -3.69222949e-01, 5.82225634e-01,\n",
" 6.65278971e-01, 5.18272664e-02, -6.36720254e-01,\n",
" -7.32261748e-01, 6.00310617e-01, 1.23104580e+00,\n",
" 1.11793262e+00, 5.46231609e-01, 9.64660723e-01,\n",
" 1.56725694e+00, 1.92108415e+00, 1.35105304e+00,\n",
" 9.74235872e-01, 1.21751671e+00, 2.03687402e+00,\n",
" 2.54582663e+00, 2.64560647e+00, 2.10636325e+00,\n",
" 1.93106454e+00, 2.03672024e+00, 1.75266622e+00,\n",
" 1.37724279e+00, 1.64242132e+00, 2.11701086e+00,\n",
" 1.36511284e+00, 1.15102832e+00, 1.88372564e+00,\n",
" 2.28228188e+00, 1.82886791e+00, 1.33388976e+00,\n",
" 1.46283235e+00, 1.94416070e+00, 1.77272932e+00,\n",
" 1.88612117e+00, 2.21861054e+00, 2.74780618e+00,\n",
" 2.43442464e+00, 1.90474601e+00, 1.15532393e+00,\n",
" 1.16140611e+00, 1.46923982e+00, 1.48315763e+00,\n",
" 5.85609016e-01, 4.68914589e-02, -2.24429780e-02,\n",
" 9.61271938e-02, 8.04373904e-02, -6.83900741e-01,\n",
" -2.70797518e+00, -2.85042992e+00, -2.50216899e+00,\n",
" -2.68413194e+00, -2.64472539e+00, -2.32768890e+00]])"
]
},
"execution_count": 365,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Parameter values\n",
"l1_, l2_, m1_, m2_, g_ = 1, 1, 1, 1, 1\n",
"# Numerical vector field\n",
"f = lambda t, x : [\n",
" dt_th1(l1_, l2_, m1_, m2_, g_, *x), \n",
" dt_th2(l1_, l2_, m1_, m2_, g_, *x), \n",
" dt_p1(l1_, l2_, m1_, m2_, g_, *x),\n",
" dt_p2(l1_, l2_, m1_, m2_, g_, *x),\n",
"]\n",
"# A chaotic solution\n",
"r = solve_ivp(f, [0, 80], [2, 2, 0, 0])\n",
"r"
]
},
{
"cell_type": "code",
"execution_count": 366,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x11d69c978>"
]
},
"execution_count": 366,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(r.t, r.y[0], label=r'$\\theta_1$')\n",
"plot(r.t, r.y[1], label=r'$\\theta_2$')\n",
"xlabel('t')\n",
"legend()"
]
},
{
"cell_type": "code",
"execution_count": 416,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x12055f278>]"
]
},
"execution_count": 416,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(r.t, n_Ht_pq(l1_, l2_, m1_, m2_, g_, *r.y))"
]
},
{
"cell_type": "code",
"execution_count": 446,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Draw the trajectory of the masses (smoothly)\n",
"th1_0, th2_0 = 2, 1\n",
"for i, tmax in enumerate([10, 20]):\n",
" # plot(\n",
" # l1_ * sin(r.y[0]), \n",
" # -l1_ * cos(r.y[0]), \n",
" # label='mass 1',\n",
" # )\n",
" subplot(1, 2, i+1)\n",
" # Initial position of the mass 2\n",
" scatter(\n",
" l1_ * sin(th1_0) + l2_ * sin(th2_0), \n",
" -l1_ * cos(th1_0) - l2_ * cos(th2_0), \n",
" c='black', label='pivot', marker='.')\n",
" t_dense = linspace(0, tmax, tmax * 100)\n",
" r1 = solve_ivp(f, [0, 80], [th1_0, th2_0, 0, 0], t_eval=t_dense, method='Radau')\n",
"\n",
" plot(\n",
" l1_ * sin(r1.y[0]) + l2_ * sin(r1.y[1]), \n",
" -l1_ * cos(r1.y[0]) - l2_ * cos(r1.y[1]), \n",
" label='mass 2 (2, 2)',\n",
" )\n",
"\n",
" # A nearby solution\n",
" # r2 = solve_ivp(f, [0, 80], [2.01, 2, 0, 0], t_eval=t_dense, method='Radau')\n",
" # A different numerical solution\n",
" r2 = solve_ivp(f, [0, 80], [th1_0, th2_0, 0, 0], t_eval=t_dense, method='LSODA')\n",
" plot(\n",
" l1_ * sin(r2.y[0]) + l2_ * sin(r2.y[1]), \n",
" -l1_ * cos(r2.y[0]) - l2_ * cos(r2.y[1]), \n",
" label='mass 2 (2.01, 2)',\n",
" )\n",
" r3 = solve_ivp(f, [0, 80], [th1_0, th2_0, 0, 0], t_eval=t_dense, method='BDF')\n",
" plot(\n",
" l1_ * sin(r3.y[0]) + l2_ * sin(r3.y[1]), \n",
" -l1_ * cos(r3.y[0]) - l2_ * cos(r3.y[1]), \n",
" label='mass 2 (2.01, 2)',\n",
" )\n",
"\n",
" # legend()"
]
},
{
"cell_type": "code",
"execution_count": 447,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1267ad208>]"
]
},
"execution_count": 447,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(r1.t, r1.y[0], ls='--', c='blue')\n",
"plot(r1.t, r1.y[1], c='blue')\n",
"plot(r2.t, r2.y[0], ls='--', c='red')\n",
"plot(r2.t, r2.y[1], c='red')\n",
"plot(r3.t, r3.y[0], ls='--', c='green')\n",
"plot(r3.t, r3.y[1], c='green')"
]
},
{
"cell_type": "code",
"execution_count": 448,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x1268166a0>"
]
},
"execution_count": 448,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(r1.t, n_Ht_pq(l1_, l2_, m1_, m2_, g_, *r1.y), label='Radau')\n",
"plot(r2.t, n_Ht_pq(l1_, l2_, m1_, m2_, g_, *r2.y), label='LSODA')\n",
"plot(r3.t, n_Ht_pq(l1_, l2_, m1_, m2_, g_, *r3.y), label='BDF')\n",
"legend()\n",
"# Radau (implicit R-K) seems to be the best in terms of its violation of energy conservation."
]
},
{
"cell_type": "code",
"execution_count": 480,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support.' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" fig.ws.close();\n",
" }\n",
"\n",
" this.ws.onmessage = this._make_on_message_function(this);\n",
"\n",
" this.ondownload = ondownload;\n",
"}\n",
"\n",
"mpl.figure.prototype._init_header = function() {\n",
" var titlebar = $(\n",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\n",
" titlebar.append(titletext)\n",
" this.root.append(titlebar);\n",
" this.header = titletext[0];\n",
"}\n",
"\n",
"\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._init_canvas = function() {\n",
" var fig = this;\n",
"\n",
" var canvas_div = $('<div/>');\n",
"\n",
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
"\n",
" function canvas_keyboard_event(event) {\n",
" return fig.key_event(event, event['data']);\n",
" }\n",
"\n",
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
" this.canvas_div = canvas_div\n",
" this._canvas_extra_style(canvas_div)\n",
" this.root.append(canvas_div);\n",
"\n",
" var canvas = $('<canvas/>');\n",
" canvas.addClass('mpl-canvas');\n",
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
"\n",
" this.canvas = canvas[0];\n",
" this.context = canvas[0].getContext(\"2d\");\n",
"\n",
" var backingStore = this.context.backingStorePixelRatio ||\n",
"\tthis.context.webkitBackingStorePixelRatio ||\n",
"\tthis.context.mozBackingStorePixelRatio ||\n",
"\tthis.context.msBackingStorePixelRatio ||\n",
"\tthis.context.oBackingStorePixelRatio ||\n",
"\tthis.context.backingStorePixelRatio || 1;\n",
"\n",
" mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
"\n",
" var rubberband = $('<canvas/>');\n",
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
"\n",
" var pass_mouse_events = true;\n",
"\n",
" canvas_div.resizable({\n",
" start: function(event, ui) {\n",
" pass_mouse_events = false;\n",
" },\n",
" resize: function(event, ui) {\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" stop: function(event, ui) {\n",
" pass_mouse_events = true;\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" });\n",
"\n",
" function mouse_event_fn(event) {\n",
" if (pass_mouse_events)\n",
" return fig.mouse_event(event, event['data']);\n",
" }\n",
"\n",
" rubberband.mousedown('button_press', mouse_event_fn);\n",
" rubberband.mouseup('button_release', mouse_event_fn);\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
"\n",
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
"\n",
" canvas_div.on(\"wheel\", function (event) {\n",
" event = event.originalEvent;\n",
" event['data'] = 'scroll'\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" mouse_event_fn(event);\n",
" });\n",
"\n",
" canvas_div.append(canvas);\n",
" canvas_div.append(rubberband);\n",
"\n",
" this.rubberband = rubberband;\n",
" this.rubberband_canvas = rubberband[0];\n",
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
" this.rubberband_context.strokeStyle = \"#000000\";\n",
"\n",
" this._resize_canvas = function(width, height) {\n",
" // Keep the size of the canvas, canvas container, and rubber band\n",
" // canvas in synch.\n",
" canvas_div.css('width', width)\n",
" canvas_div.css('height', height)\n",
"\n",
" canvas.attr('width', width * mpl.ratio);\n",
" canvas.attr('height', height * mpl.ratio);\n",
" canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
"\n",
" rubberband.attr('width', width);\n",
" rubberband.attr('height', height);\n",
" }\n",
"\n",
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
" // upon first draw.\n",
" this._resize_canvas(600, 600);\n",
"\n",
" // Disable right mouse context menu.\n",
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
" return false;\n",
" });\n",
"\n",
" function set_focus () {\n",
" canvas.focus();\n",
" canvas_div.focus();\n",
" }\n",
"\n",
" window.setTimeout(set_focus, 100);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items) {\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) {\n",
" // put a spacer in here.\n",
" continue;\n",
" }\n",
" var button = $('<button/>');\n",
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
" 'ui-button-icon-only');\n",
" button.attr('role', 'button');\n",
" button.attr('aria-disabled', 'false');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
"\n",
" var icon_img = $('<span/>');\n",
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
" icon_img.addClass(image);\n",
" icon_img.addClass('ui-corner-all');\n",
"\n",
" var tooltip_span = $('<span/>');\n",
" tooltip_span.addClass('ui-button-text');\n",
" tooltip_span.html(tooltip);\n",
"\n",
" button.append(icon_img);\n",
" button.append(tooltip_span);\n",
"\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" var fmt_picker_span = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\n",
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
" fmt_picker_span.append(fmt_picker);\n",
" nav_element.append(fmt_picker_span);\n",
" this.format_dropdown = fmt_picker[0];\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = $(\n",
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
" fmt_picker.append(option)\n",
" }\n",
"\n",
" // Add hover states to the ui-buttons\n",
" $( \".ui-button\" ).hover(\n",
" function() { $(this).addClass(\"ui-state-hover\");},\n",
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
" );\n",
"\n",
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"}\n",
"\n",
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
" // which will in turn request a refresh of the image.\n",
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
"}\n",
"\n",
"mpl.figure.prototype.send_message = function(type, properties) {\n",
" properties['type'] = type;\n",
" properties['figure_id'] = this.id;\n",
" this.ws.send(JSON.stringify(properties));\n",
"}\n",
"\n",
"mpl.figure.prototype.send_draw_message = function() {\n",
" if (!this.waiting) {\n",
" this.waiting = true;\n",
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
" }\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" var format_dropdown = fig.format_dropdown;\n",
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
" fig.ondownload(fig, format);\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
" var size = msg['size'];\n",
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
" fig._resize_canvas(size[0], size[1]);\n",
" fig.send_message(\"refresh\", {});\n",
" };\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
" var x0 = msg['x0'] / mpl.ratio;\n",
" var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
" var x1 = msg['x1'] / mpl.ratio;\n",
" var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
" x0 = Math.floor(x0) + 0.5;\n",
" y0 = Math.floor(y0) + 0.5;\n",
" x1 = Math.floor(x1) + 0.5;\n",
" y1 = Math.floor(y1) + 0.5;\n",
" var min_x = Math.min(x0, x1);\n",
" var min_y = Math.min(y0, y1);\n",
" var width = Math.abs(x1 - x0);\n",
" var height = Math.abs(y1 - y0);\n",
"\n",
" fig.rubberband_context.clearRect(\n",
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
"\n",
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
" // Updates the figure title.\n",
" fig.header.textContent = msg['label'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
" var cursor = msg['cursor'];\n",
" switch(cursor)\n",
" {\n",
" case 0:\n",
" cursor = 'pointer';\n",
" break;\n",
" case 1:\n",
" cursor = 'default';\n",
" break;\n",
" case 2:\n",
" cursor = 'crosshair';\n",
" break;\n",
" case 3:\n",
" cursor = 'move';\n",
" break;\n",
" }\n",
" fig.rubberband_canvas.style.cursor = cursor;\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
" fig.message.textContent = msg['message'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
" // Request the server to send over a new figure.\n",
" fig.send_draw_message();\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
" fig.image_mode = msg['mode'];\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Called whenever the canvas gets updated.\n",
" this.send_message(\"ack\", {});\n",
"}\n",
"\n",
"// A function to construct a web socket function for onmessage handling.\n",
"// Called in the figure constructor.\n",
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
" return function socket_on_message(evt) {\n",
" if (evt.data instanceof Blob) {\n",
" /* FIXME: We get \"Resource interpreted as Image but\n",
" * transferred with MIME type text/plain:\" errors on\n",
" * Chrome. But how to set the MIME type? It doesn't seem\n",
" * to be part of the websocket stream */\n",
" evt.data.type = \"image/png\";\n",
"\n",
" /* Free the memory for the previous frames */\n",
" if (fig.imageObj.src) {\n",
" (window.URL || window.webkitURL).revokeObjectURL(\n",
" fig.imageObj.src);\n",
" }\n",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data);\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
" fig.imageObj.src = evt.data;\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
"\n",
" var msg = JSON.parse(evt.data);\n",
" var msg_type = msg['type'];\n",
"\n",
" // Call the \"handle_{type}\" callback, which takes\n",
" // the figure and JSON message as its only arguments.\n",
" try {\n",
" var callback = fig[\"handle_\" + msg_type];\n",
" } catch (e) {\n",
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
" return;\n",
" }\n",
"\n",
" if (callback) {\n",
" try {\n",
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
" callback(fig, msg);\n",
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * mpl.ratio;\n",
" var y = canvas_pos.y * mpl.ratio;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" var width = fig.canvas.width/mpl.ratio\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var width = this.canvas.width/mpl.ratio\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbAAAAEgCAYAAADVKCZpAAAgAElEQVR4Xu2dB3QVxduHf0DoEErohBB6ByH03rsFKUoVlD8iICgiIqCAgqBYQEHKBxYUkSKKgIKAdJDeew29hh5CSPnOu7mBQMq9m+zunc39zTk5CcnszDvPu+TJ7s7OpAALCZAACZAACdiQQAobxsyQSYAESIAESAAUGE8CEiABEiABWxKgwGyZNgZNAiRAAiRAgfEcIAESIAESsCUBCsyWaWPQJEACJEACFBjPARIgARIgAVsSoMBsmTYGTQIkQAIkQIHxHCABEiABErAlAQrMlmlj0CRAAiRAAhQYzwESIAESIAFbEqDAbJk2Bk0CJEACJECB8RwgARIgARKwJQEKzJZpY9AkQAIkQAIUGM8BEiABEiABWxKgwGyZNgZNAiRAAiRAgfEcIAESIAESsCUBCsyWaWPQJEACJEACFBjPARIgARIgAVsSoMBsmTYGTQIkQAIkQIHxHCABEiABErAlAQrMlmlj0CRAAiRAAhQYzwESIAESIAFbEqDAbJk2Bk0CJEACJECB8RwgARIgARKwJQEKzJZpY9AkQAIkQAIUGM8BEiABEiABWxKgwGyZNgZNAiRAAiRAgfEcIAESIAESsCUBCsyWaWPQJEACJEACFBjPARIgARIgAVsSoMBsmTYGTQIkQAIkQIHxHCABEiABErAlAQrMlmlj0CRAAiRAAhQYzwESIAESIAFbEqDAbJm2J4P28fGJ9Pf3TwYj4RBIQE0CO3bsuAYgp5rReW5UFFgyyH1AQEDk9u3bk8FIOAQSUJNAihQpdgCorGZ0nhsVBZYMck+BJYMkcghKE6DA1EwPBaZmXnRFRYHpwsXKJKCbAAWmG5klB1BglmA2txMKzFy+bJ0EKDA1zwEKzNq8FAAwC0BuAJEApgOY+FQIkhP5XksAwQC6A9iZUJgUmLVJZG+eR4ACUzPnFJi1eckLQD5ESJkByIPhFwAcjBGGiOtNh8CqOWQmn+MtFJi1SWRvnkeAAlMz5xSYe/OyCMAkACtihDENwBoAcxzfOwKgPoCL8YVKgbk3iew9+ROgwNTMMQXmvrzIi1vrAJQFcDtGGEsAjAOwwfG9VQDeAxDvPHkKzH1JZM+eQYACUzPPFJh78pIJwFoAYwAsfCoEVwXWC4B8wM/PLyAwMNA9I2GvJOABBCgwNZNMgVmfl9QARFLLAXwZR/e8hWh9TtgjCSRIgAJT8wShwKzNi/D+EUAQgLfi6boVgH4xJnF8DaBqQmHyFqK1SWRvnkeAAlMz5xSYtXmpDWA9gH0AIhxdD5W7gI6vpwKQnMjEjuaOafQ9Enr+JcdRYNYmkb15HgEKTM2cU2Bq5kVXVBSYLlysTAK6CVBgupFZcgAFZglmczuhwMzly9ZJgAJT8xygwNTMi66oKDBduFiZBHQToMB0I7PkAArMEszmdkKBmcuXrZMABabmOUCBqZkXXVFRYLpwsTIJ6CZAgelGZskBFJglmM3thAIzly9bJwEKTM1zgAJTMy+6oqLAdOFiZRLQTYAC043MkgMoMEswm9sJBWYuX7ZOAhSYmucABaZmXnRFRYHpwsXKJKCbAAWmG5klB1BglmA2txMKzFy+bJ0EKDA1zwEKTM286IqKAtOFi5VJQDcBCkw3MksOoMAswWxuJxSYuXzZOglQYGqeAxSYmnnRFRUFpgsXK5OAbgIUmG5klhxAgVmC2dxOKDBz+bJ1EqDA1DwHKDA186IrKgpMFy5WJgHdBCgw3cgsOYACswSzuZ1QYObyZeskQIGpeQ5QYGrmRVdUFJguXKxMAroJUGC6kVlyAAVmCeZHnXwHoDWAKwDKxtF1fQCLAJxy/GwhgI+chUiBOSPEn5NA0ghQYEnjZ9bRFJhZZONuty6AuwBmJSCwQQ7JuRwZBeYyKlYkgUQRoMAShc30gygw0xHH6sAfwBIKzHrw7JEEEkuAAkssOXOPo8DM5RtX684E9huAcwAuAJCrsQPOQuQVmDNC/DkJJI0ABZY0fmYdTYGZRTb+dhMSmDeACMdtxpYAJgIoFk9TvQDIB/z8/AICAwOtHwl7JAEPIUCBqZloCsz6vCQksKejOQ2gMoBrCYXJKzDrk8gePYsABaZmvikw6/OSkMDyALgMIBJAVQALABR0/DveSCkw65PIHj2LAAWmZr4pMGvzMgeATJXP4RDVCACpHSFMBdAPwBsAwgDcBzAQwCZnIVJgzgjx5ySQNAIUWNL4mXU0BWYWWQvbpcAshM2uPJIABaZm2ikwNfOiKyoKTBcuViYB3QQoMN3ILDmAArMEs7mdUGDm8mXrJECBqXkOUGBq5kVXVBSYLlysTAK6CVBgupFZcgAFZglmczuhwMzly9ZJgAJT8xygwNTMi66oKDBduFiZBHQToMB0I7PkAArMEszmdkKBmcuXrZMABabmOUCBqZkXXVFRYLpwsTIJ6CZAgelGZskBFJglmM3thAIzly9bJwEKTM1zgAJTMy+6oqLAdOFiZRLQTYAC043MkgMoMEswm9sJBWYuX7ZOAhSYmucABaZmXnRFRYHpwsXKJKCbAAWmG5klB1BglmA2txMKzFy+bJ0EKDA1zwEKTM286IqKAtOFi5VJQDcBCkw3MksOoMAswWxuJxSYuXzZOglQYGqeAxSYmnnRFRUFpgsXK5OAbgIUmG5klhxAgVmC2dxOKDBz+bJ1EqDA1DwHKDBr8/IdgNYArgAoG0fXko+JAFoCCAbQHcBOZyFSYM4I8eckkDQCFFjS+Jl1NAVmFtm4260L4C6AWfEITMT1pkNg1Rwyk88JFgrMGSH+nASSRoACSxo/s46mwMwiG3+7/gCWxCOwaQDWAJjjOPwIgPoALiYUJgVmfRLZo2cRoMDUzDcFZn1eEhKYiG0cgA2OsFYBeA/AdgrM+kSxRxKIJkCBqXkuUGDW58UogfUCIB/w8/MLCAwMtH4k7JEEPIQABaZmoikw6/PCW4jWM2ePJJAkAhRYkvCZdjAFZhraeBtOSGCtAPSLMYnjawBVnYXIZ2DOCPHnJJA0AhRY0viZdTQFZhbZuNuVyRkyKSMHgMsARgBI7ag6FYDkYxKA5o5p9D2cPf+SYykwa5PI3jyPAAWmZs4pMDXzoisqCkwXLlYmAd0EKDDdyCw5gAKzBLO5nVBg5vJl6yRAgal5DlBgauZFV1QUmC5crEwCuglQYLqRWXIABWYJZnM7ocDM5cvWSYACU/McoMDUzIuuqCgwXbhYmQR0E6DAdCOz5AAKzBLM5nZCgZnLl62TAAWm5jlAgamZF11RUWC6cLEyCegmQIHpRmbJARSYJZjN7YQCM5cvWycBCkzNc4ACUzMvuqKiwHThYmUS0E2AAtONzJIDKDBLMJvbCQVmLl+2TgIUmJrnAAWmZl50RUWB6cLFyiSgmwAFphuZJQdQYJZgNrcTCsxcvmydBCgwNc8BCkzNvOiKigLThYuVSUA3AQpMNzJLDqDALMFsbicUmLl82ToJUGBqngMUmJp50RUVBaYLFyuTgG4CFJhuZJYcQIFZgtncTpKzwEIehuPo5TsIuheKyEggW8Y0KJIzIzKni95GzVy2bJ0EhAAFpuZ5QIGpmRddUSU3gd0OeYhFuy/gj13nsefsTYRFRD7BI2UKoGQeb7QqnxdtK/kiT5Z0unixMgnoJUCB6SVmTX0KzBrO0b3ITssTAaQCMAPAuKe67w5gPIDzju/L7sxSL8GSXAQWGhaBHzedxqTVx3Hr/kOUzJMZDUvmQnnfrMiZOS1SpACu3w3F/vO3sOH4NewIvIHUqVLgpSoF0L9hMeTypsicnSv8eeIIUGCJ42b2URSY2YQfty/SOgqgCYBzALYB6AjgYIwQRGCVAfTTE1ZyENjxK3fx1txd2H/+NuoWz4mBTYqjgm8WuXUTL4rT1+5h+vqTmLftLNKnSYXhrUqhQ+UCCR6jhyvrkkA0AQpMzXOBArMuLzUAjATQzNHl+47PYz1dYKsOXUa/X3YhXeqUGNe2PJqVyaMrKyev3sWQhfuw9VQQmpTOjS86VIA3n5HpYsjKCROgwNQ8Qygw6/LSDoDcQuzp6LIrgGpPXW3JFZgI7arjau1tAGedhWjnKzC5ehqycC/K5MuCGa9URu5E3gaMiIjE95tO45O/DqFg9gxaW4VzZnKGjj8nAZcIUGAuYbK8EgVmHXJXBOYD4C6ABwBeB/ASgIbxhNgLgHzAz88vIDAw0LCRREZGYuPx66hZxAcpZcaESUUmabw9bzfqFMuJKZ0rIWNaryT3tOXkdfSZvVNr58dXq6Js/ixJbpMNkAAFpuY5YN5vJzXH686oXLmFGDM+eWYWBMDpb2Cjr8DWHb2Kbt9txajnyuCVmv6mMFt79Cpe/WEbqvpnx/c9qiBdahmuMeXUtXvoMmOLNhHku+5VULVQdmMaZiseS4ACUzP1FJh1eZHLC5nE0cgxy1AmcXQCcCBGCHkBXHT8uw2A9wBUdxai0QL79/BlvPrDdtQplgM/vSZ3OY0tZ64H49lJG5A3SzoseKMmMhlw5fV0hBdv3dckdulWCGb/rzqeKZDV2EGwNY8iQIGpmW4KzNq8tAQwwTGN/jsAYwB8BGA7gD8dz7+eAxDmuPp6A8BhZyEaLbDtp4PQbupmFMqREasH1XfWva6f3w8NR5tvN+LirRAs7lcbfj4ZdB2vp/Ll2yFoP3WzdiX2a6/qKJXXW8/hrEsCjwhQYGqeDBSYmnnRFZXRAtt55gZe/HYT0nilxNHRLXTF4qzyx0sOYuaGU/ihRxXUL5HLWfUk//xsULAmMXkZ+vc+NVEgu3nCTHKwbEBZAhSYmqmhwNTMi66ojBaYvCjc+psNWgynx7XSFUtClWWa+0vTN6NLtYL4+IWyhrXrrKHjV+5oQpYZjnLLMkt6LkPljBl//iQBCkzNM4ICUzMvuqIyWmCB1++h3vg1hgpM1jRsPmEdwiMjsWxAXUNmHOqBtOnENXSbuRXVC/tok0ZSp0qp53DW9XACFJiaJwAFpmZedEVltMBu3AtFxY9XaDHILUS5lZjUMmXNCXy67DB+eq2qNm3eHWX+9rN4d8FedKxaAJ+0KccVO9yRBJv2SYGpmTgKTM286IrKaIGFhUeg6LC/tRjWD26Q5OdGV+6EoOHna7WrH3nB2J1l/PLDmLz6BIa1LIX/1S3szlDYt40IUGBqJosCUzMvuqIyWmDSuf+QpVoM83vXQBX/pL1H9f7CvZi//Rz+ebuu21fHkBU7+s3Zib/3X8KMbpXRqFRuXaxZ2TMJUGBq5p0CUzMvuqIyU2Bfd6yI5yrk0xVPzMoyC7D+52vQpZofRj1v3cSNhAKWqfwdpm2GrKH4W5+a2tYsLCSQEAEKTM3zgwJTMy+6ojJDYDXHrsKFWyEY2rIketUtoiuemJWH/r4PC7afw7rBDZTat0tecH5+8gZ4pUyJRf1qIUemtIkeIw9M/gQoMDVzTIGpmRddUZkhsJembcaWU0HoUcsfI54toyue6MqyGka9z9agfWVfjGlTLlFtmHnQ3nM3tSsxWUj4l/9VQ1ov45azMjNutm09AQrMeuau9EiBuUJJ8TpmCKzfLzuxZO9FtCibB1O6BCSKwJilB/H9xtNY8259+GZT8wXipXsvou8vO/FixfzaNiwJ7T+WKAg8KFkQoMDUTCMFpmZedEVlhsBGLT6gyUfWEPyjby1d8Uhlec5U7ZOVqFM8JyZ3qqT7eCsP+HrVMXy54igGNy+BPvWLWtk1+7IJAQpMzURRYGrmRVdUZgjs2zXH8dmyI9qqFXtGNNUVj1Seu+0M3vttH+b2qo5qhWWXGHWLbB8z4Nfd+HPPBUztEoDmZfVtqKnuyBiZUQQoMKNIGtsOBWYsT7e0ZobA5m0/i8EL9mrjOT6mBbx0rFwhQpClqMLCI7HsrTq2uC0nK4W8PP0/HLl0R3t1gPuIueVUVrZTCkzN1FBgauZFV1RmCGz1kSvo8b3s+AJseK+BrmdY+87d0rZLkfUOu1YvqGss7qwsL1y/MGkjIgFtZmKuzOncGQ77VogABaZQMmKEQoGpmRddUZkhsJgL+soMvZpFcrgck6w4/9PmQGwb1hhZMthr4dwDF26h3ZTNKJEns7YFi5EbbboMkBWVI0CBKZcSLSAKTM286IrKDIHJ1UjVMau0OMa+WA4dq/q5FFN4RCRqjF2lTf6Y3s29y0a5FHAclZYfuITeP+9Ak1K5MblzJS78m1iQyeg4CkzNZFJg1uelOYCJjk0tZwAY91QI8kbtLAAyd/06gJdkV5OEwjRDYLLkUvHhf2v7aPWuVwRDWpR0idSm49fQacYWbeZhq/KywbQ9yw8bT2Hk4oMofmc3jiyZjrNnz8LPzw9jxoxB586d7TkoRp1oAhRYotGZeiAFZireWI3Lm7JHATQBcA6APGTqCOBgjJp9AJQH0BvAywDaOCQWb6RmCEw6a/D5Gpy6dk/Xu2DvLdiLJXsvYMcHTWx/++3V4V/hh0/fR2TYg0fsM2TIgOnTpydKYrNnz8awYcNw5swZytDa/3dJ7o0CSzJCUxqgwEzBGm+jNQCMBNDMUeN9x+exMY5Y7qizGYAXgEsAZP8RmVsQZzFLYF1nbsH6Y9dQOq83/hpQxykpuWqr+slKbdX5SYq/++V0MLKgsb8/AgMDY1UtWLAgTp9O8KI41jEir169eiE4ONgQGboSP+sYR4ACM46lkS1RYEbSdN5WOwByC7Gno2pXANUA9Itx6H5HHblCk3LCUeea1QKTVeTnbD2LjGlSYf+oZk6nw+8+exMvTN6ICS89gxcq5ndOQ/EaKVOmhLwS8HSR1ToiIiJ0RW+kDHV1zMqGEKDADMFoeCMUmOFIE2zQSIH1AiAfcjsqIK4rhaQObdK/x/D5P3LHE9g+vLHTBW+//OcIJq0+jh3DmyBbxjRJ7d7txxspHSNl6HYwHhgABaZm0ikwa/Niq1uIf+w6j7fm7tYI/fZGDQQUTHhfsFZfr0eGNKkwv3dNa6ma1JuRt/2MlKFJw2WzCRCgwNQ8PSgwa/Miz7TkkqYRgPOOSRydAByIEUZfALJ0e/QkjhcBdEgoTLOegW0/HYR2U+VRHPB5+wpoF+AbbxhB90JR6eMVeKdJcbzZqJi1VE3sTSQ2aNAgXLp0CTlz5sRXX32V6AkcfAZmYqJMbpoCMxlwIpunwBIJLgmHtQQwwTGN/jsAYwB8JHfpAPwJQJZ/+AlARQBBjpmIJ90hsMu3Q1Dtk6h3wV6vVxjvtygVbxjy7tTrP+0wZAfnJLA15dCrV68iV65cmDBhAgYMGJDoPj744AOMHj1ae5bIKfmJxuiWAykwt2B32ikF5hSR+hXMugKTCQxlRyzHvdBwNCqZCzO7V4kXxkeLD2L2lkDsHdk02e2rJRy8vb3x6quvYuJEeYUvceXDDz/U3iO7fv06smbNmrhGeJRbCFBgbsHutFMKzCki9SuYJTAZeetv1mP/+dvwy55B21U5viLPv7zTpcacXtXVB5aICCtUqKBdNS1evDgRR0cdUqOGPAIFNm+Oui3LYiyBdUevIn2aVKjin/Cz2sT0SoElhpr5x1Bg5jM2vQczBTbg111YtPsCUqQADo5qrv2CeLrcfRCGciOX482GxTCwSXHTx+uODtq0aYOjR4/iwIGYjytdj+TmzZvw8fHB0KFD8fHHH7t+IGu6TKDpV2vh75PRlCXMKDCX02BpRQrMUtzmdGamwCauPIavVkZNpV/yZu04txnZeioIHaZtxvfdq6BByVzmDNLNrcpEjsmTJ2svIidm1+Y//vgDIsG1a9eibt26bh5N8ug+NCwCW05dRyW/bMiY1gud/u8/PAiLwG9vGD8LlgJT85yhwNTMi66ozBTY4j0X8OacXVo88b2g/N2GU/hoyUFsHdYo2W5B8u2336Jv3764cOEC8ubVv8ajHPvjjz8iKCgIadLY/x05XSeoSZUHzt2NhbvOo7xvFix8oyYGztuDPeduYu278d/qTmwoFFhiyZl7HAVmLl9LWjdTYAcv3EbLr9dr4+jboAjebRZ7Ud+B83Zjw7Fr2DqssSXjdUcny5YtQ4sWLbBhwwbUqlVLdwglSpRA0aJFsXTpUt3H8oDYBK7eeYBqn6zU9qk7ExSM8e3K49DFO9pO4Ac+ksVujC0UmLE8jWqNAjOKpBvbMVNg90PDUerDZdroGpfKhRmvxJ6J2OyrdcifLT2+S2CWohvxGNK1PP8SCc2aNQtdu8oKYK4XWbxX1k+Ud8jeeust1w9kzXgJ/L7rHN6eu0e7rT1o/h6kTZ0KzcrkxmfLjuDQR3E/q00KTgosKfTMO5YCM4+tZS2bKTAZRN3PVmt/5ebNkg6b35d3sB+XB2HhKP3hcrxRrwgGNSth2Zit7ujBgwdInz49ZCr8yJGyHrPrZebMmejZsyf27duHsmXLun4ga8ZLYOSfBzBv+1nsG9kM09edxKfLDqN/o2L4etUxrB/cAAWyZzCUHgVmKE7DGqPADEPpvobMFtjrP23H8gOXtQHuGN4YPplky7KocuzyHTT5al2yWcA3oSzKNPr69etrV2F6SseOHbXJG+fPn0/UBBA9fXlK3Q5TNyMiMhIL3qiJM9eDUXf8atQq6oONx69jYZ+a2sQOIwsFZiRN49qiwIxj6baWzBbYhJVHMWHlMW18s16tirrFZXeXqBK9AseivrVQoUDyfjlX5BUWFqY9B3O1yKr1uXPn1p6f6RWfq314Yr0qY1aiQYmc+KxdBW34snddcGgYLt9+gOldA9C0TB5DsVBghuI0rDEKzDCU7mvIbIH9c+ASev20Qxvg4OYl0Kd+0UeDnbr2BMb9fVhbgUNeZE7ORVbikMkcMhPR1bJ7925UrFhRm4HYrVs3Vw9jvQQI3HsQhjIjluPdZiXQt0HUuTjkt734ddtZ7etP25bDS1X8DGVIgRmK07DGKDDDULqvIbMFdjYoGHU+W60NsFW5vJjcudKjwcoOzKsOX9G2W0nuRZaBGj58OO7duwfZmdmVMn78eAwePFi7fZgvXz5XDmEdJwSiZ8ZO6lQRrctHMY2e1CFfD29VCj3rFDaUIwVmKE7DGqPADEPpvobMFpisBVh+1D+4ExIGf58MWBPjPZvOM/5DcGg4fu+jf2q5+4glruc5c+agU6dO2mocpUuXdqmRpk2balds+/fLPqUsRhBYefAyes7ajt/71ERFx7Ou8zfvo9a4f7Xm+zcsioFNjZ1QRIEZkTnj26DAjGdqeYtmC0wGJCttyIobUmLeLmz85VoUy5UJU7oEWD5uqzvcsmULqlevrq2H2Lp1a6fdh4SEIFu2bHj99de1lexZjCEgi0YP+30/Nr/fEHmzpNcalT+yAkavhGzr072mP0Y+V8aYzhytUGCG4jSsMQrMMJTua8gKgY1afADfbzytDXJ2z2qoVTSH9nW5EcvRNsDX8F8Y7qMZf8/R26rIivT9+/d3GuKqVavQuHFjLFmyBK1atXJanxVcIyA7f3+z+jiOjW4Br1QpHx3UdeYWrD92DS9Wyo8vOzzjWmMu1qLAXARlcTUKzGLgZnRnhcAW7T6PAb9G7c4cvWll9MP0pyd2mDFGFdqM3lbltddec+mKasiQIfjiiy+05aMyZ86swhCSRQzy3PXfI1ew7amVX8b+dQjT1p1E/RI58UOPqoaOlQIzFKdhjVFghqF0X0NWCCzmRI7oXxCnrt3Tpi9/0b6CdhXmCUXPtiqVK1fWJnusW7fOE9BYNsZXvtuq3Spc/GbtJ/qM/iMra4bU2P1hU0PjocAMxWlYYxSYYSidNiSbFM0F4A9A7sV1AHAjjqPCAexzfP8MgOectWyFwOTqo/Lolbh+LxRZ0qfGrg+aaAuntvl2E77rXhkNS+Z2Fmay+Lmr26rIppU5c+bEqFGjIDsxsxhHoPmEddoaiDNeqfxEozHX7Tw9zthbthSYcfkzsiUKzEiaCbf1GQCZBTFOXlsBIEsFvBfHIXcBZNITlhUCk3h6/rgNKw9d0UJbObAuLt4KQdeZWzG/dw1TNhHUw8Cquu+88w5kZXpn26rMnz8fHTp0wKZNmx5tZGlVjMm9n4of/YOW5fJiTJtyTwxVXmSWZc2kUGDJ/SyIGh8FZl2ejwCoD+AiANmPYw2AuOb6KiuwSf8ew+f/RO0NJi+LZk6XGn1m78Syt+qgZB5v60i6sSdXt1Xp1asX5s6dC7kS8/LycmPEyatrWXuzxPBl2sapsvbh08V/SNRq/xRY8sp7fKOhwKzL800A0WstCXe5fRjX2kthAGS2hHyWq7U/nIVo1RXYxuPX0HnGFi2cDpV9EVAwG977bR82DmmI/FmjpjMn9+LKtipyu7Vw4cKQ52WykSWLcQTO3QhG7U9XY9yL5fBy1dirbVBgxrG2Q0sUmLFZWgkgrkXYhgH48SlhicDiWnE0P4DzAGQpAXkzU5Z/PxFHmL0AyAf8/PwCAgMDjR1JHK3JrMMKo/5BWEQkCufIiE7V/DB66SHsGdFUey7mCcWVbVVOnDih7f01adIkbRNMFuMI7DxzAy9+uyne3b8pMONY26ElCsy6LLl6CzFmRD8AWAJgQUJhWnUFJjG0nbIJOwKj5p7IC6M/bDqNwx83R7rUqawj6caeordVGTFiBOQjrjJ16lS88cYbOHLkCIoXL+7GaJNf18v2X0Tvn3dq+4CVzZ8l1gCjBXZsTAukjvGOWFJJcBJHUgmaczwFZg7XuFodD+B6jEkcMitx8FMV5YosGMADAPKm8GYAzwM4qIrAxi8/jMmroy4Ii+bKhONX7uLI6OZI6+UZAnNc8aJBgwbaAr1xlXbt2mHr1q2Qq+IUKfhfzMj/YrM2n8aHiw5g67BGyJU5Xaymy41cri159t/7jZAnS+yfJzYWCiyx5Mw9jv+7zOUbs3UfAPPkjh8Aud8n0+hlVqLMBe4tk/wA1AQwDUAEAFliQNYfmuksRCuvwNYfu6rNPIxZjP5r1zibb0IAACAASURBVNl43f1z2VYlPDwc69evjxWKfF+mz8t0e9nIksVYAp8vP4Jv1xzHsTEtkSpl7F9fDT9fg5PX7mFxv9oo5xv7Ci2x0VBgiSVn7nEUmLl8LWndSoHJVGV5DvYwPPLR2E58EvcvE0sG74ZOZFuV5cuXayvMP13kyqtatWqQhX9ffvllN0SXvLscvGAP1h69ii1D4979oP3UTdh2+gZmvlIZjUoZ924iBabmeUWBqZkXXVFZKTAJrN2UTdjueA4m/z41tqVH3SobPXq09nKyvAuWPv2Tsy8/+eQTDBs2DJcvX0auXLl05ZGVnROIbxWO6COjdw83ek8wCsx5btxRgwJzB3WD+7RaYF+tOIqJq6J2aJbiabcQE9pWRZ6N3bx5E7t27TI4y2xOCLSYuB75sqTDzO5V4gQycO5uLNx1Hh+0Lo3XahcyDBoFZhhKQxuiwAzF6Z7GrBbY7rM38cLkjY8Gu29kU+2lZk8p8W2rIhtdyvYpAwYMgGxkyWI8gcqjV6BJ6TwY++KTq3BE9/T+wn2Ys/UMBjUtjn4NY7/onNiIKLDEkjP3OArMXL6WtG61wCIiIlF5TNTeS1LWD26AAtld26HYEiAmdxLftirRLznL8zHZyJLFWAIPwyNQfPjf6N+wGN5uEvfrCbJS/dztZ9GnfhEMbl7SsAAoMMNQGtoQBWYoTvc0ZrXAZJRvz92N33dFTWL46Pky6FZD1ij2jBLftiqyTuLkyZNx48aNWM/GPIOMuaO8eOs+aoz9F2PalEXnagXj7KzvLzuxdO9Fwze1pMDMzW1iW6fAEktOoePcIbCY+4NV9c+Oeb1rKETE/FBkmaiCBQvizz//fNSZfC9HjhyQjSxZjCew5+xNPD95I/6vW2U0KR33DEOZ5CGzFI3elZkCMz6fRrRIgRlB0c1tuENgN+6FouLHKx6N3NNmIsp7XseOHcP+/fs1BjLrME+ePBg7dixkI0sW4wmsOHgZ/5u1HX/2q4XyvnEtI/p4hmzP2oUwvHVpw4KgwAxDaWhDFJihON3TmDsEJiOVB+rX7kY9B/urfx2UzucZK9LLeOV24ZQpUyATN2S1jdmzZ6NLly7Yvn07AgIC3HMiJPNeZ28JxLDf9ye4ykbTr9bi6OW76F2vCIa04DOwZH5KcDuV5JBgdwks5nT6fg2KYlCzuHaHSQ6EY49BnnX169cPFy9e1K68evTood1OvHLlClKl8pxltazM7pcrjuKbf4/h2OgW8IpnncOyI5bj7oMwDGgU/0SPxMTMK7DEUDP/GF6Bmc/Y9B7cJbDoh+oywEI5MuLfd+p5zAvNMbdVqVmzJgoUKAD5PG+erBbGYgaB9xfuhdxG3D68SZzNhzwMR8kPlmk/+/j5Muhq4MQiCsyMjCa9TQos6Qzd3oK7BCYDj179W75e2r82yuQzbv05t4NNIICY26pUrlwZpUuXxrRp0yAbWbKYQ+C1H7Zpu4D/NaBOnB2cvnYP9T+XfWKByZ0qoVV52TfWmEKBGcPR6FYoMKOJuqE9VQTWt0ERvNvMuOcObkDpcpcxt1XJnj07+vfvj5MnT6JQIeNWf3A5GA+p+Ow3G+CTKQ1+6FE1zhHL7EOZhSjltzdqahuuGlUoMKNIGtsOBWYsT7e05k6BdZz+HzaflF1iAH+fDFg9qL7H3Eb08/PTtlWR974OHjyI48ePuyX/ntJp1TErUb9ETnzWrkKcQ56x/qS2waoUozdZpcDUPMsoMDXzoisqdwpswsqjmLDy8bqICU1x1jUoG1SWbVVCQkI0eXXq1AmykSWLOQTCIyJRbNhf6FM//slCslL9vO3nkCtzWmwdFvdq9YmNjgJLLDlzj6PAzOVrSevuFNjvu87h7bl7Ho2za/WC+PiFspaM292dyLYq33//vRbGggUL0LZtW3eHlGz7v3InBFXHrEpwckbLietx8OJttCibB1O6GPsqAwWm5qlFgamZF11RuVNgTy/smyV9amwZ2gjpUif/qeTt27fXxCXF19cX48aNQ+fOnXXljpVdI7D//C20/mYDpnYJQPOyeWIddDvkIcqP/Ef7vhlLm1FgruXJ6loUmHXE2wMYCaAUAHkKvT2erpsDmAhADDADwDhnIbpTYPdDw1FmxDJEPN7fEpM6VUTr8vmchW3rn8uLy3IFFhoa9SK3lAwZMmD69OmUmAmZ/WvfRfSZvRNL3qyNsvljz3RdffgKevywTet53bsN4Odj7OLSFJgJSTWgSQrMAIguNiHiigAwDcCgeAQm0joKQF50OQdA/kd2BHAwoT7cKTCJq8mXa3H2RjBCHsrwgHrFc+LHV+OeKeYiK+Wr+fv7IzAwMFacsj7i6dOnlY/fbgF+u+Y4Plt2BPtHNUOmtF6xwh/6+z78suUMyuTzxtL+cU+zT8qYKbCk0DPvWArMPLbxtSwvqsQnMFkRV67SmjkOft/xeazKAhvw6y5sORmE1F4pcDboPlKmADa81xD5sj65W7H1qM3rMWXKlJBV6Z8usqxURESUyFmMIyATNFYfuYptcUzOkAkeRYb+pXX2efsKaBfga1zHjpYoMMORGtIgBWYIRl2NJCSwdgDkFmJPR4tdAVQD0E9lgUVPX5YdcGduOKWFmtyXluIVmK5zPsmVO0zdjEhEYn7vmrHaWnf0Kro53v8ya3dwCizJKTSlAQrMWKwrAcR+wgwMA7DI0ZVRApMlH7RlH/z8/ALiup1l7NDiby16m4vRL5TFx0sO4kFYBHwypsHGIQ2T7WQOeQYmq24EBwc/AsNnYOadcfIOmNyaHt8+9jtg0avBJLRPWFIjo8CSStCc4ykwc7gm1Gqyu4UYFh6B8qP+QfsAXwSHhmP+Dnl8B3zRvgLamnA7x/qUxd2jSGzYsGE4c+aM/BGBMWPGcAKHCcm59yAMZUYsx7vNSqBvg6JP9BBz9Q0zt/ShwExIrAFNUmAGQNTZREICk6fTMomjEQDZ7lgmcXQCcEDlW4gSW5cZW3Dt7gOMb1cBz07aoIVb3jcLFvWt5TErc+g8D1jdRQLRr2pM7VIJzcs+Xt/wQVg4SgyPWrx3YZ+aqORn3NJRT4dGgbmYLIurUWDWAW8D4BsAOQHcBLDbMVlD5pvLdPmWjlDk8wTHNPrvAIxxFqK7ZyFKfJNXH8f45UewdWgj9P55B3aekSGa/4vFGRv+3P4EovcBWz+4AQpkj5oeLxM3qn2yUtuPrliuTFgxsJ6pA6XATMWb6MYpsESjU+dAFQR2SFZAmLgen7Yth2wZ0qDXTzs0QGasiqAOeUZiBQGZIr9kzwVtfUOZ5SnyGjR/D37fJTcpgEMfNUf6NOa+OE+BWZFp/X1QYPqZKXeECgKTKeW1xv2rvWQqqyU0m7AOx67c1VitHFgXRXNlVo4bA7IHgecnbUCGNF6Y06s6QsMi8Pa83Vi696IW/C//q4aaRXKYPhAKzHTEieqAAksUNrUOUkFgQmT4H/uwcOd57PygifYL5p35UWsktq3kiy86xL2CuFokGY1qBB6GR0B2WZY1Nt9sWAz95uzE+mPXtDCN3nU5obFTYKqdGVHxUGBq5kVXVKoILPp9HHnY3qhUbtT7bDUu3ApBqpQpsGZQ/UfPL3QNjpU9msCOwCC0nbIZ/RsVwx+7zuNMUNRrC41K5sL/dauMlPLWvAWFArMAciK6sCb7iQiMh7hOQBWByXT6GuP+RcUCWTG9W2X89F8gPvhjvzaQLtX9MPqFcq4PijVJAMDXq47hyxUyMfdxqeqfXVuqzOznXjH7pMDUPB0pMDXzoisqVQQmQcuLzLM2n8bWoY2RMa0XGn+5VvurWa7CVr9T3/BFVnWBYmVbEbh+9wECRsvaAI/LMwWyYtZrVeGdLrWlY6HALMXtcmcUmMuo1K2oksCit72QPcHkuYXc9nlrrrwxALzwTD5MeLmiuiAZmTIEVh26jDd+3onQ8MfrSspKHFO6VNImdFhdKDCribvWHwXmGiela6kkMJmN2PLrDdpCt38PqANZ77bl1+tx+NIdjeFf/eugdD5vpXkyOPcRkI0rP15yCIv3XHgiiE7V/DDquTJInSqlW4KjwNyC3WmnFJhTROpXUElgQmvutjN477d9mPO/6qhRxAcrD15Gz1lR2581KJET3/dI3lutqH/GqBdhREQkZm89g8+WHcaDhxGo6JcVW04FaYF+1rY8OlQp4NagKTC34o+3cwpMzbzoiko1gYU8DEeNsatQ2T+7NlNMrsY6z9iCTSeua+P6pWc11Cxq/rs7uiCystsIHLhwC8P/2I9dZ24ioGA2ZE7nhTVHrmrxNCyZC991r+K22KI7psDcnoI4A6DA1MyLrqhUE5gE/8U/R/DNv8ex/K26KJEnM45cuqO93CxFlv75a0Adt90O0gWXlU0jIGtnynny67azyJ4hDZqWya1ddZ28eu9Rn1uHNUKuzOlMi8HVhikwV0lZW48Cs5a3Kb2pKLAb90JR57PV2hYYkztX0sY98s8D+GFT1G7Fw1uVQs86hU3hwUbVJiCrafyw6RS+WXUc9x+Go1X5vLj3IBwrD12Gb7b06F2vCD5afBBtKubHp+3KKzEYCkyJNMQKggJTMy+6olJRYDKAz5cfwaTVx7XJHKXyeuNW8EM0/GINrt8LRfrUqbD23frI5e3+v651wWblRBOQW8krD13BmKUHcfp6sPbHjVyNy/Y7smVKr7qFtdU2+v+6CxuPX8PqQfWRW5HzgwJLdNpNPZACMxWvNY2rKrCbwaGoN34Nyub3xs+vVdMWYpXZZW/O2aWBaVUu76OrM2tIsRd3EZDnXOP+PqwtA1UkZ0ZtpRZZuUVmp1YtlB2yGWrx3JkxZ+sZvL9wH4a0KKldialSKDBVMvFkHBSYmnnRFZWqApNB/LjpNEb8eUBb4Ld52TzahI7/zdqh3S6S8vQeT7oGzsrKEzgbFKw95/pj9wVkSZ8az1bIizNB9zV55c+aXhNV6/J5tT9udgTeQMf/+w/VCmXHjz2qWrZMlCsQKTBXKFlfhwKznrnhPaosMFleqtXXG3AvNAz/vF1Xewn18u0Q1B+/Rnv+kT1jGqwaWA/ZMqYxnAsbdB8BWUVDbh///F+gtgpL6/L5IAvzLtl7ERlSp0LfhkXRvaY/0qWO2gZl15kb6PbdVvhkTIMFb9REjkxp3Rd8HD1TYEql41EwFJg1eWkvcxgAlAIgL0FFvRQVu8gMB3njNxxAGIDKroSnssAk/q2ngvDS9M3ayhwfPV9WG9K87WcxeMFe7Wuu0OFKlu1RJzg0DDPXn8K0dSchXzctnUdbs/Dv/RfxMDwSnar64a3GxeATQ1CLdp/XzoVc3mm1dwd9s0VtWqlSocBUysbjWCgwa/Ii4pI1caYBGOREYCKtqP0iXCyqC0yGIWskztxwSnsWVrtYDu1WYr85ux7t6zThpWfwQsX8Lo6Y1VQjIFdXMh1+4spjkOnxtYr6IHvGtFhz+Aruhobh+Qr58Fbj4vDPkfFR6FJvzNJD2saU8v7XtK4Byl15RQdLgal2xkXFQ4FZm5c1nioweblZlpQKfhCOxW/WRs7MaXHr/kM0n7AOF2+FaFmQLVdi/oKzNjXsLTEEZHfkP/ec18QlMwtlwo4825Kr7hvBD9GsTG4MbFJCexcwusiVmbxO8e3qE5Dzol/DoujboKjS7wVSYIk5O8w/hgIzn3HMHpwJ7BSAGwAiHVdr010Jzw5XYDIOmYnWdsomlPfNitk9q2m/sKL3e5Kfl8nnjYV9aiKtl7nbw7vClHUSJiBLPy3ddxETVh7Fiav34Jc9g/ZHyalr9xB0LxR1i+fEoKbFtVxHl0u3QrSdCmZvOaP98dKkdG6836IkCufMpDxuCkzNFFFgxuVF9n3IE0dzwwAscnzfmcDkHtp5ALkArADwJoCo5Stil14A5AN+fn4BgYGBxo3ExJbkeceAX3fjlRoFMcrxPOz/1p3EmL8Oab12q/H4OZmJYbDpRBKQW7/LD1zCVyuO4cjlO8jtnRbZMqTB+Zv3cSckTHu3S66oqvhn13qQ97uW7b+k3SbceOKadsunWZk86FmnEAIKRtWxQ6HA1MwSBWZtXpwJLGY0MunjrrwP7CxEu1yBRY9j9JKDmLHhFAY3L4E+9Ytqz8PembcHC3eJu4FP2pSDrD7Oog4BydGqQ1fw1cqjOHDhNrJmSI1Mab20q63g0HDtaqpfg6KoUCArrtwOwarDV7T6G45fRcjDCBTInh5tnsmPdgEFbLknHAWmzrkYMxIKzNq8JCQwebote0XILET5Wq7APgKwzFmIdhOYPDcZOG83Fu2+gI+eL4NuNfy1ZyHtp27GvvO3tOFGr2TvbOz8ubkERFyrj1zBxFXHsefsTaRJlRKZ0nnh7oMwbVp8y3J50bN2IdwPDcfmk9ex9uhV7D0XlUN5FtaoVC48VyGfNklD3vWya6HA1Mycfc8oNXnGF1UbAN8AyAngJgDZ4bEZgHwAZgBoCUAWBvzd0YDs2PcLgDGuDNNuApMxyS+/PrN3YsXBy9o+T6/U9NfeD2v4+RrcC5W3CKAtNVXQ5/GsNVdYsI4xBOQZ17IDlzB59XHtiuvpInKqVDCbdrW16+xNyPqG8r5XBd8s2iobIq4SuTPbWlpP/KWfIsUOV19rMSYDbMUVAhSYK5QUr2NHgQlSueqSZaVEYq/XK4z3mpXEsSt3H61anzmtF1YNqqfEauSKnwKGhScvnv+554ImLpmckVCRCyqZeFOjsI+275s898qcLrVhsajUEK/AVMrG41goMDXzoisquwpMBim3E0f8uR8//3dGW5X807blcfjibbSbulljkMc7nbYlS5YMyfMXo65Em1j5QVg4Fuw4hylrTuDcjfvx9vRMgayo5JcN1QtnR7VCPh6TFwrMxJMvCU1TYEmAp8qhdhaYMJTnLLJyg+zGK7cMv+lYUXsZtvv32zTEBX0yYMmbtZPtX/fuPI/O3QjG0N/3a2sTxlfeblxcu8Iq75vl0dJP7ozZHX1TYO6g7rxPCsw5I+Vr2F1g0YD/O3kdb/26W5vZNrBpce3l1x4OieXNkk7bliVrBq6ZmNgTUm7ZyvMsmYwhU9u3ng6KtynZr+3VWoWUWlA3seM24jgKzAiKxrdBgRnP1PIWk4vABJxshDlk4V4sP3BZ2ytKZrlNXHVMY5oyBbBlaGPthVmWhAnIrdmTV+9i99mb2seeczdx+OIdhEXIO/Jxly7V/fBKDX8Uy/141QxyjiJAgal5JlBgauZFV1TJSWDRA18psxOXHMDZoPvadGx5UTa6rHi7Ln/JxjhD5BascJKVTvacu6VdYcnrCDLVXUqGNKm0d7XiKv4+GbTXGNoG+GrbnbDETYACU/PMoMDUzIuuqJKjwASA3PKatvYkZmw4qa3yELP8+GpVbdUHTysyS1BmB4qs5HZg9OdoPqlTpdB2v67gm1V7efjIpbtYd+wqrt558ASq+iVyaq8u1CuWk7cJXTiJKDAXILmhCgXmBuhGd5lcBRbNSdbN+2nzaUxYeeyJW2AdqxbAmBfKJdtfwLIMk7xW8FhWt7UZmg/CZGMDIK1XSpTM661NZY/6yIKSeTLj4MXb+Hlz4KOVTaI5yq1X2c6kfWVfJbcsMfr/hZHtUWBG0jSuLQrMOJZuaym5CywarPxCX7L3At77bd8TrPvUL4KOVf1QILt6+0i5clLIrb7jV+7i6OU72udjl+/g6OW7T9w2zZzOS5NU2XxZUCZ/lKwK58gIr1SyeAu0iS+yzuT0dScfre4f3XeLsnnwUpUCqFMsp/ayMYt+AhSYfmZWHMGz2QrKJvfhKQKLifHXrWcwZOGTIpPp9vIybVX/7KhUMCv8fR7/gjc5BU6bF/meCQpG4PVgnAm65/gcjBNX7uKCYzsZaSSNV0oUyZlJm8BSPHcmFM2VWROXb7b0sVa1kNuJcnvwx02B2hJOMYs8N5SFkeXZlmq7GzuFpWAFCkzBpHA/MDWTojcqTxSYMJJnZK//tCPWL+9ofiIDkUCJ3N6QyQpyhSYiyJs1PbJnSKPtFJyUIpMn7j8Mx+37YbgRHKothXXl9gPt8+U7Ibh06wGu3AnBhZv3ce1u6BNdyYQJEa5cRcmsPxGWfC6QLf2jq6q4YpM+5dmX7Gg9a3PsHQh61yuCFyrmQ8k83kkZGo99igAFpuYpwSswNfOiKypPFVg0pJh7isn3fDKmwYDGxXA2KBiHL93BkUt3cOWpSQxST54hyVYg0Suri/BkjzL5SOOVAhERUWs2PoyIxMOwiKivwyO0CSXyXO52yEM8DI97Wnq2DKmR2zsdcnmnQ17vdNoK7CKsgtkzantn6VlZRKR16OId/LI1UFux5OnSPsAX7QJ8tavPlLxFqOv/jquVKTBXSVlbjwKzlrcpvXm6wASq/JKfsvYEPlt25BFjWQH9p9eqIkMaL221dJmKLytPyMaKslvwzeBQ7cpJvpZdgmVB2tDwSO2ziCpVihTwSpXCIbXozykhz6O806fWpp17p4v6LB+yN5ZISyZLpEudtKs7uT0oi+TKmoRrjsReJUNWeH+5SgFULZQ9wSs2U044D2yUAlMz6RSYmnnRFRUF9hiXrOk37Pf92rp+0UUuSub3rqlt6aFykYkY87efxdi/D8cZ5kuVC6BjNT+Uz5+FV1oWJ5ICsxi4i91RYC6CUrkaBRY7O7ISxeilB/H9xtNP/LB20RzaHmQqbGN//e4DzN1+FlNWn8Adx0vHMYOVGYNDW5ZC6/J5tSs7FvcRoMDcxz6hnikwNfOiKyoKLGFcm45fQ6cZW2JVkh2F+zQognaVfLVnVWYWeZH4r30X8dvOc482fIyrv2cr5MNrtQuhXP4snPJuZkJ0tk2B6QRmUXUKzCLQZnZDgblGV67KZm8JxIeLDsR7gDzLalgyF2oW8UHpfN7aJA/5nizHFNeOwvLsLeShTOx4iJPX7uHQxdvYdeYmtp0OivU+Vlydym3B7rX8tReQ7bxjsWsZsG8tCkzN3FFg1uVlPIBnAch86hMAejh2Z346guYAJgKQWQCyW/M4ZyFSYM4Ixf65iOfI5Tv4fsNp7Tae2UWWeJKrqxcr+mpbk/CFYrOJG9s+BWYsT6Nao8CMIum8naYA/gUgi/p96qj+3lOHibSOAmgCQGYhyIZYHQEcTKh5Csw5fFdqyMw/edn4v5NBkK1dZAknuaqKjH8B90fNyhWarEFYOq+3tm+WzA6U6fK8qnKFvPp1KDA1c0SBuScvbQC0A9D5qe5rABgJoJnj++87Po+lwNyTKPZKAkKAAlPzPKDA3JOXxQDmAvj5qe5FanILsafj+10BVAPQjwJzT6LYKwlQYOqeAxSYsblZCSBPHE0OA7DI8X35ujKAF+X92yQIrBcA+YCfn19AYGDsZYWMHRpbIwHPJcArMDVzT4FZm5fuAF4H0AhAcBxd8xaitflgbyTgEgEKzCVMlleiwKxDLrcGvwRQD0DstYGi4vByTOIQwZ13TOLoBCD+ed8AOInDuiSyJ88kQIGpmXcKzLq8HJf1YwFcd3T5H4DeAPI5psu3dHxfPk9wTKP/DsAYZyFSYM4I8eckkDQCFFjS+Jl1NAVmFlkL26XALITNrjySAAWmZtopMDXzoisqCkwXLlYmAd0EKDDdyCw5gAKzBLO5nVBg5vJl6yRAgal5DlBgauZFV1QUmC5crEwCuglQYLqRWXIABWYJZnM7ocDM5cvWSYACU/McoMDUzIuuqCgwXbhYmQR0E6DAdCOz5AAKzBLMpnci75W5shRHDgDXTI/G3A44BnP56mndk3JREEBOPXBY13wCFJj5jFXqYbtjGSuVYtIbC8egl5h59ZkL89iyZRcIUGAuQEpGVfgLR41kJoc8CMnkMI7kMAY1zmo3REGBuQG6G7tMDv9ZOQY3nkBPdc1cqJMLj4yEAvOstMvq9dNtPmSOQZ0EMhfq5MIjI6HAPDLtHDQJkAAJ2J8ABWb/HHIEJEACJOCRBCgwz0r7eADPAggFcAJADwA3bYigPYCRAEoBqOqYTGCXYci2OhMduw3MADDOLoHHiFN2SWgN4AqAsjaMX0IuAGAWgNyOjWXl1rrkhcVGBCgwGyXLgFCbAvgXQBiATx3tvWdAu1Y3IeKKADANwCAbCSyVY7+3JgDOOfZ76wjgoNUAk9hfXQB3HQKwq8DyApCPnQAyA9gB4AUb5iKJqbT34RSYvfOXlOjbAGgHoHNSGnHzsWtsJrBE7bjtZsbxde8PYImNr8CeHtciAJMArFCUN8OKgwAF5rmnxWIAcwH8bGMEdhOY/MEgtxB7Oph3BVANQD8b5iA5CUzGss4h49s2zIXHhkyBJb/UrwSQJ45hDQMgf2VKka8rA3jRcf9fRQqujIMCc1/mkovAMgFY69j5fKH7cLLnxBCgwBJDzd7HdAfwOoBGAILtPRTYTWC8hajWCZfacRt0OYAv1QqN0bhCgAJzhVLyqSO3r+Q/aj0AsgCw3YvdBOblmMQhfzycd0zi6ATggA0TYfcrMPnd9yOAIABv2ZA/QwZAgXnWaXAcQFoA1x3D/g9AbxsikAko3zhWB5fXAHYDaGaTcbQEMMExjV6mo4+xSdwxw5wDoD4AWY3+MoARAGbabBy1AawHsM8xo1XCHwrgL5uNw6PDpcA8Ov0cPAmQAAnYlwAFZt/cMXISIAES8GgCFJhHp5+DJwESIAH7EqDA7Js7Rk4CJEACHk2AAvPo9HPwJEACJGBfAhSYfXPHyEmABEjAowlQYB6dfg6eBEiABOxLgAKzb+4YOQmQAAl4NAEKzKPTz8GTAAmQgH0JUGD2zR0jJwESIAGPJkCBeXT6OXgSIAESsC8BCsy+uWPkJEACJODRBCgwj04/B08CJEAC9iVAgdk3d4ycBEiABDyaAAXm0enn4EmABEjAvgQoMPvmjpGTAAmQgEcToMA8Ov0cPAmQAAnYlwAFZt/cMXISIAES8GgCULBS/AAAAC5JREFUFJhHp5+DJwESIAH7EqDA7Js7Rk4CJEACHk2AAvPo9HPwJEACJGBfAv8PXZ5cTTKWuZAAAAAASUVORK5CYII=\" width=\"432\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Animations\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.animation\n",
"import numpy as np\n",
"\n",
"fig, ax = plt.subplots()\n",
"trace, = ax.plot([], [])\n",
"pen, = ax.plot([], [], 'o-', c='black')\n",
"ax.set_aspect('equal')\n",
"max_width = 1.1 * (l1_ + l2_)\n",
"ax.set_xlim(-max_width, max_width)\n",
"ax.set_ylim(-max_width, max_width)\n",
"\n",
"def step(i):\n",
" trace.set_data(\n",
" l1_ * sin(r1.y[0][:i]) + l2_ * sin(r1.y[1][:i]), \n",
" -l1_ * cos(r1.y[0][:i]) - l2_ * cos(r1.y[1][:i]), \n",
" )\n",
" # Draw pendula\n",
" pen.set_data(\n",
" [0, l1_ * sin(r1.y[0][i]), l1_ * sin(r1.y[0][i]) + l2_ * sin(r1.y[1][i])],\n",
" [0, -l1_ * cos(r1.y[0][i]), -l1_ * cos(r1.y[0][i]) - l2_ * cos(r1.y[1][i])],\n",
" )\n",
" return trace, pen\n",
"\n",
"ani = matplotlib.animation.FuncAnimation(fig, step, frames=len(r1.t), interval=50)\n",
"\n",
"# Save animation\n",
"ani.save('double-pendulum.mp4')\n",
"\n",
"# Show it inline\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 481,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2000"
]
},
"execution_count": 481,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(r1.t)"
]
},
{
"cell_type": "code",
"execution_count": 409,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x120323dd8>"
]
},
"execution_count": 409,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# A solution that seems non-chaotic at first...\n",
"r = solve_ivp(f, [0, 160], [2, 1, 0, 0], vectorized=True, method='Radau')\n",
"plot(r.t, r.y[0], label=r'$\\theta_1$')\n",
"plot(r.t, r.y[1], label=r'$\\theta_2$')\n",
"xlabel('t')\n",
"legend()"
]
},
{
"cell_type": "code",
"execution_count": 410,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1203a1240>]"
]
},
"execution_count": 410,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(r.t, n_Ht_pq(l1_, l2_, m1_, m2_, g_, *r.y))"
]
},
{
"cell_type": "code",
"execution_count": 405,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x12016bf60>"
]
},
"execution_count": 405,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# A solution that seems non-chaotic at first...\n",
"r = solve_ivp(f, [0, 160], [2, 1, 0, 0], method='Radau')\n",
"plot(r.t, r.y[0], label=r'$\\theta_1$')\n",
"plot(r.t, r.y[1], label=r'$\\theta_2$')\n",
"xlabel('t')\n",
"legend()"
]
},
{
"cell_type": "code",
"execution_count": 406,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1201d6128>]"
]
},
"execution_count": 406,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(r.t, n_Ht_pq(l1_, l2_, m1_, m2_, g_, *r.y))"
]
},
{
"cell_type": "code",
"execution_count": 429,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x125db1e48>"
]
},
"execution_count": 429,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# A solution that seems non-chaotic at first...\n",
"r = solve_ivp(f, [0, 160], [2, 1, 0, 0], method='LSODA')\n",
"plot(r.t, r.y[0], label=r'$\\theta_1$')\n",
"plot(r.t, r.y[1], label=r'$\\theta_2$')\n",
"xlabel('t')\n",
"legend()"
]
},
{
"cell_type": "code",
"execution_count": 430,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x125e3eeb8>]"
]
},
"execution_count": 430,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(r.t, n_Ht_pq(l1_, l2_, m1_, m2_, g_, *r.y))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Simple pendulum, Lagrangian and Hamiltonain"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {},
"outputs": [],
"source": [
"# Simple pendulum\n",
"# Mechanical parameters\n",
"l, m, g = sp.symbols('l m g')\n",
"# Dynamical variables\n",
"th = sp.symbols('theta', cls=sp.Function)\n",
"t = sp.symbols('t')"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {},
"outputs": [],
"source": [
"# Lagrangian\n",
"T = lambda t : m * (l * sp.diff(th(t), t))**2 / 2\n",
"V = lambda t : - m * g * l * sp.cos(th(t))\n",
"L = lambda t : T(t) - V(t)"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle g l m \\cos{\\left(\\theta{\\left(t \\right)} \\right)} + \\frac{l^{2} m \\left(\\frac{d}{d t} \\theta{\\left(t \\right)}\\right)^{2}}{2}$"
],
"text/plain": [
"g*l*m*cos(theta(t)) + l**2*m*Derivative(theta(t), t)**2/2"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L(t)"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [],
"source": [
"def euler_lagrange(L, x):\n",
" # Return the Euler-Lagrange equation for generalized coordinate x\n",
" return lambda t : sp.diff(L(t), x(t)) - sp.diff(sp.diff(L(t), sp.diff(x(t), t)), t)"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [],
"source": [
"el_th = euler_lagrange(L, th)"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - l m \\left(g \\sin{\\left(\\theta{\\left(t \\right)} \\right)} + l \\frac{d^{2}}{d t^{2}} \\theta{\\left(t \\right)}\\right)$"
],
"text/plain": [
"-l*m*(g*sin(theta(t)) + l*Derivative(theta(t), (t, 2)))"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.simplify(el_th(t))"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - \\sin{\\left(\\theta{\\left(t \\right)} \\right)} - \\frac{l \\frac{d^{2}}{d t^{2}} \\theta{\\left(t \\right)}}{g}$"
],
"text/plain": [
"-sin(theta(t)) - l*Derivative(theta(t), (t, 2))/g"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.simplify(el_th(t))"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - \\sin{\\left(\\theta{\\left(t \\right)} \\right)} - \\frac{d^{2}}{d t^{2}} \\theta{\\left(t \\right)}$"
],
"text/plain": [
"-sin(theta(t)) - Derivative(theta(t), (t, 2))"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Dimensionless equation\n",
"a = sp.sqrt(g / l)\n",
"dl_ode = sp.simplify(el_th(t) / l / m / g).subs(l / g, 1)\n",
"dl_ode"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"()"
]
},
"execution_count": 112,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.classify_ode(dl_ode)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Alternative constrained formulation"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"l, m, g = sp.symbols('l m g')\n",
"t = sp.symbols('t')\n",
"x, y = sp.symbols('x y', cls=sp.Function)"
]
},
{
"cell_type": "code",
"execution_count": 193,
"metadata": {},
"outputs": [],
"source": [
"T = lambda t : m * (x(t).diff(t) ** 2 + y(t).diff(t) ** 2) / 2\n",
"V = lambda t : m * g * y(t)\n",
"L = lambda t : T(t) - V(t)\n",
"# Constraints\n",
"C = lambda t : x(t) ** 2 + y(t) ** 2 - l ** 2\n",
"# # Constraint forces as the difference between the total force and those arising from the potential\n",
"# cx = lambda t : m * x(t).diff(t, t) + V(t).diff(x(t))\n",
"# cy = lambda t : m * y(t).diff(t, t) + V(t).diff(y(t))\n",
"\n",
"# Lagrangian multipliers\n",
"a = sp.symbols('a', cls=sp.Function)\n",
"LL = lambda t : L(t) + a(t) * C(t)"
]
},
{
"cell_type": "code",
"execution_count": 194,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - g m y{\\left(t \\right)} + \\frac{m \\left(\\left(\\frac{d}{d t} x{\\left(t \\right)}\\right)^{2} + \\left(\\frac{d}{d t} y{\\left(t \\right)}\\right)^{2}\\right)}{2} + \\left(- l^{2} + x^{2}{\\left(t \\right)} + y^{2}{\\left(t \\right)}\\right) a{\\left(t \\right)}$"
],
"text/plain": [
"-g*m*y(t) + m*(Derivative(x(t), t)**2 + Derivative(y(t), t)**2)/2 + (-l**2 + x(t)**2 + y(t)**2)*a(t)"
]
},
"execution_count": 194,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LL(t).simplify()"
]
},
{
"cell_type": "code",
"execution_count": 195,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - m \\frac{d^{2}}{d t^{2}} x{\\left(t \\right)} + 2 a{\\left(t \\right)} x{\\left(t \\right)}$"
],
"text/plain": [
"-m*Derivative(x(t), (t, 2)) + 2*a(t)*x(t)"
]
},
"execution_count": 195,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Euler-Lagrange equations (three second-order ODEs)\n",
"# x\n",
"LL(t).diff(x(t)) - LL(t).diff(x(t).diff(t)).diff(t)"
]
},
{
"cell_type": "code",
"execution_count": 196,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - g m - m \\frac{d^{2}}{d t^{2}} y{\\left(t \\right)} + 2 a{\\left(t \\right)} y{\\left(t \\right)}$"
],
"text/plain": [
"-g*m - m*Derivative(y(t), (t, 2)) + 2*a(t)*y(t)"
]
},
"execution_count": 196,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# y\n",
"LL(t).diff(y(t)) - LL(t).diff(y(t).diff(t)).diff(t)"
]
},
{
"cell_type": "code",
"execution_count": 197,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - l^{2} + x^{2}{\\left(t \\right)} + y^{2}{\\left(t \\right)}$"
],
"text/plain": [
"-l**2 + x(t)**2 + y(t)**2"
]
},
"execution_count": 197,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# a\n",
"# An alegrabic equation (the constraint)\n",
"LL(t).diff(a(t)) - LL(t).diff(a(t).diff(t)).diff(t)"
]
},
{
"cell_type": "code",
"execution_count": 198,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - l^{2} + x^{2}{\\left(t \\right)} + y^{2}{\\left(t \\right)}$"
],
"text/plain": [
"-l**2 + x(t)**2 + y(t)**2"
]
},
"execution_count": 198,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"el_a = LL(t).diff(a(t)) - LL(t).diff(a(t).diff(t)).diff(t)\n",
"el_a"
]
},
{
"cell_type": "code",
"execution_count": 199,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle 2 \\left(x{\\left(t \\right)} \\frac{d^{2}}{d t^{2}} x{\\left(t \\right)} + y{\\left(t \\right)} \\frac{d^{2}}{d t^{2}} y{\\left(t \\right)} + \\left(\\frac{d}{d t} x{\\left(t \\right)}\\right)^{2} + \\left(\\frac{d}{d t} y{\\left(t \\right)}\\right)^{2}\\right)$"
],
"text/plain": [
"2*(x(t)*Derivative(x(t), (t, 2)) + y(t)*Derivative(y(t), (t, 2)) + Derivative(x(t), t)**2 + Derivative(y(t), t)**2)"
]
},
"execution_count": 199,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"el_a.diff(t, t)"
]
},
{
"cell_type": "code",
"execution_count": 200,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{Derivative(x(t), (t, 2)): (g*y(t) - Derivative(x(t), t)**2 - Derivative(y(t), t)**2)*x(t)/(x(t)**2 + y(t)**2),\n",
" Derivative(y(t), (t, 2)): -(g*x(t)**2 + (Derivative(x(t), t)**2 + Derivative(y(t), t)**2)*y(t))/(x(t)**2 + y(t)**2),\n",
" a(t): m*(g*y(t) - Derivative(x(t), t)**2 - Derivative(y(t), t)**2)/(2*(x(t)**2 + y(t)**2))}"
]
},
"execution_count": 200,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Solve for x_dot_dot, y_dot_dot, \n",
"# and a, the Lagrangian multiplier (in terms of x, x_dot, y, y_dot)\n",
"dtdt_sol = sp.solve(\n",
" [\n",
" LL(t).diff(x(t)) - LL(t).diff(x(t).diff(t)).diff(t),\n",
" LL(t).diff(y(t)) - LL(t).diff(y(t).diff(t)).diff(t),\n",
" el_a.diff(t, t),\n",
" ],\n",
" [\n",
" x(t).diff(t, t),\n",
" y(t).diff(t, t),\n",
" a(t),\n",
" ]\n",
")\n",
"dtdt_sol"
]
},
{
"cell_type": "code",
"execution_count": 201,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{\\left(g y{\\left(t \\right)} - \\left(\\frac{d}{d t} x{\\left(t \\right)}\\right)^{2} - \\left(\\frac{d}{d t} y{\\left(t \\right)}\\right)^{2}\\right) x{\\left(t \\right)}}{x^{2}{\\left(t \\right)} + y^{2}{\\left(t \\right)}}$"
],
"text/plain": [
"(g*y(t) - Derivative(x(t), t)**2 - Derivative(y(t), t)**2)*x(t)/(x(t)**2 + y(t)**2)"
]
},
"execution_count": 201,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# x_dot_dot\n",
"dtdt_sol[x(t).diff(t, t)]"
]
},
{
"cell_type": "code",
"execution_count": 202,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - \\frac{g x^{2}{\\left(t \\right)} + \\left(\\left(\\frac{d}{d t} x{\\left(t \\right)}\\right)^{2} + \\left(\\frac{d}{d t} y{\\left(t \\right)}\\right)^{2}\\right) y{\\left(t \\right)}}{x^{2}{\\left(t \\right)} + y^{2}{\\left(t \\right)}}$"
],
"text/plain": [
"-(g*x(t)**2 + (Derivative(x(t), t)**2 + Derivative(y(t), t)**2)*y(t))/(x(t)**2 + y(t)**2)"
]
},
"execution_count": 202,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# y_dot_dot\n",
"dtdt_sol[y(t).diff(t, t)]"
]
},
{
"cell_type": "code",
"execution_count": 220,
"metadata": {
"collapsed": true,
"jupyter": {
"outputs_hidden": true
}
},
"outputs": [
{
"data": {
"text/plain": [
" message: 'The solver successfully reached the end of the integration interval.'\n",
" nfev: 326\n",
" njev: 0\n",
" nlu: 0\n",
" sol: None\n",
" status: 0\n",
" success: True\n",
" t: array([ 0. , 0.1010101 , 0.2020202 , 0.3030303 , 0.4040404 ,\n",
" 0.50505051, 0.60606061, 0.70707071, 0.80808081, 0.90909091,\n",
" 1.01010101, 1.11111111, 1.21212121, 1.31313131, 1.41414141,\n",
" 1.51515152, 1.61616162, 1.71717172, 1.81818182, 1.91919192,\n",
" 2.02020202, 2.12121212, 2.22222222, 2.32323232, 2.42424242,\n",
" 2.52525253, 2.62626263, 2.72727273, 2.82828283, 2.92929293,\n",
" 3.03030303, 3.13131313, 3.23232323, 3.33333333, 3.43434343,\n",
" 3.53535354, 3.63636364, 3.73737374, 3.83838384, 3.93939394,\n",
" 4.04040404, 4.14141414, 4.24242424, 4.34343434, 4.44444444,\n",
" 4.54545455, 4.64646465, 4.74747475, 4.84848485, 4.94949495,\n",
" 5.05050505, 5.15151515, 5.25252525, 5.35353535, 5.45454545,\n",
" 5.55555556, 5.65656566, 5.75757576, 5.85858586, 5.95959596,\n",
" 6.06060606, 6.16161616, 6.26262626, 6.36363636, 6.46464646,\n",
" 6.56565657, 6.66666667, 6.76767677, 6.86868687, 6.96969697,\n",
" 7.07070707, 7.17171717, 7.27272727, 7.37373737, 7.47474747,\n",
" 7.57575758, 7.67676768, 7.77777778, 7.87878788, 7.97979798,\n",
" 8.08080808, 8.18181818, 8.28282828, 8.38383838, 8.48484848,\n",
" 8.58585859, 8.68686869, 8.78787879, 8.88888889, 8.98989899,\n",
" 9.09090909, 9.19191919, 9.29292929, 9.39393939, 9.49494949,\n",
" 9.5959596 , 9.6969697 , 9.7979798 , 9.8989899 , 10. ])\n",
" t_events: None\n",
" y: array([[ 1. , 0.87758 , 0.54753365, 0.09333493, -0.38169425,\n",
" -0.77117189, -0.98113413, -0.95153772, -0.67497708, -0.21719461,\n",
" 0.30090231, 0.73585453, 0.97301496, 0.96136634, 0.71588649,\n",
" 0.30552627, -0.1734517 , -0.61383462, -0.91458461, -0.99759104,\n",
" -0.83038327, -0.44458923, 0.06245162, 0.55181326, 0.89268465,\n",
" 1.00148447, 0.86470426, 0.52633395, 0.07096324, -0.40004636,\n",
" -0.78331364, -0.98833597, -0.95794761, -0.685515 , -0.23434966,\n",
" 0.28005335, 0.71957195, 0.97224577, 0.98524108, 0.76794558,\n",
" 0.38154803, -0.08618761, -0.53591792, -0.87176042, -1.01493923,\n",
" -0.92201127, -0.6042291 , -0.13253315, 0.372606 , 0.78313829,\n",
" 1.00071495, 0.98455332, 0.75207526, 0.36298502, -0.09855038,\n",
" -0.54098787, -0.87524744, -1.02785948, -0.95618082, -0.66440227,\n",
" -0.21502763, 0.28713876, 0.71988661, 0.98458928, 1.0315398 ,\n",
" 0.86319106, 0.52640237, 0.09128522, -0.3604765 , -0.74690673,\n",
" -0.99431916, -1.04733467, -0.88580561, -0.53257494, -0.0615689 ,\n",
" 0.42309142, 0.81494992, 1.03376543, 1.04635028, 0.86293764,\n",
" 0.52808474, 0.10532481, -0.33483741, -0.72103361, -0.98767786,\n",
" -1.08353508, -0.9814175 , -0.69170174, -0.2637358 , 0.21757663,\n",
" 0.65487565, 0.96498953, 1.09614837, 1.03713465, 0.81092425,\n",
" 0.46158477, 0.04591768, -0.37633637, -0.74600086, -1.00840036],\n",
" [ 0. , 0.47953962, 0.8367842 , 0.99596552, 0.92432397,\n",
" 0.63688056, 0.19221676, -0.30770986, -0.73703082, -0.97574226,\n",
" -0.95265097, -0.67611007, -0.22606512, 0.27290144, 0.6972338 ,\n",
" 0.95192857, 0.98508524, 0.79017294, 0.40657474, -0.08231357,\n",
" -0.55939508, -0.89718341, -0.99961845, -0.835869 , -0.45505492,\n",
" 0.03504155, 0.5081485 , 0.85403351, 1.00174718, 0.92151685,\n",
" 0.63044153, 0.18674737, -0.30976684, -0.73745837, -0.98014807,\n",
" -0.96821289, -0.70714244, -0.27057019, 0.22380061, 0.65757563,\n",
" 0.93755154, 1.00973338, 0.86149275, 0.52089475, 0.05660919,\n",
" -0.42999623, -0.8197999 , -1.01042771, -0.94977118, -0.65499306,\n",
" -0.20815124, 0.27907038, 0.69591616, 0.95973358, 1.02283922,\n",
" 0.87535486, 0.54383755, 0.09030983, -0.39150154, -0.79268759,\n",
" -1.01332359, -0.9963693 , -0.7486685 , -0.33417224, 0.14514834,\n",
" 0.58574861, 0.90300948, 1.04318997, 0.98551389, 0.73937408,\n",
" 0.34681746, -0.12313714, -0.57625052, -0.91417826, -1.05829311,\n",
" -0.97360096, -0.68330327, -0.25717212, 0.21177368, 0.63189057,\n",
" 0.93276994, 1.06910958, 1.02323163, 0.80293256, 0.43983379,\n",
" -0.00796175, -0.46375783, -0.83973302, -1.0573 , -1.07030213,\n",
" -0.87648249, -0.52048429, -0.077404 , 0.37054327, 0.74947578,\n",
" 1.00588321, 1.10896395, 1.04682704, 0.82892739, 0.48244238],\n",
" [ 0. , -2.35100057, -4.04196226, -4.77814066, -4.44769366,\n",
" -3.10337616, -0.95149964, 1.56264729, 3.79221139, 5.06597055,\n",
" 4.94185716, 3.47073325, 1.14269534, -1.34893805, -3.3876311 ,\n",
" -4.57515878, -4.728185 , -3.82125131, -1.99683329, 0.41034227,\n",
" 2.84846107, 4.62473755, 5.16887189, 4.2973404 , 2.30601666,\n",
" -0.16851628, -2.46523945, -4.08660719, -4.75977429, -4.39149918,\n",
" -3.04262107, -0.91950704, 1.54431972, 3.73246397, 5.00520471,\n",
" 4.93850338, 3.56934124, 1.34801371, -1.07589106, -3.11563797,\n",
" -4.38706906, -4.70674412, -4.03712575, -2.47647777, -0.28198303,\n",
" 2.10297688, 4.07367987, 5.05030285, 4.73234409, 3.22609298,\n",
" 1.01379504, -1.30058898, -3.20028188, -4.35868149, -4.62642212,\n",
" -3.98325131, -2.51119456, -0.43371734, 1.85167243, 3.81099017,\n",
" 4.9102455 , 4.81723572, 3.58109141, 1.57897505, -0.64649509,\n",
" -2.60019195, -3.95014918, -4.52714969, -4.28104953, -3.24526487,\n",
" -1.5559661 , 0.53900448, 2.63175864, 4.22839736, 4.91498973,\n",
" 4.5004683 , 3.11755174, 1.16282952, -0.89640686, -2.65701933,\n",
" -3.8627814 , -4.39016426, -4.2051319 , -3.33223982, -1.85974469,\n",
" 0.01315572, 1.9885911 , 3.66963093, 4.65503335, 4.70336379,\n",
" 3.81668359, 2.23362326, 0.34597046, -1.47083829, -2.93490716,\n",
" -3.88307587, -4.24718957, -4.01475113, -3.21278909, -1.90890469],\n",
" [ 5. , 4.30271619, 2.64497978, 0.44858317, -1.83772205,\n",
" -3.75997534, -4.86784546, -4.81916891, -3.47053104, -1.12522912,\n",
" 1.56201704, 3.77897729, 4.91226509, 4.75763202, 3.48411761,\n",
" 1.47232868, -0.82845718, -2.9646328 , -4.49027898, -4.99188256,\n",
" -4.22901551, -2.29328709, 0.32181925, 2.83375861, 4.51614531,\n",
" 4.9715522 , 4.2067414 , 2.52696122, 0.34479272, -1.89977638,\n",
" -3.77106275, -4.84046596, -4.7866192 , -3.4765296 , -1.2014928 ,\n",
" 1.42235654, 3.6236935 , 4.81202697, 4.77565821, 3.65608567,\n",
" 1.79735889, -0.39011221, -2.49883474, -4.12807314, -4.8963265 ,\n",
" -4.52818267, -3.01279622, -0.6711724 , 1.84675214, 3.84032584,\n",
" 4.81708629, 4.63774588, 3.47880312, 1.66513597, -0.43122863,\n",
" -2.44537275, -4.01549535, -4.80350818, -4.55442246, -3.21077213,\n",
" -1.05495103, 1.37418885, 3.42430651, 4.60054406, 4.71469553,\n",
" 3.86669717, 2.3251734 , 0.41628858, -1.54508614, -3.25332922,\n",
" -4.40920272, -4.72835651, -4.07347722, -2.48330323, -0.30262818,\n",
" 1.93566858, 3.6888317 , 4.58940031, 4.53645111, 3.66668193,\n",
" 2.21483812, 0.45609761, -1.35143034, -2.96107501, -4.12389604,\n",
" -4.61533317, -4.25713349, -3.04872127, -1.18293885, 0.9350429 ,\n",
" 2.8233249 , 4.09056244, 4.54429402, 4.19762945, 3.21526895,\n",
" 1.81337578, 0.20463957, -1.41433453, -2.85478678, -3.92760251]])\n",
" y_events: None"
]
},
"execution_count": 220,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Set up IVP\n",
"params = {\n",
" m: 1,\n",
" g: 1,\n",
" # XXX somehow l disappeared in the dynamical equations! Our initial conditions puts it back it.\n",
" l: 1,\n",
"}\n",
"\n",
"# Note that the ODE system has only 4 functions of time since we eliminated the Lagrange multiplier a(t) algebraically!\n",
"xx = x(t), y(t), x(t).diff(t), y(t).diff(t)\n",
"fs = [\n",
" # x_dot\n",
" lambda x_, y_, x_dot_, y_dot_ : x_dot_,\n",
" # y_dot\n",
" lambda x_, y_, x_dot_, y_dot_ : y_dot_,\n",
" # x_dot_dot\n",
" sp.lambdify(xx, dtdt_sol[x(t).diff(t, t)].subs(params)),\n",
" # y_dot_dot\n",
" sp.lambdify(xx, dtdt_sol[y(t).diff(t, t)].subs(params)),\n",
"]\n",
"\n",
"sol = solve_ivp(\n",
" fun=lambda _, xx_ : [f(*xx_) for f in fs],\n",
"# t_span=[0, pi - 0.1],\n",
" t_span=[0, 10],\n",
" # An impossible start, violating the constraint.\n",
"# y0=[1, 1, 0, 0],\n",
" y0=[1, 0, 0, 5],\n",
"# t_eval=linspace(0, pi - 0.1, 100),\n",
" t_eval=linspace(0, 10, 100),\n",
" vectorized=True,\n",
")\n",
"sol"
]
},
{
"cell_type": "code",
"execution_count": 221,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x126703e80>]"
]
},
"execution_count": 221,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(*sol.y[:2])"
]
},
{
"cell_type": "code",
"execution_count": 222,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x11835ae48>]"
]
},
"execution_count": 222,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# As an advantage, we can solve for the constraint force = a(t) * (dc/dx, dc/dy). From E-L which corresponds to forces = m x_dot_dot.\n",
"# This can help us determine the stress required on the massless rod, for example.\n",
"a_q_ = sp.lambdify(xx, dtdt_sol[a(t)].subs(params))\n",
"c_ = sp.lambdify(xx, [C(t).diff(x(t)), C(t).diff(y(t))])\n",
"plot(*(a_q_(*sol.y) * c_(*sol.y)))"
]
},
{
"cell_type": "code",
"execution_count": 223,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEKCAYAAAAfGVI8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xl8XGd1N/DfmRltM6NtpNFm7fJux7udxWEJJDQNJJBAgVDSFGjTUl6aAC0FulA+tIUXKG83KE1LIC0hNJAAIYQt7AmxHdvxKtuyrH3fNZuWWc77x71Xlm1pdGfmLlrO9/OZT6TRSPPIdu65z3POcx5iZgghhFi7HHYPQAghhL0kEAghxBongUAIIdY4CQRCCLHGSSAQQog1TgKBEEKscRIIhBBijZNAIIQQa5wEAiGEWONcdg9Aj9LSUq6vr7d7GEIIsaIcO3ZshJn9S71uRQSC+vp6HD161O5hCCHEikJEnXpeJ0tDQgixxkkgEEKINU4CgRBCrHGmBQIiqiGinxNRMxGdJaIH1ed3EdEhIjpBREeJ6IBZYxBCCLE0M5PFMQAfYubjRJQP4BgR/QTAZwB8gpl/QER3qJ+/2sRxCCGESMK0QMDM/QD61Y+DRHQOwDoADKBAfVkhgD6zxiCEEGJplpSPElE9gN0ADgN4CMCPiOhzUJambrJiDEIIIRZmerKYiLwAngTwEDMHALwXwAeYuQbABwB8eZHve0DNIRwdHh42e5iG+Om5QfykeRDReMLuoQghhG5k5pnFRJQF4BkAP2Lmz6vPTQIoYmYmIgIwycwFyX7Ovn37eLlvKJuajWPnJ36M2XgCpd4cvHnPOvzBKxrhz8+xe2hCiDWKiI4x876lXmdm1RBBuds/pwUBVR+AV6kfvwbARbPGYKWXOsYwG0/g/a9Zjz21Rfjy8+34y2+ftntYV2gfCWNqNm73MIQQy4yZOYKDAO4DcJqITqjPfQzAHwL4ZyJyAZgG8ICJY7DMC60jyHY68N5XN8Gd7cJHnjyFZ0/3I5FgOBxk9/BwsnsCb/nSb3Dnjip8/m277B6OEGIZMW1GwMzPMzMx8w5m3qU+nlWf38vMO5n5emY+ZtYYrPTriyPYU1cEd7YSW/fX+xCYjuHCYNDmkQHB6Sje//jLiMYZz5zux1h41u4hCSGWEdlZbIDR0Aya+wO4eX3p3HMHGnwAlCUjOzEz/vLbZ9A7MYW/v3s7ZmMJPHmsx9YxCSGWFwkEBvjNpVEAwM0bLnd7rS7OQ2VhLg632xsIvnmsB0+f7MNDr92A372+DnvrivH4kS6YWSQghFhZJBAY4IXWEeTnunDdusK554gIBxp8eKl9zLaL7nQ0jk88fRY3NpbgT25ZDwB4x4FatI2E8WLbqC1jEkIsPxIIMsTM+PXFEdzUVALnVUnh/fU+DAVn0DUWsWVs5weCCM/Gcf9NdXNje/2OShTmZeHrh7tsGZMQYvmRQJChrrEIeiemrsgPaLQ8gV3LQ6d7JwEA2+fNVHKznHjznmr86OwARkIztoxLCLG8SCDI0POtIwCAgwsEgvV+L4rdWXjJpkBwpmcSxe4srCvKu+L5d1xfg2ic8a1lkDRuHQohNBOzexhCrGkSCDL0/MURVBXmoqHUc83XHA7CvnqfbZVDp3snsX1dIZS9fZetL8vH5op8HLI5TzAUmMbt//Qr3Px/f4Yv/LxVAoIQNpFAkAFmxottozi4vvSai63m+gYfOkYjGApMWzq26WgcLYNB7KguXPDrmyrycXEwZOmYrvaLlmHEEowNZV589kcXcPP//ZntwUmItUgCQQb6J6cxEYliZ03Roq/ZX6/kCY5YPCs4PxBELMFXVDLNt7E8H70TU7behf/ywjDKC3LwxB/diO++7yBcDsL/HNJ11rYQwkASCDJwcUi5o95Q5l30NduqCuDOdlqeJ1goUTyfNuaLNu18jsUT+PXFYbxqox9EhJ01RTi4vtTWclsh1ioJBBlo1QJBef6ir3E5HdhRXYiTPZNWDQvA4olizUZ1zHYtD53onkBgOoZXbyqbe+5Ag1Ju2zlqT7mtEGuVBIIMtA4F4fNkw+fJTvq6Jr8XHaNhi0alWCxRrKnxuZHjcqDFphnBLy4Mw+mgK6qtDti0jCbEWieBIAMXB0NYn2RZSNNQ6sFEJIpxi5q9aYnixfIDAOB0EJr8XrQM2TMj+EXLEPbUFqEwL2vuufVl9pbbCrFWSSBIEzPj4lAoaX5Ao5WWtls0K7iwRKJYs7Hca0uOYCg4jTO9gSuWhQClLYed5bZCrFUSCNI0EprF5FRU94wAANqHrQkESyWKNRvK89E/OY3gdNSKYc35dYuyCe9VG/3XfO1AvT3ltkKsZRII0nRxSLmT3lC2eKJYU+Nzw+kgtI9YEwjO9E6iyJ2F6uKFE8WauYSxxctDv2gZRqk3B1srrz2hVGvLIXkCIawjgSBNlyuGlp4RZDkdqPW5LQsEp3sncV2SRLFmY7n1JaTxBM+VjS50cptd5bZCrGUSCNLUOhRCfo4LZToPp68vsSYQzMSWThRraordyM1yoMXCEtKWwSAmIlHcvKFkwa+7nA7sqS3GkY5xy8YkxFongSBNFwdDWF/uXfKuW9NQ6kX7SNj0zVKdoxFE44xNFUsvWTkchPVlXktLSLX32lq5eKDaX+/D+YEAJqeszV1cbSYWx98+fRYnuidsHYcQZpNAkCa9FUOaBr8HU9E4BgPmtn7WZh0LNcFbyIYya3sOXRgIwuWgpOM70OADM3Cs097loWdO9uOrv+nAe776EnrGZZObWL0kEKRhIjKLkdCMroohTUOJcuFrGzH3otuplqjWlegMBOVeDASmLbv7bhkMotHvQbZr8X96u2uLkOUkvGTj8hAz45EX2lHjy8NsPIE/ePQowtIdVaxSEgjSMJco1lExpGnwqyWkJucJ2kci8Hmyr9iolcxG9XdoHbJmeejCYHCuWmkxuVlONPnt2eOgOdI+hrN9Abz3VevxhXfsQctgEB/43xNIJKQPklh9JBCkQSu3TGVGUFmQixyXAx0mB4LO0TDqS9y6X29lz6HwTAzdY1PYtEQgAJSlrTaLqqwW8sgL7ShyZ+Hu3evwyo1+/PUbtuLHzYP4xkvdto1JCLOYFgiIqIaIfk5EzUR0logenPe19xPRefX5z5g1BrNcHAwhL8u5aEO3hTjUdXGzZwQdI2HU61wWAoDq4jzkZTktqRzSAqieRHZDqQddoxHE4gmzh3WNrtEIftw8iHccqEVethMA8Ps31aO6OA8vqCfSCbGauEz82TEAH2Lm40SUD+AYEf0EQDmANwLYycwzRFSW9KcsQ63DITSVeRasg0+mvsSDFhOXYKajcfRNTuvODwBKgGoq86B12PxA0DKg/O56A0EswegZn0K9zsS3UR59sQNOItx3Y93cc0SEndVFONkjFURi9TFtRsDM/cx8XP04COAcgHUA3gvg08w8o35tyKwxmKV1MJhSfkDT4Df3LrdrTKlsqS/VvzQEKInlLgv6IJ0fCCI3y4Ga4qXHN9eWw+LlofBMDE+81I07rqtEZeGVM76dNYXoGZ/CaMjcyi8hrGZJjoCI6gHsBnAYwEYAryCiw0T0SyLav8j3PEBER4no6PDwsBXD1CU8E0Pf5HRK+QGNdpfbOzFlwsgwl39IZWkIAGp9bvSMTyFuciK0RU0U65lJ2RUITnZPIDgTwz171l3ztR3Vykl0pyw+W0IIs5keCIjIC+BJAA8xcwDKcpQPwA0A/hzAE7TArixmfpiZ9zHzPr//2uZkdulW68lrfanddQOXL25mJUG1A13SCQSxBKPPpACl0VMxpPF5slGQ67I8EJxTl6+2VV274U053wGyPCRWnSUDASneSUR/o35eS0QH9PxwIsqCEgQeY+an1Kd7ADzFiiMAEgBKF/sZy03PmHKxrMkgEJjVhbR9NIxidxYK3fpKRzV16u/SPWbepqmx8CyGgzO6KoYAZU2+we+1PBCc7w+g1JsN/wKtQ7w5Lmwo88qMQKw6emYEXwRwI4B71c+DAL6w1Depd/lfBnCOmT8/70vfAXCL+pqNALIBrJhSDG2H6VKdPRdS4slGvol3uZ2j4ZQSxRotqHWaGAi01hJ6EsWaBov6M813fiCILQt0RdXsqC7CqZ4JOVdZrCp6AsH1zPw+ANMAwMzjUC7eSzkI4D4AryGiE+rjDgCPAGgkojMAvgHgfl5B/1f1jE8hN8uBkiWOp1wIEaHRxBLSjpGI7tYS81UV5cHloLlksxnSCgSlXvRNTmE6GjdrWFeIxRNoGQxic5Ix7qwuxEho1rQ8jxB20FM+GiUiJwAGACLyQ1nOSYqZnwewWFbwnbpHuMx0j0dQXezW3WzuanUlHhzvMr51glI6OoW6FDaTaZwOQnVxnqmB4MJAEIV5Wbq7tQJKlRWzkvtIJYCkq2M0jJlYApsrks8IACVhXK2j+kmIlUDPjOBfAHwbQBkR/T2A5wH8g6mjWsZ6xqdQk8aykKbW50b/5DSiBpeQdo9FwKy/2dw14ypRSlvN0jIYxKby/JQCaONc5ZA1TfHO9Suzls2ViwedzZX5yHY6JGEsVpUlAwEzPwbgwwA+BaAfwJuY+ZtmD2y56hmfyuhOsNbnRjzB6J8w9ijGDvUink6OAABqfebNCJgZFwaC2FiRWsltvclVVlc7PxCAS23NvZgclxNbKvNxUlpTi1Vk0UBARD7tAWAIwOMAvg5gUH1uzQlMRzE5FU0rUayp9inf221wW2Ot62gqfYbmq/N5MDkVxWTE+C6kg4EZBKZjuiuGNN4cF/z5OZad9Xy+P4gmvxc5LmfS1+2oLsKZ3oA0oBOrRrIZwTEAR9X/DgNoAXBR/fiY+UNbfjIpHdVo+w+MvvtuHwmjyJ2FInfqSWzg8u9kxqygTW1f0ZTmJrwOC3Y9A8C5/kDSZSHNzpoihGZiprcUF8IqiwYCZm5g5kYAzwG4k5lLmbkEwBsA/NiqAS4nmZSOaioLzanQ6RyNpL0sBGAuydw5ZvxFV/td0xlfQ4n5jfoAYDISRd/kdNJEsWZntbLZ7GS3vfsJRkMzuO3zv8QXft4q5awiI3qSxTcw87PaJ8z8AwA3mTek5atnXJkRZJIjcDoI60yo0GkfCaMhzWUhwNwZQddYBFlOQkVBbsrf2+D3YCQ0a/rBOecHAgCSJ4o1jX4v3NlOnO61NxB872QfLg6F8NkfXcCfffMUZmLWlNmK1UdPIOgjor8ionr18ZcA+swe2HLUMz4Fd7YTxSnu3L1arc+NHgMvuDMxrXQ0/RmBN8eFUm+2KbuLu8YiWFeUB2eK3VqBy1VQZp/jcH5AO0t56RmBU20pbtWS1WK+c6IPWyoL8IFbN+LJ4z2477+OmJLjEaufnkBwLwA/lBLSbwMow+VdxmtK93gENRnsIdDU+NyG3nl3j02BOfWuo1er8bnn+hUZqXssknZepdGi5nPnBwIoduvf51Bf6jE9OCXTMRLGie4JvGlXFR68dQP+5d7dONo5hi+/0G7bmMTKpad8dIyZH2Tm3erjQWa291Rxmyilo+nnBzS1PjfGI1EEp425e0v1nOLF1BkcoDRdY5G0mvQBSnAiMj8QNPcHsbmiQHeQry9xo3t8yvD9IHp990QfiIC7dlUBAO7aWYXt6wpxuG3UlvGIlU1P07mfE9HPrn5YMbhM/dNzLbj7iy8Y9vN6xiOGBAKtH3/3mDFtCrS7+LoMqpkAJUD1TUxhNmbcxS0wHcV4JJp2IMhVT4IzMxDEE4yWgaCu/ICmvsSDeILRO259qwlmxndP9OL6Bt8VZyYcqPfh5e4Jy1pyiNVDz9LQn0FpF/3nAP4awAkoZaXLXjzBONUzachd2+RUFMHpmCFtBYwuIe0cDSM/xwVfGv2P5qst8SDBMLQdtZZzSDcQaN9rZvuLrrEIpqLxpM3mrjbXSdaGPMHp3km0jYTxpl1XnplwfWMJZmMJ6Y4qUqZnaejYvMcLzPxBAK82f2iZ03bxGnHXpl3QanzGLA3N/5mZ6hyLoLYk89xFrQldSC//uWUWCHoM3oA330W1IZ7esxKAy7ue7cgTfOflPmQ7Hfjt6yqveH5/fTGIIMtDImV6loZ88x6lRPRbAK49tWMZ0tbMjbiwGVE6qil0Z6Eg12XY7uKu0Uhazeaupv0MI+++tZ9Vm2Fp60hoFpHZmFHDuoK27JRKn6YSTza8OS5TkuvJxBOM753qwy2b/SjMu7J6rcidjU3l+TjSsSZTeCIDepaG5u8wfhHAhwC8x8xBGWXuwmbA9N2IzWTzGVU5FE8wuscz20ym8XtzkONyGHp+cffYFArzslCQm37JrfZn3mPSenz7SBil3uxrLqzJEBHqS60/L+FE9wSGgzO4c2fVgl+/vsGHY53jtiWxxcqkJxBsYeZGdafxBmZ+HYCXzB6YEcryc5Cb5TDkrq1nfAreHFdKF4tkjFr37puYQjTOGSeKAcDhIMPX4zOpGNLMbXYz6e67bSScVtfW+hLr9xKcUTex7atbuN3X9Y0liMzGbd/sJlYWPYHgNws896LRAzEDkXJhM2ZpSKkYynQdXqMdGJ9p4zItyGWy9DJfrcF7CbqNCARalZVJeYK24fQDQY/FJaRneidR6s1GecHC+x321ysB4ki7LA8J/ZJ1H60gor0A8ohoNxHtUR+vBrBiTuSo9bkNuZPMtP301ap9bszGEhgKzmT0c7TeQEYsDQFKQFHONsi8d008wcr5DRkGglJvNvKynIaV284XmI5iJDSDhtLUG+LVl3rmfkernOkLYFtV4aI3JP78HDT5PZIwFilJNiP4LQCfA1AN4PMA/lF9fBDAx8wfmjFqfR50ZXhhY2bDNpNdHpcxidmu0QiyXQ5UptHHZyG1PjfCs3GMhWcz/lmDgWnMxhMZzwiICDW+PFNmBB1pJIo1DepObqsqh6ajcVwcDGL7uuRlrgcaSnC0YxxxaZMtdErWffRRZr4FwO8z8y3zHncx81MWjjEjdSVuTEXjGM7gzntyKorQTMyUQJBpCWnHaBg1xXlwpNHHZyFGlpB2GbCHQFNT7DalD5KW7G30px4ItFmYVXmCCwNBxBKM7VXJi/ZuaPQhOBPDuf6AJeMSK1+ypSHtXOF6Ivrg1Q+Lxpex2pLML2zaxcKo5RcAWFeUB6LMZwSZtp++mlZpZcRF19BAoOZUjG633DYcBhHSKr8t8WQjP8dl2YzgTJ+SAN6+LnkgONCg5AkOS55A6JRsaUi7ungB5C/wWBG0appMEqBtw+nfNS5GW87J5ILLzOgaM2YPgUbLgxiRMO4ei8DpIFQWZb5sVV2ch9BMDOMGd9dsHwmjujhvyVPJFqKUkHrQbtFegjO9ARTkupacmVYW5qEsP0dmBEI312JfYOb/UP/7CeuGY7zqYjccGd55t42E4FJLK42U6V6C4dAMIrNxQ0pHNblZTlQU5BpSQto1FkFlYS6ynHqK05KrmbeUlmkrjfnaR8JpJYo1dSVuy1o6nO2bxPZ1iyeK52v0e+ZOhhNiKXp2FvuJ6GNE9DARPaI9dHxfjdqwrpmIzhLRg1d9/UNExERUmskvsJRslwOVhXkZbZJqGw6j1uc25II2X6alrV0ZHli/GKMqrYzYQ6Axo4SUmdE+Ep5rdZ2OhlIPesYjhjbqW0g0nsD5/iCuW2JZSNPo96LNxjbZYmXRc2X7LpSWEs8B+P68x1JiAD7EzFsB3ADgfUS0FVCCBIDXAehKZ9CpqivJ7ILbNhw2dFlI0+j3Yjg4g0Ca7ajnuo4auDQEKHkVI2YE3WNTxgUCtceTkSWkw8EZhGZiaVUMaerVRn1m9kICgIuDIczGE9imNxCUejARiRpS/SVWPz2BwM3Mf8HMTzDzk9pjqW9i5n5mPq5+HARwDoDWLvH/AfgwAEvq2zK5w40nGO2jYTT6018+WEyTGly0HESqOkfDcJAx/Y/mq/W5MRCYzqidcWQ2hpHQTMZ7CDT5uVkodmcZOiNoy6B0VKMdBmR25dBcorhKX4fUJvXf6yVZHhI66AkEzxDRHZm8CRHVA9gN4DARvRFALzOfzORnpqK2xI3R8CxCM6k3LdP682eyfLCYpjLlf9Z013I7xyKoLMxDtsv4JSsgs7tc7c7dyLxKjc/YEtJ0ms1drV4rIR0xd0ZwpncSnmzn3PstRQsEkicQeui5gjwIJRhMEVGAiIJEpLscgYi8AJ4E8BCU5aKPAfgbHd/3ABEdJaKjw8PDet9uQXU+tQtpGndt2h2VGTOCWp8bLgelfdfWORrJ+HjKhdQa0IVUu0M2NBAYvJegfSSMbJcDVUXp7w/xebKRn+syf0bQO4ltVYW694usK1ZuENKdbZphIjJrePmvMIae8wjymdnBzHnMXKB+rmt+SkRZUILAY+omtCYADQBOElEHlF3Lx4moYoH3fZiZ9zHzPr/fn8rvdI3LXUhTv4iYUTqqyXI6UFvixqWh9JeGan3Gj6vWgJLb1iEluGmzHiNU+/LQOzFl2I7ZtuEwGko8cGawGY+IUGdQTmUx8QSjuT+AbUvsKJ7P6SDUl7hxaZkEgmOd49j/98/hX3/WavdQxAIWLR/VENGeBZ6eBNDJzIuutZBS4/ZlAOeY+fMAwMynAZTNe00HgH3MPJLiuFOSyaaytpEQCnJdKDGwZHG+Jr83rRmBdgSk0YliQNko5cl2ZnRxuzQUQmVhLrw5S/4T062m2I1onDEYmM7oLl7TPhLChrLMt8TUFLtxQT3cxgxtwyFMRxNL7ii+WmOpFy1D5o1Lr/BMDB984gSiccYXf9GK39lXfcURm8J+epaGvgjgEID/VB+HAHwTwAUiel2S7zsI4D4AryGiE+ojo1xDugrURGM6d7hKxZDXsK6jV2vye9E5GkEsxQ6W2uym3oRAoPT2yayEtHU4NLdObRQjT3aLxRPoGougwYCZnrbrOdNOsovRgkwqZyoDQFOZB12jEdvPJvjkM83oGovg/71tJxIMfOaHF2wdj7iWnkDQB2A3M+9l5r0AdgFoA3AbgM8s9k3M/DwzEzPvYOZd6uPZq15Tb/ZsQFNb4kHXWHo5AjOWhTSNfg9m44mUO1heVO/0zMhdAJmdl8DMuDQUwnoDl4WAeZvKDOj2qbSP5owSxZoatZPscCizTrKLaR9OL6ndWOpFLMGmLlst5SfNg/jGS93441c14e7d1fiDmxvw7Zd7caJ7wrYxiWvpCQQbmfms9gkzNwPYzMxt5g3LeHVp9NkPzcQwGJgx/M52vnTL/C4MhJDlJEMuZAvR1r3Tucvtn5xGeDZuaH4AAKqKckFkzIzAiIohTU2xtsfBnAtu+0gYVYW5cGentszWmGF5cqYC01F85MlT2FZVgA/cuhEA8Ce3rEepNweffKZZEsfLiJ5AcJaI/p2IXqU+vgigmYhyABjb+MVE9SVu9E1MpVQbr92JmVE6qtH2EqQaCFoGg2jyew3f7ayp9bkxk+ZdrpYoXm9wAM1xKe0vjLjgzlWDGTQjAIw963m+SyPhtJawGm0uIX3x0ihGw7P4q9dvnStx9ua48Gev24hjneP44ZkBW8YlrqXnKvL7AFqhlH8+BGVZ6PehBIFbzBqY0TZVFCDByg5NvdpGzCsd1RS5s1HqzU75ru3CQBAby83r/Ver1qunc3GbCwQGzwgA4856bh8JozAvy5C+ReuKjN/1rGFmtA+H0pq5FOZlodSbbdumskNto8jNcmBPXdEVz//OvhqUeLLx0/NDtoxLXEtP+egUM/8jM9+tPj7HzBFmTjDzitmtskVNtKXSkfFSBi2KU9FYmlrlUHA6it6JKWyqMDEQZFBC2jocmrsIGa3BoHOCtbYhRhQB5GY5UV6QY8rBOWPhWQSmY2k3xmv0e21bGjrcNoa9dcXXdHZ1Ogg7qgtxqkfyBMuFnqZzG4joW2rzuDbtYcXgjFRX4oE724nmFAJB23AI1cV5yM1KvUVxKprKPCnVe7eos5pNJs4I1hXlpd21tVVNFJtRadXg92AkNIvJqcxWJdvTPLB+MbUG73rWZHJwDqAsPdrRfG4iMotzAwFc31Cy4Nd3VBehdSiEcBq7/YXx9CwNfQXAv0PZFXwLgP8G8DUzB2UGp4OwqSI/xUAQNjVRrGnyezEWnsW4zgZhFwaUiiEzZwSZdG29NBQyPD+g0S7emRwGE56JYSAwbejfrVknqGkX8XRzGY2lyr+tiYi1zeeOtI+BGbihcbFAUIgEA2f75MyE5UBPIMhj5p8CIGbuZOa/BfB6c4dlji2VBTjXH9BVrZBIaC2KrQkEwOWcxFJaBoPwZDvn1qbNkk4J6Xh4FqPhWVPyA8DlC2J7BoGgPcOL60KqfW70B6YNb0fdPhJGlpPS/rtunCtGsHZWcLh9DDkuB3bWLLwJbke1kjeQ5aHlQU8gmCEiB4CLRPR/iOhuKKeWrThbKgsQnI6hd2LppN5AYBpT0bipewg0c/+z6mw1cWEgiA3l+YadU7yYRr8HF4dCKZX5tQ6blygGlF3iRMhouWOu66iBf7c1xXlgVpoUGqltOKT0pEqzOqzRpi6kh9pGsaf22vyAxp+fg6rCXJy06FAfkZzepnNuAH8KYC+U3cL3mzkos2ytVHq1nOtfetv9+QFlyrrBpAvafNXFbmQ7Hbr/Z20ZDJqaH9BsrVICZyqb3cysGAKUEtLq4ryMZgRtwyEQQXcnTz3mdj0bnDDO9AS1muI8ZDnJ0oTx5FQUzf2BRZeFNDuqi2RGsEzoqRp6iZlDzNzDzO9i5nuY+ZAVgzPa5op8EAHNOtYlX+6agNNBuK46tf4u6XA6lI1hegLBcHAGo+FZU/MDGi1wprKO2zoUQm6Ww9Rlq4ZSL9p1LqMtpG04jHVFxhYBXD5K07gZQTzB6BiNzO01SYfL6UCNz51W5910vaTmB65v9CV93Y6aQnSORizPX4hr6aka2kdE3yai40R0SntYMTijeXJcqPO5dZWQHu8ax+aK/JR3c6arqcyj666tZdD8RLFmc0UBHISUEuytQyE0lnpNXbZqLPWgfTic9s5UoyuGAKC8IBdZTjJ0U5l2FkamY60zaO+FXofaRpHtcmBXTVHS1+2cyxPI8pDd9CwNPQalcujNAO77Rh/sAAAgAElEQVSc91iRtlYV4NxA8gtbPME42T2J3bXJ/yEbaUNZPjpGw0seW6lVDJm5mUyTl+1Eo9+rawalaTWhx9DVGko9CM/GMRxMfdczM6PNhIZ4ToeS0DVyacioNhjaCX1WtXQ43D6GPbVFS864tqvHbsrykP30BIJhZn6amdvVqqFOZu40fWQm2VJRgM7RSNLTylqHQgjNxLC7ptiycV3f4EOCgaMdY0lf1zIYRIknG/78HEvGta2qAM19+u7YIrNKIt6KQACklzAeCs4gPGtOEUCNz40eA++8tdYQmSa1a3xuBGdiGe+90GNyKoqzfZOL7h+YrzAvC42lHkkYLwN6AsHHiei/iOheIrpHe5g+MpNsUde9zydZ7ni5axwAsKfOukCwp64Y2U4HXrw0mvR1501uLXG1rZUF6Juc1rXHQVvasioQpJMwbkuzk6ceNT63IZ1RNe0jYXhzXPB7Mwv6tSb3QprvdM8kEgzsr0+eH9DsqC7EaQkEttMTCN4FpfX07bi8LPQGMwdlpq1VWuXQ4oHgeNc4itxZpvT6X0xulhO7aotwqG3xGUEiwbg4GLQkP6DZph6GoidPoC1bmR0IqoqUYxjTCgQm9o+qKXZjLM2zsRfSNmJMGwwjjh7VS2uPrvff6I7qIgwEpjEUmDZzWGIJegLBfvXIyPvVqqF3MfO7TR+ZSSoLc1GYl4XmJCWkL3dNYHdNkWmH0SzmxsYSnO2bXHQK3zsxhfBs3NJAoAVOPXmC413jyM9xmb4bWzuGMd0ZQW6WA5UFuYaPq8ZnbDtqo5LaNcVWBoIQitz6+0xpG85kecheegLBb4hoq+kjsQgRYUvl4q0mJqeiuDgUwu5a65aFNDc0liDBSvndQs70Kv+zWLk05PNko7IwF2d15AmOdY5jd11xRmcA69VQ6kkrELSPhFFf4jGlqkm74BoRCKajcfROTBkSCDw5LpR6s007L2G+VrW9iN6bqK2VhXA6SBLGNtMTCG4AcIKILqilo6dXavmoZktlAS4MBBY8BF37B7nHhkCwu7YI2S4HXmxbOE/wvVN9KPVmY4cFexvm21ZVsOTS0ORUFBcGg9hnUV6lodSLztFwygfZm1ExpKk18AS1rrEImI3LZRjVvnsprUMhbCjX/+ebl+1EXYk7pfbwwnh6AsHtADYAeB0u5wdWbPkooFToTEcT+MWFa/uhH++cAJGy2cVquVlO7KktwqEFAsFkJIrnmodw584q0w6jWczWygJcGg4nPdTneNc4mGFZIGgs9SAaZ/SmcNGdjSXQPT5lWtuQIncWvDkuQ+682+YOzjEmaGVy9Kheo6EZjIVnUw60jaVe3X22hDn07CzuXOhhxeDM8tot5SgvyMGjL177a7zcPY4NZV4U5GbZMDJleai5P4DJyJV5gmdO92E2nsCb91RbPqatVYWIJ3guGbyQYx3jcDoIuyzae6GVVKZyAekaiyCeMOac4oUQkWF33lqrDqOCVq3Pjb6JaVMPstfGvCHFpcsmvwcdo5GUZ3fCONbeWi4TWU4H3nGgDr9qGb5inZmZ1USx9ctCmhsbS8AMHG6/clbw1PFebCz3YpuavLWS9p7JWk0c7RzD1soCy3Zip1NCOneXbWIyu6E0vST21VqHQlhXlAdPjjF/njU+N+IJNrwp3nxaw8FU+3M1+j2YjSVSmt0JY63JQAAA9x6ogctB+Nqhy7OCS8MhTE5FLd1RfLVdtUXIcTmuKCPtGAnjWOc47tlTbXklEwBUF+chP9eF5v6FE8bReAInuiew18J9FyWebOTnulK66J7rD4IIGfXuWUqT34uusUjG7ahbh0NoMrAMt86CvQQXB0PwZDtRWZhaRdZch1RZHrKNrkBARHVEdKv6cR4RLTn3I6IaIvq5erLZWSJ6UH3+s0R0Xk08f5uIbLnqlhXk4revq8QTR7sRmY0hMB3FB/73JLJdDhxcX2rHkAAo3TX31hVfkTB+6uVeEAFv3FVly5iICFsrCxadETT3BTAdTWBfvXWBgIiUnkMpBIJTPRNY7/ci38Rlv0a/B/EEo2ss/VlBIsFz1TdGsWIvQbon083N7mw6UnMhiTW2TKWn6dwfAvgWgP9Qn6oG8B0dPzsG4EPMvBVK5dH71DLUnwDYzsw7ALQA+Gg6AzfC791Yh+B0DI8f6ca7v/ISzg8E8KV37pnrJGmXV23041x/APc+fAhHO8bw1PEeHGwqRWWhuQfRJLOrpghnewMYW2CH8dFOZSf2vjp9u0mNsr4sX/dBQ8yMkz0TcweimEVLlLbqPFtiIb0TU5iOJlKqvllKeX4usp0O0wNBOrOYEk82CnJdyyZhPBGZxYF/eA5v+48XcVztMrDa6ZkRvA/AQQABAGDmiwDKlvomZu5n5uPqx0EA5wCsY+YfM7O29fIQlMBii311xdhSWYBPPtOM413j+Oe378ZrNpfbNZw57765AR+/cysuDgXxli+9iJ7xKdyzZ52tY7pnTzVm4wl861j3NV871jmG6uI8VKS4JJCpXbVFGAnN6jovoXdiCiOhWewyuRqsMcXT5hZixuE+Dgeh2pdn2l6CwHQUA4FpbChLfY8LEaHR77X0zIRkvn6kCyOhWVwcCuGeL/4Gf/Q/R1f9zmddJ5Qx89xtIBG5AKQ0byKiegC7ARy+6kvvBvCDVH6WkYgID7yyAQ4CPvuWnbjjukq7hnKFLKcD7zrYgF99+Bb8xe2bcdvWcty+vcLWMW2qyMf++mI8drjrimkzM+Nox7hlZaPz7VbbHOu5a9NaHe9cojVyprw5LpQX5Og+bW4hrWpNvdHnPptZQnppKL1EsabRr68Nu9mi8QT++zedOLi+BL/+8C34wK0b8YsLw/jMjy7YPTRT6QkEvySijwHII6LbAHwTwPf0vgEReQE8CeAhZg7Me/4voSwfPbbI9z1AREeJ6Ojw8LDet0vZ3burceLjr8Ob99o2MVmUO9uF9766Cf/5e/ssq8ZJ5p031KFzNIIXLo3MPdczPoWh4Az26mwyZqTNFfnIy3Li5a6ld6We7J5AttOBzRXmV101+TOri28dCqHUm41ij742DXpp7ajNcDHDk+ma/F4MBKYRNqhPU7qePd2PgcA03nNzAzw5Ljx46wbccV0lfnpuEDETS2/tpicQfATAMIDTAP4IwLMA/krPDyeiLChB4DFmfmre878PZWPa7/IiC7zM/LDa42if3+/X83Zps2vPwEpz+/YK+DzZV1Raff90PwDrNpLN53I6sKO6EC936wgEPRPYUlWAbJf5hXKNfg8upXjW83ytJu1+rvW5EZiOXbNHxQitQyFkuxxp59caM+goaxRmxiPPt6Ox1INXb7y8+n3b1nKMR6I41rl68wV6/q/IA/AIM/8OM78FwCPqc0mRUjrwZQDnmPnz856/HcCHAdzFzNYdmyQyluNy4nf2VeO5c0MYmJzG1w934dM/OI9XbfRbcobyQnbXFqO5bzLprud4gnG6ZxI7LWrN0eT3IjAdw0go9SMYmZUOs2Z0cK0xsYRUOZnOk3afqbkSUp3ndpvheNcETvZM4l0H66/oRfXKjX5kOx34cfOgbWMzm55A8FNceeHPA/Ccju87COWg+9cQ0Qn1cQeAfwOQD+An6nNfSnXQwj7vOFCLeILx3seO4WPfPo1bNvnxH/ftNfVoymT21BYhGuekTfEuDYcQno3PHY1otrmEcRoXteHQDALTsbTX2pMx81yCi0PBlHcUz1dX4gYRbM0TPPJ8OwpyXdcsE3tzXDi4vgQ/aR607JQ3q+kJBLnMPPcvWv14yfkfMz/PzMTMO5h5l/p4lpnXM3PNvOf+OJNfQFirrsSDV2704+WuCdy2tRxfum+voYfAp0praZEsT3BSXToyO1Gs0TasXUrjotY6t9Zu/AzLrBnB1GwcPeNTGQWv3Cwn1hXl2bY0NBqawQ/PDuDeA7UL5uNu21qBrrEIWlZpczw9gSBMRHu0T4hoLwDZC76G/fXrt+DPf2sTvvi7e5Djsi8IAEBZfi6qi/OSB4KeCeTnuObWoc1WVZiH3CxHWjOC1gyTrsl4c1wo8WRntNltIZeGQ2DOfMyNGSbZM3G8awLxBOO2rQuXj9+6RckZ/PjsgJXDsoyeUpQHAXyTiPoAEIAKAG8zdVRiWdtQnp/RMoDRdtcWJz3r+WT3JK6rLrRs+crhIDSUetNa724dCs2VoJqhtsSNjhFjZwStGZaOahpLPTjWMQZmtryVysnuCTgdhO3rFs4jlRXkYndtEX5ybhDvf+0GS8dmhaQzAiJyAMgGsBnAewH8MYAtzHzMgrEJocue2iL0T06jf/Laiep0NI7zAwHTdxRfrcnvQVsayxzptmnQq6HEg45RY2cEFwaDyHIS6jOccTX5PQjPxjEYmDFoZPqd7JnA5or8pMuct20tx6meSQxMrr7NZUkDATMnAHyBmaPMfEZ9GF97JkQGtNPkTiywPHSuP4BonE3fUXy1Rr8X3WMRzMQWr2ZaiBYIzNJQ6kH/5DSmZlMbVzIXB4NoKPVkfE5GJkn2TCQSjJPdE0vmkF6nLhv95Nzqqx7SVTVERG8mO9peCqHD1kplf8BC+wl+c0lp3mfHjCDBQGcKG7gmp6IYCs6YGgi0u/ZOA/MELYMhQ45P1c5euGRxwrh9NIzAdAy7lvg30uT3oro4Dy/O21C5WugJBH8EZTfxLBEFiChIREufZC6ERbJdDmyvKrgmTzA5FcV//roNN68vRVWRtQ37tA1hWusFPYxaa0/G6E6fkdkYuscjhgSC8vxc5GU5LZ8R6K0q07rwnk9yQNNKpeeEsnxmdjBzFjMXqJ9bfzqKEEm8dks5jndN4Pun+uee++IvWjE5FcVH79hs+Xi0C24qCePWIeUCY8WMoN2gPEHrkFIxtNGATqkOh5JnSGUWZYST3RPwZDt1/blvrshHx0jyY1tXIr3nEdxFRJ9TH28we1BCpOoPX9GIXTVF+MiTp9A1GkHPeARfeaEDd+9eh21V1p8/7clxobIwN6UNUie6J1CQ60JNsXlt0L05Lvjzc9Bh0PKLVldvVBVZnc+NToOT2Us50T2B66oLde2K3lRRgARfnr2tFnrOI/g0lBLSZvXxIBF9yuyBCZGKbJcD/3rvboCA9z9+HJ/6wXkQgD973SbbxrS+zIsLg/qXEY52jGNvXbHpZa4NJR7DSkgvDgaR7XTMnYCWqdoSN7rHpyw7GGYmFkdzf0D3ZsNNFUrAW23LQ3pmBHcAuI2ZH2HmRwDcDuD15g5LiNTV+Nz47Ft24GTPJL5/qh/vubnB8tzAfLtqinB+IKiro+ZkJIqLQyFLjvusL3WnVdq6kJbBIJrKvHBlWDGkqfW5MRtLYDBoTYnmuf6gUlWms5igvsSNbJcDFwZWV5pU79/e/D8l6+fZQuh0+/ZK/NErG1Ff4sYfv7rJ1rHsrStGPME4oaM7qnamwh5LAoEHI6EZBKczrwRXKoYMPFtZPVLTqjyBlijepfOccpfTgY3l3jU5I/gUgJeJ6KtE9CiAYwD+3txhCZG+j96xBT/70Kttby++p64YRMqSz1KOdY7D6SDssqAfUkOJWkKa4cU2NBND78SUIRVDGjMb4y3kRPcEyvJzUFGg/3S9TeUFuLBWAgERHVQ/fArKmcNPQTlb4EZm/l8LxiZE2uzqhjpfQW4WNpXn42jn4u0vNMc6x7G1ssCSA4ga1Hr9TJeHLqr5DyPLXauK8uB0kGkH6FxN20iWyjapzRX5GArOLHh+90qVbEbwL+p/X1TPH35afazOrktCmGBffTFeVhuaLSYaT+BE94Ql+QEAqPMpgSDTyqEWNRBoCVQjZDkdWFeUh04LZgSTkSjaRsIpz8IuJ4xXT54gWSCIEtHDAKqJ6F+uflg1QCFWsv31PoRmYkkvGuf7g5iKxi0LBHnZTlQW5hoQCELIzXIYXu5q5tnK82lnWFy3SKO5xWxWA8FqWh5KFgjeAOBnUFpOH1vgIYRYgnZxT5Yn0JaOrAoEAFBf4sl4U1mLepKa0ctwtSVudFmwl0BL+G6pTG1/rD8/B8XurFUVCBZdkGTmEQDfIKJzzHzSwjEJsWqsK8pDZWEujnaO4/6b6hd8zbHOcVQV5lpa6trg9+DZ0/1LvzCJi4Mh3NRUYtCILqv1uTEeiSIwHTU14X9+IIASTzb8+am1/CYibKrIX1WVQ3paTEgQECJNRIS9dcnPSzjeOW5J2eh8DSUeTESimIikl/CcnIpiIDCNjQbmBzTa5jSzE8bnB4LYXJne+DdXFKBlMGjZxjezGbMLRAixqP31PvRPTqN34trzEvomptA3OW3pshAwr+dQmnkCrWLIyD0EmtoS80tI4wlGy2AQmyvSa5u2qSIfEfWIztVAT4uJBj3PCSEWdjlPcO2s4FinkjvYV+ezdEwNpcrFNt1Dai7MlY4aPyOwYi9B52gY09FE2hVPq61ySM+M4MkFnvuW0QMRYrXaXJEPb45rwYTxE0e7UezOSnuJIl01PjcclH476ua+APJzXaguNj6vkZ+bBZ8n29TdxXOJ4jRnBNomutWSMF40WUxEmwFsA1BIRPfM+1IBAP3b8IRY41xOB3bXFuGXLcOYjsbnjkP89cVh/PriCP76DVszPt0rVTkuJ9YV56E9zYttc38AWysLTDtSUykhNa9y6PxAEA4CNqS5tOXNcaHGl4fzKTQVXM6S/evbBKWEtAjAnfMeewD8oflDE2L1ePfNDegai+BTz54DoByP+OkfnEd1cR7eeUOtLWNq8nvn1vpTEU8wzvcHTW3vbfZegvP9AdSXepKeUbyU9X5vSm3Gl7Nk5aPfBfBdIrqRmV9M9QcTUQ2A/wZQDoABPMzM/0xEPgD/C6AeQAeAtzLz0s1YhFjBbtlUhj+4uQH/9Xw7blpfiuloHGf7Avint+1Cjiv9i1EmtlUV4PmLI1fMUvRoHwljKhrH1irzzqeqK3Hj+6f7EY0nTJktnR8IpryR7GoNpV4cahtDIsHLoqVJJvT8CbcS0ceI6GEiekR76Pi+GIAPMfNWKL2K3kdEWwF8BMBPmXkDgJ+qnwux6n349s24bl0hPvytU/jMDy9gS2UB7tpZZdt4tlUVIqZWz6SiuV9JkG5NcSNWKmp9bsQTjF4TqnJCMzF0jUXmdginq9HvwVQ0blnLbDPpCQTfhdJ6+jkA35/3SErtT3Rc/TgI4ByAdQDeCOBR9WWPAnhT6sMWYuXJdjnwb+/YrVzgJqbwkd/ebOud5HZ1aedsX2qVL819AWQ5ydQjNc2sHDKqR1KjWoK7GpaH9LQ6dDPzX2TyJkRUD2A3gMMAyplZ29I4AGXpaKHveQDAAwBQW2vPGqoQRqsr8eBL79yL413jeOWGUlvHUuPLQ36uC2d6J1P6vub+ADaU5SPbZV6Cu05rlW1CIDjfn15riavN7+J6cL29f5eZ0vM3+QwR3ZHuGxCRF0oJ6kPMfMWtBzMzlPzBNZj5YWbex8z7/H5/um8vxLJz84ZS/OlrN5hWcaMXEWFbVUFaM4JtJuYHAKAsPwfZLge6zQgEAwF4c1xYl2FLj4qCXORlOdMuwV1O9ASCB6EEgykiChBRkIh0/cshoiwoQeAxZn5KfXqQiCrVr1cCGEpn4EKIzG2rKsS5/gBi8YSu1w8FpjESmjE1UQwo50nU+twZd0hdyPmBIDaWZ94sj4jQUOpB+8jKP8heT6+hfGZ2MHMeMxeony/5r4CU250vAzjHzJ+f96WnAdyvfnw/lByEEMIG29cVYCaWwCWdd7VnLUgUa5SLrLGBgJlxvj+AzQaNv8HvMez8ZzslO6Fss/rfPQs9dPzsgwDuA/AaIjqhPu4A8GkAtxHRRQC3qp8LIWywbS5hrC9P0KwuI20xeUYAKPscOkbDumcrevRPTiMwHcMWg5rlNZZ60D0WwWzMuDHaIVmy+INQkrX/uMDXGMBrkv1gZn4ewGJzr9fqGp0QwlSNpR7kZjlwpjeAe3Tc3jX3B1Djy7PkPOgmvwfROKN7fAoNaoVOprSWEEads9zo9yDBSnWTmVVUZku2oewB9b+3WDccIYSVXE4HNlcU6J4RnOsLWLIsBGDuwnppKGRcIDD4eM2GUmWM7SPhFR0IdNV/EdF2InorEf2e9jB7YEIIa2xfV4DmvsCSvfXDMzG0j4ZNbS0xX6NfubC2DhuXjG0ZCKK8IAdF7mxDfl5DibaXYGUnjPW0of44gH9VH7cA+AyAu0welxDCItuqChGciaF7PHmp5vmBAJitSRQDQGFeFvz5Obg0ZNxF9sJg0LBlIQAodGehxJNteFLbanpmBG+BsqY/wMzvArATyk5jIcQqoO0wPtObvCr8dI+yfGRFoljT5PfgkkF32/EE4+JQCJsMDASAkidY6ZVDegLBFDMnAMSIqABK3X+NucMSQlhlY4UXLgctmSf4cfMgGv0eVBVa14W+ye/FpeEwlL2nmekcDWM2ljD8eE0zylytpicQHCWiIgD/CeAYgOMAUu5GKoRYnnJcTmwoz8eZJDuMR0IzONQ2itdfV2npjugmvxeTU1GMhtM7W3m+lkFlZmH0jKCh1Ivh4AyC01FDf66VkgYCdVPYp5h5gpm/BOA2APerS0RCiFVif30xDreNYjKy8MXsh2cGkGDg9TsqLR3X/MqhTGnN5tI9jGYxDRme/7wcJA0Eai+gZ+d93sHMp0wflRDCUm/dV4OZWALfOdG74Ne/f6ofTX6P4XfTS2kqM65y6MJgELU+N9zZenpt6tfkX+WBQHWciPabPhIhhG22ryvEdesK8fiRrmvW44eDMzjcbv2yEABUqo3dLg1lfpFtGTC2YkhTW+IGEXS36ViO9ASC6wG8SESXiOgUEZ0mIpkVCLHKvP1ADc4PBHGie+KK5394VlsWsv4QHYeD0GhA5dBMLI72kTA2VRi/6SvH5UR1cd6qnxH8FoAmKC0l7oRyjvGdZg5KCGG9u3ZWIS/LiW8c6b7i+e+f6kOT34ONBq+t66VUDmUWCNpHwogl2JQZAaAkjFdyF1I9geDvmLlz/gPA35k9MCGEtfJzs3DXzio8fbJvrgJmKDiNI+1jeP2OKtvOT2jye9E7MYWp2XjaP0PrMWRUa4mrNZS40TESMaTM1Q56AsG2+Z8QkRPAXnOGI4Sw09sP1GAqGscTR3vwXPMgPvbUaWVZ6Dprq4XmW1/mBTPQlsEdd8tgEC4HobHUnFlNQ6kHoZkYhkMzpvx8sy2aPieijwL4GIC8eQfREIBZAA9bMDYhhMV21RRhc0U+PvlMMwDAm+PCuw822LYsBABNZUpVzqXh9PscXRhQGteZdbxmvVpC2jESQVm+dRvujJKs++inAHyKiD7FzB+1cExCCJsQET5+5zb89NwgXrXJj+sbSkw9m1iP+hKPUpWTwV6ClsEgrqs2rzOONtPoGAnjQIPPtPcxi56C2meIyMPMYSJ6J4A9AP5ZzRUIIVaZG5tKcGNTid3DmJOb5URNsTvthHFkVmmo9+Y91QaP7LKqolxkOWnF9hzSE+r/HUCEiHYC+BCASwD+29RRCSHEPOvLvHM7g1PVOhQCM0wpHdW4nA7UmHTGshX0BIKYusP4jQD+jZm/AMDa7YVCiDVt+7pCtA6FEJmNpfy9Z9UeSpsrzO2a2riCm8/pCQRBNXH8TgDfJyIHAPPPqRNCCNXO6kIkeOlW2Qs52jGOEk826krcJozssvoSDzpGw0se8LMc6QkEbwMwA+A9zDwAoBrAZ00dlRBCzKMlek/1TCzxymsd6xzDnrpi0/dB1Jd6MBNLYCAwber7mGHJQMDMA8z8eWb+tfp5FzNLjkAIYZmy/FxUFubiVI++s5U1w8EZdIxGsK+u2KSRXda4gruQ6jmq8h4iukhEk0QUIKLgvH0FQghhiR3VhSnPCI51jgMA9tWbHwjqV3MggHpGMTMXMnMBM+cz85JZFyJ6hIiGiOjMvOd2EdEhIjpBREeJ6EAmgxdCrB07qovQMRpZ9MyEhRzrHEO2y4Ht68w/XbeiIBc5LseKrBzSEwgGmflcGj/7qwBuv+q5zwD4BDPvAvA36udCCLGkndVFAIBTvfpnBUc7x7FjXSFyXE6zhjXH4aAVe2yl3qMq/5eI7lWXie4honuW+iZm/hWAsaufBqDNJgoB9KU2XCHEWnXdOi1hrC9PMB2N40zvJPZasCykqS/xoH105QUCPTuLCwBEALxu3nMM4Kk03u8hAD8ios9BCUI3pfEzhBBrUKE7C/Ulbt15glM9k4jGGfvqrGv5UF/qwXPnBhGLJ+By2tuaIxVLBgKDzyd+L4APMPOTRPRWAF8GcOtCLySiBwA8AAC1tbUGDkEIsVLtqC7CSx1XLzQs7Gin8rq9FlQMaRpLPYglGL0TU6gr8Vj2vpnSUzVUTUTfVhO/Q0T0JBGl27TjflyeSXwTwKLJYmZ+mJn3MfM+v9+f5tsJIVaTHdWF6J+cxlBw6Vr9Yx3jaPR74PNkWzAyxUqtHNIzd/kKgKcBVKmP76nPpaMPwKvUj18D4GKaP0cIsQbtUBPGp5fIEyQSjGNd45bsH5ivvlTZvbwaA4Gfmb/CzDH18VUAS96iE9HjAF4EsImIeojoPQD+EMA/EtFJAP8AdelHCCH02L6uAA4CTi4RCNpGQpiIRC3NDwCA35sDb45rxZWQ6kkWj6rtpx9XP78XwOhS38TM9y7yJTndTAiRFne2CxvK8pdMGL94SblEWVkxBCjnOdSXuldcO2o9M4J3A3grgAEA/QDeAsDIBLIQQui2p64IL7WPITyzeCfSbx7rweaK/Lm2D1ZqKPWibXiVBQL1wPq7mNnPzGXM/CZm7rJicEIIcbU376lGeDaOp08uvA3pbN8kTvVM4u37a0xvNLeQTeVe9E5MIZQkUC03eqqGHiWionmfFxPRI+YOSwghFra3rhgby734+uGF70e/caQb2S4H7t5t3olkyWwsV45ruf8nFDMAAAl5SURBVJjmQTp20LM0tIOZ5xbkmHkcwG7zhiSEEIsjIrzjQC1O905eUz00NRvHd0704o7tFSh023NsyqYKJRCke6KaHfQEAgcRzWVciMgHfUlmIYQwxd17qpGb5cDXj1x5dPqzp/sRnI7h7Qfs24RaU+xGbpYDFwbSO2PZDnoCwT8CeJGIPklEnwTwG0izOCGEjQrzsnDnjip890QfgtOXu5F+46UuNJR6cH2DtWWj8zkchI3l+atrRqAeQnMPgEH1cQ8z/4/ZAxNCiGTecX0tIrNxfPdEH6LxBA61jeKljnG8zaYk8Xwby/NxYQUFAl1LPMzcDKDZ5LEIIYRuu2qKsKWyAH/3/WZ84ntnEY0z8rKcePMee5LE820qz8e3jvVgLDxraYuLdMlavxBiRSIifPS3N+PxI12oL/Vgvd+L/fU++PNz7B4aNs5LGN/QWGLzaJYmgUAIsWK9cqMfr9y4/JpSbipfWYFg5TTMFkKIFaK8IAcFuS5cGFgZeQIJBEIIYTAiwqaKlVM5JIFACCFMsLE8HxcGgmBmu4eyJAkEQghhgk0V+QhMxzAYmLF7KEuSQCCEECbQeg6thP0EEgiEEMIEWiBoSTNh3D0WwZ3/+rzuM5ozIYFACCFM4PNkw5+fk/aM4Ej7GE73TiI/1/wqfwkEQghhkk0Z9Bw60j6GwrwsbCzLN3hU15JAIIQQJtlaVYDzA0FMR+Mpf+/h9lHsr/fB4TC/b5IEAiGEMMn+eh9mYwmc7E5+xvLVBgPT6BiNWNZFVQKBEEKY5EC9D0TA4fbUEr5H1Ndf3yiBQAghVrRCdxY2VxTgcPtoSt93uH0UnmwntlYWmDSyK5kWCIjoESIaIqIzVz3/fiI6T0RniUgOuBFCrGrXN/hwrHMcs7GE7u850j6GvfU+uJzW3Kub+S5fBXD7/CeI6BYAbwSwk5m3Aficie8vhBC2u6HRh+loAqd79eUJxsKzaBkMWXrKmmmBgJl/BeDqhbH3Avg0M8+orxky6/2FEGI5ONCgtKE+1KYvT6BtIFsVgWARGwG8gogOE9EviWi/xe8vhBCW8nmysbHcqzthfLhtDDkuB66rLjR5ZJdZHQhcAHwAbgDw5wCeoEUOFyWiB4joKBEdHR4etnKMQghhqOsbSnCsYwyx+NJ5giMdo9hdW4Qcl9OCkSmsDgQ9AJ5ixREACQClC72QmR9m5n3MvM/vX34nEAkhhF43NJYgPBvHmb5A0tcFpqNo7gvMLSdZxepA8B0AtwAAEW0EkA1gxOIxCCGEpQ6o6/2H25KXkf6mdQQJBm6wMD8AmFs++jiAFwFsIqIeInoPgEcANKolpd8AcD+vhFMbhBAiA/78HDT5PUvmCb5+pBsVBblzgcMqprW1Y+Z7F/nSO816TyGEWK6ubyzB0yf6EJ6JwZNz7aW3YySMX7UM44O3bbRs/4BGdhYLIYQF3rK3GqGZGL52qHPBrz92uBMuB+Ht+2ssHpkEAiGEsMSe2mK8YkMpHv5VGyKzsSu+NjUbxxNHe/Bb2ytQVpBr+dgkEAghhEUeunUDRsOzeOxQ1xXPf+9UHyanorjvhjpbxiWBQAghLLK3zoeb15fiP351CVOzl88o+NqhTmwo81q6m3g+CQRCCGGhB2/dgJHQLL52qBMnuyfw2R+dx6meSdx3Yx0W2V9rOvMPwxRCCDFnf70PNzWV4O+fPQcAIAJuairBPXuqbRuTBAIhhLDYx+/chkdf7MCBeh9esaEUJd4cW8cjgUAIISy2qSIf/3D3dXYPY47kCIQQYo2TQCCEEGucBAIhhFjjJBAIIcQaJ4FACCHWOAkEQgixxkkgEEKINU4CgRBCrHG0Eg4II6JhAAs38V5aKdbecZjyO68N8juvDZn8znXMvOSh7ysiEGSCiI4y8z67x2El+Z3XBvmd1wYrfmdZGhJCiDVOAoEQQqxxayEQPGz3AGwgv/PaIL/z2mD677zqcwRCCCGSWwszAiGEEEms6kBARLcT0QUiaiWij9g9HrMRUQ0R/ZyImonoLBE9aPeYrEBETiJ6mYiesXssViCiIiL6FhGdJ6JzRHSj3WMyGxF9QP03fYaIHieiXLvHZDQieoSIhojozLznfET0EyK6qP632Iz3XrWBgIicAL4A4LcBbAVwLxFttXdUposB+BAzbwVwA4D3rYHfGQAeBHDO7kFY6J8B/JCZNwPYiVX+uxPROgB/CmAfM28H4ATwdntHZYqvArj9quc+AuCnzLwBwE/Vzw23agMBgAMAWpm5jZlnAXwDwBttHpOpmLmfmY+rHwehXCDW2TsqcxFRNYDXA/gvu8diBSIqBPBKAF8GAGaeZeYJe0dlCReAPCJyAXAD6LN5PIZj5l8BGLvq6TcCeFT9+FEAbzLjvVdzIFgHoHve5z1Y5RfF+YioHsBuAIftHYnp/gnAhwEk7B6IRRoADAP4iroc9l9E5LF7UGZi5l4AnwPQBaAfwCQz/9jeUVmmnJn71Y8HAJSb8SarORCsWUTkBfAkgIeYOWD3eMxCRG8AMMTMx+wei4VcAPYA+Hdm3g0gDJOWC5YLdV38jVCCYBUADxG9095RWY+VEk9TyjxXcyDoBVAz7/Nq9blVjYiyoASBx5j5KbvHY7KDAO4iog4oS3+vIaKv2Tsk0/UA6GFmbab3LSiBYTW7FUA7Mw8zcxTAUwBusnlMVhkkokoAUP87ZMabrOZA8BKADUTUQETZUJJLT9s8JlMREUFZOz7HzJ+3ezxmY+aPMnM1M9dD+fv9GTOv6jtFZh4A0E1Em9SnXgug2cYhWaELwA1E5Fb/jb8WqzxBPs/TAO5XP74fwHfNeBOXGT90OWDmGBH9HwA/glJl8Agzn7V5WGY7COA+AKeJ6IT63MeY+VkbxySM934Aj6k3OG0A3mXzeEzFzIeJ6FsAjkOpjHsZq3CHMRE9DuDVAEqJqAfAxwF8GsATRPQeKB2Y32rKe8vOYiGEWNtW89KQEEIIHSQQCCHEGieBQAgh1jgJBEIIscZJIBBCiDVOAoEQaVK7gP6J3eMQIlMSCIRIXxEACQRixZNAIET6Pg2giYhOENFn7R6MEOmSDWVCpEnt8PqM2iNfiBVLZgRCCLHGSSAQQog1TgKBEOkLAsi3exBCZEoCgRBpYuZRAC+oB6pLslisWJIsFkKINU5mBEIIscZJIBBCiDVOAoEQQqxxEgiEEGKNk0AghBBrnAQCIYRY4yQQCCHEGieBQAgh1rj/D6Wu5rVF51/MAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# The magnitude of stress in the rod over time.\n",
"plot(sol.t, norm(a_q_(*sol.y) * c_(*sol.y), ord=2, axis=0))\n",
"xlabel('t')\n",
"ylabel('constraint force magnitude')\n",
"show()"
]
},
{
"cell_type": "code",
"execution_count": 224,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - g m y{\\left(t \\right)} + \\frac{m \\left(\\left(\\frac{d}{d t} x{\\left(t \\right)}\\right)^{2} + \\left(\\frac{d}{d t} y{\\left(t \\right)}\\right)^{2}\\right)}{2} + \\left(- l^{2} + x^{2}{\\left(t \\right)} + y^{2}{\\left(t \\right)}\\right) a{\\left(t \\right)}$"
],
"text/plain": [
"-g*m*y(t) + m*(Derivative(x(t), t)**2 + Derivative(y(t), t)**2)/2 + (-l**2 + x(t)**2 + y(t)**2)*a(t)"
]
},
"execution_count": 224,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LL(t)"
]
},
{
"cell_type": "code",
"execution_count": 225,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle m \\frac{d}{d t} x{\\left(t \\right)}$"
],
"text/plain": [
"m*Derivative(x(t), t)"
]
},
"execution_count": 225,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Hamiltonian formulation\n",
"# Congujate momenta\n",
"px, py, pa = sp.symbols('p_x p_y p_a', cls=sp.Function)\n",
"# x\n",
"px_def = lambda t : LL(t).diff(x(t).diff(t))\n",
"px_def(t)"
]
},
{
"cell_type": "code",
"execution_count": 226,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle m \\frac{d}{d t} y{\\left(t \\right)}$"
],
"text/plain": [
"m*Derivative(y(t), t)"
]
},
"execution_count": 226,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# y\n",
"py_def = lambda t : LL(t).diff(y(t).diff(t))\n",
"py_def(t)"
]
},
{
"cell_type": "code",
"execution_count": 227,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle 0$"
],
"text/plain": [
"0"
]
},
"execution_count": 227,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pa_def = lambda t : LL(t).diff(a(t).diff(t))\n",
"pa_def(t)"
]
},
{
"cell_type": "code",
"execution_count": 228,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{Derivative(y(t), t): p_y(t)/m, Derivative(x(t), t): p_x(t)/m}"
]
},
"execution_count": 228,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Solve for q_dot's with p, q.\n",
"q_dots = sp.solve([px(t) - px_def(t), py(t) - py_def(t), pa(t) - pa_def(t)], [x(t).diff(t), y(t).diff(t), a(t).diff(t)])\n",
"q_dots"
]
},
{
"cell_type": "code",
"execution_count": 229,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{2 m \\left(g m y{\\left(t \\right)} - \\left(- l^{2} + x^{2}{\\left(t \\right)} + y^{2}{\\left(t \\right)}\\right) a{\\left(t \\right)}\\right) + \\operatorname{p_{x}}^{2}{\\left(t \\right)} + \\operatorname{p_{y}}^{2}{\\left(t \\right)}}{2 m}$"
],
"text/plain": [
"(2*m*(g*m*y(t) - (-l**2 + x(t)**2 + y(t)**2)*a(t)) + p_x(t)**2 + p_y(t)**2)/(2*m)"
]
},
"execution_count": 229,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Hamiltonian, a function of p, q, t\n",
"H = lambda t : (px(t) * x(t).diff(t) + py(t) * y(t).diff(t) + pa(t) * a(t).diff(t) - LL(t)).subs(q_dots).subs(pa(t), pa_def(t))\n",
"H(t).simplify()"
]
},
{
"cell_type": "code",
"execution_count": 230,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{\\operatorname{p_{x}}{\\left(t \\right)}}{m}$"
],
"text/plain": [
"p_x(t)/m"
]
},
"execution_count": 230,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Dynamical equations\n",
"# x\n",
"x_dot = H(t).diff(px(t))\n",
"x_dot"
]
},
{
"cell_type": "code",
"execution_count": 231,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{\\operatorname{p_{y}}{\\left(t \\right)}}{m}$"
],
"text/plain": [
"p_y(t)/m"
]
},
"execution_count": 231,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# y\n",
"y_dot = H(t).diff(py(t))\n",
"y_dot"
]
},
{
"cell_type": "code",
"execution_count": 232,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle 0$"
],
"text/plain": [
"0"
]
},
"execution_count": 232,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# a\n",
"# This means that a(t) is a constant.\n",
"a_dot = H(t).diff(pa(t))\n",
"a_dot"
]
},
{
"cell_type": "code",
"execution_count": 233,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle 2 a{\\left(t \\right)} x{\\left(t \\right)}$"
],
"text/plain": [
"2*a(t)*x(t)"
]
},
"execution_count": 233,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# px\n",
"px_dot = -H(t).diff(x(t))\n",
"px_dot"
]
},
{
"cell_type": "code",
"execution_count": 234,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - g m + 2 a{\\left(t \\right)} y{\\left(t \\right)}$"
],
"text/plain": [
"-g*m + 2*a(t)*y(t)"
]
},
"execution_count": 234,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# py\n",
"py_dot = -H(t).diff(y(t))\n",
"py_dot"
]
},
{
"cell_type": "code",
"execution_count": 235,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - l^{2} + x^{2}{\\left(t \\right)} + y^{2}{\\left(t \\right)}$"
],
"text/plain": [
"-l**2 + x(t)**2 + y(t)**2"
]
},
"execution_count": 235,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# pa\n",
"# This has to be zero since pa(t) = 0.\n",
"pa_dot = -H(t).diff(a(t))\n",
"pa_dot"
]
},
{
"cell_type": "code",
"execution_count": 297,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{Derivative(x(t), t): p_x(t)/m,\n",
" Derivative(y(t), t): p_y(t)/m,\n",
" Derivative(p_x(t), t): 2*a(t)*x(t),\n",
" Derivative(p_y(t), t): -g*m + 2*a(t)*y(t)}"
]
},
"execution_count": 297,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Rewrite dotted variables as undotted ones. \n",
"# XXX there should be no dotted variables or a(t) on the right hand side of the ODEs!\n",
"dot_sol = sp.solve([\n",
" x_dot - x(t).diff(t),\n",
" y_dot - y(t).diff(t),\n",
"# a_dot - a(t).diff(t),\n",
" px_dot - px(t).diff(t), \n",
" py_dot - py(t).diff(t),\n",
"# pa_dot.diff(t),\n",
"], [\n",
" x(t).diff(t), \n",
" y(t).diff(t),\n",
" px(t).diff(t),\n",
" py(t).diff(t),\n",
"# a(t),\n",
"])\n",
"\n",
"dot_sol"
]
},
{
"cell_type": "code",
"execution_count": 295,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle 2 x{\\left(t \\right)} \\frac{d}{d t} x{\\left(t \\right)} + 2 y{\\left(t \\right)} \\frac{d}{d t} y{\\left(t \\right)}$"
],
"text/plain": [
"2*x(t)*Derivative(x(t), t) + 2*y(t)*Derivative(y(t), t)"
]
},
"execution_count": 295,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pa_dot.diff(t)"
]
},
{
"cell_type": "code",
"execution_count": 300,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{2 \\operatorname{p_{x}}{\\left(t \\right)} x{\\left(t \\right)}}{m} + \\frac{2 \\operatorname{p_{y}}{\\left(t \\right)} y{\\left(t \\right)}}{m}$"
],
"text/plain": [
"2*p_x(t)*x(t)/m + 2*p_y(t)*y(t)/m"
]
},
"execution_count": 300,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pa_dot_dot = pa_dot.diff(t).subs(dot_sol)\n",
"pa_dot_dot"
]
},
{
"cell_type": "code",
"execution_count": 302,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{2 \\operatorname{p_{x}}{\\left(t \\right)} \\frac{d}{d t} x{\\left(t \\right)}}{m} + \\frac{2 \\operatorname{p_{y}}{\\left(t \\right)} \\frac{d}{d t} y{\\left(t \\right)}}{m} + \\frac{2 x{\\left(t \\right)} \\frac{d}{d t} \\operatorname{p_{x}}{\\left(t \\right)}}{m} + \\frac{2 y{\\left(t \\right)} \\frac{d}{d t} \\operatorname{p_{y}}{\\left(t \\right)}}{m}$"
],
"text/plain": [
"2*p_x(t)*Derivative(x(t), t)/m + 2*p_y(t)*Derivative(y(t), t)/m + 2*x(t)*Derivative(p_x(t), t)/m + 2*y(t)*Derivative(p_y(t), t)/m"
]
},
"execution_count": 302,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pa_dot_dot.diff(t)"
]
},
{
"cell_type": "code",
"execution_count": 304,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{2 \\left(- g m + 2 a{\\left(t \\right)} y{\\left(t \\right)}\\right) y{\\left(t \\right)}}{m} + \\frac{4 a{\\left(t \\right)} x^{2}{\\left(t \\right)}}{m} + \\frac{2 \\operatorname{p_{x}}^{2}{\\left(t \\right)}}{m^{2}} + \\frac{2 \\operatorname{p_{y}}^{2}{\\left(t \\right)}}{m^{2}}$"
],
"text/plain": [
"2*(-g*m + 2*a(t)*y(t))*y(t)/m + 4*a(t)*x(t)**2/m + 2*p_x(t)**2/m**2 + 2*p_y(t)**2/m**2"
]
},
"execution_count": 304,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pa_dot_dot_dot = pa_dot_dot.diff(t).subs(dot_sol)\n",
"pa_dot_dot_dot"
]
},
{
"cell_type": "code",
"execution_count": 311,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{g m^{2} y{\\left(t \\right)} - \\operatorname{p_{x}}^{2}{\\left(t \\right)} - \\operatorname{p_{y}}^{2}{\\left(t \\right)}}{2 m \\left(x^{2}{\\left(t \\right)} + y^{2}{\\left(t \\right)}\\right)}$"
],
"text/plain": [
"(g*m**2*y(t) - p_x(t)**2 - p_y(t)**2)/(2*m*(x(t)**2 + y(t)**2))"
]
},
"execution_count": 311,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# XXX we finally rewrite a(t) as a function of the undotted variables!\n",
"a_sub = {\n",
" a(t): sp.solve(pa_dot_dot_dot, a(t))[0]\n",
"}\n",
"a_sub[a(t)]"
]
},
{
"cell_type": "code",
"execution_count": 312,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
" message: 'The solver successfully reached the end of the integration interval.'\n",
" nfev: 158\n",
" njev: 0\n",
" nlu: 0\n",
" sol: None\n",
" status: 0\n",
" success: True\n",
" t: array([0.00000000e+00, 9.99000999e-04, 1.09890110e-02, 1.10889111e-01,\n",
" 6.58240130e-01, 1.25007263e+00, 1.84190513e+00, 2.35158922e+00,\n",
" 2.85767426e+00, 3.48391994e+00, 3.97234853e+00, 4.45376663e+00,\n",
" 5.08834551e+00, 5.67134264e+00, 6.24815113e+00, 6.78485767e+00,\n",
" 7.46053411e+00, 8.26795850e+00, 8.85599132e+00, 9.44402414e+00,\n",
" 1.00000000e+01])\n",
" t_events: None\n",
" y: array([[ 1.00000000e+00, 1.00000000e+00, 9.99999998e-01,\n",
" 9.99981100e-01, 9.76718086e-01, 7.20816725e-01,\n",
" 1.69904914e-02, -6.26125210e-01, -9.39259665e-01,\n",
" -1.00824657e+00, -1.01020707e+00, -9.72095183e-01,\n",
" -6.11277749e-01, 1.41705245e-01, 7.82729546e-01,\n",
" 1.00432078e+00, 1.04324524e+00, 9.78245712e-01,\n",
" 5.93872482e-01, -1.71874953e-01, -7.92333751e-01],\n",
" [ 0.00000000e+00, -4.99001498e-07, -6.03791812e-05,\n",
" -6.14815084e-03, -2.14623630e-01, -6.93556777e-01,\n",
" -1.00114016e+00, -7.83256656e-01, -3.58342218e-01,\n",
" -3.45995231e-02, -4.68736022e-02, -2.87588433e-01,\n",
" -8.13213569e-01, -1.01189570e+00, -6.64890045e-01,\n",
" -2.49315749e-01, -5.19724926e-02, -3.98259669e-01,\n",
" -8.84812826e-01, -1.06164507e+00, -7.41550631e-01],\n",
" [ 0.00000000e+00, -4.98502995e-10, -6.63507486e-07,\n",
" -6.81759570e-04, -1.40467328e-01, -8.15751780e-01,\n",
" -1.41428853e+00, -9.77975174e-01, -3.03592782e-01,\n",
" -1.25423497e-02, 7.40858485e-03, 2.05799712e-01,\n",
" 1.00545966e+00, 1.39103249e+00, 7.35334607e-01,\n",
" 1.66758733e-01, 1.21493248e-02, -2.97422347e-01,\n",
" -1.05000316e+00, -1.37347314e+00, -7.76462915e-01],\n",
" [ 0.00000000e+00, -9.99000999e-04, -1.09890110e-02,\n",
" -1.10886596e-01, -6.39930299e-01, -8.50112670e-01,\n",
" -2.66730182e-02, 7.75549184e-01, 7.79268634e-01,\n",
" 2.18882050e-01, -2.69005355e-01, -7.13748730e-01,\n",
" -7.65397931e-01, 1.86524353e-01, 8.43168358e-01,\n",
" 6.10999288e-01, -4.09407719e-02, -7.72611563e-01,\n",
" -7.25065321e-01, 2.04960356e-01, 7.99998037e-01]])\n",
" y_events: None"
]
},
"execution_count": 312,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"params = {\n",
" m: 1,\n",
" g: 1,\n",
" # Again l is encoded in the initial condition, not in the dynamics.\n",
" l: 1,\n",
"}\n",
"\n",
"qp = x(t), y(t), px(t), py(t)\n",
"\n",
"# Substitute a(t) in px_dot and py_dot.\n",
"px_dot_ = sp.lambdify(qp, px_dot.subs(a_sub).subs(params))\n",
"py_dot_ = sp.lambdify(qp, py_dot.subs(a_sub).subs(params))\n",
"\n",
"# Set up IVP\n",
"fs = [\n",
" sp.lambdify(qp, x_dot.subs(params)),\n",
" sp.lambdify(qp, y_dot.subs(params)),\n",
" px_dot_,\n",
" py_dot_,\n",
"]\n",
"\n",
"sol = solve_ivp(\n",
" fun=lambda _, qp_ : [f(*qp_) for f in fs],\n",
" t_span=[0, 10],\n",
" y0=[1, 0, 0, 0],\n",
" vectorized=True,\n",
")\n",
"sol"
]
},
{
"cell_type": "code",
"execution_count": 313,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x123c943c8>]"
]
},
"execution_count": 313,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot(sol.y[0], sol.y[1])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment