{ "cells": [ { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import sympy as smp\n", "from scipy.integrate import odeint\n", "import matplotlib.pyplot as plt\n", "from matplotlib import animation\n", "from matplotlib.animation import PillowWriter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define all necessary variables:\n", "\n", "* Time $t$\n", "* Mass of pendulums $m$\n", "* Gravitational acceleration $g$\n", "* Spring constants $k$\n", "\n", "Then define the 4 free variables $\\theta_1$, $r_1$, $\\theta_2$, $r_2$\n", "\n", "1. Make them functions of time\n", "2. Define first derivatives\n", "3. Define second derivatives" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "t, m, g, k = smp.symbols('t m g k')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "the1, the2, r1, r2 = smp.symbols(r'\\theta_1, \\theta_2, r_1, r_2', cls=smp.Function)\n", "\n", "# theta1\n", "the1 = the1(t)\n", "the1_d = smp.diff(the1, t)\n", "the1_dd = smp.diff(the1_d, t)\n", "\n", "the2 = the2(t)\n", "the2_d = smp.diff(the2, t)\n", "the2_dd = smp.diff(smp.diff(the2, t), t)\n", "\n", "r1 = r1(t)\n", "r1_d = smp.diff(r1, t)\n", "r1_dd = smp.diff(smp.diff(r1, t), t)\n", "\n", "r2 = r2(t)\n", "r2_d = smp.diff(r2, t)\n", "r2_dd = smp.diff(smp.diff(r2, t), t)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define cartesian coordinates of each bob\n", "\n", "* Bob 1: $(x_1, y_1)$\n", "* Bob 2: $(x_2, y_2)$\n", "\n", "Note these are functions of $\\theta_1$, $r_1$, $\\theta_2$, $r_2$" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "x1, y1, x2, y2 = smp.symbols('x_1, y_1, x_2, y_2', cls=smp.Function)\n", "x1= x1(the1, r1)\n", "y1= y1(the1, r1)\n", "x2= x2(the1, r1, the2, r2)\n", "y2= y2(the1, r1, the2, r2)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "x1 = (1+r1)*smp.cos(the1)\n", "y1 = -(1+r1)*smp.sin(the1)\n", "x2 = (1+r1)*smp.cos(the1) + (1+r2)*smp.cos(the2)\n", "y2 = -(1+r1)*smp.sin(the1)-(1+r2)*smp.sin(the2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define the Lagrangian\n", "\n", "$$ L = T - V $$\n", "\n", "where \n", "\n", "* T = $\\frac{1}{2}m(\\dot{x}_1^2 + \\dot{y}_1^2) + \\frac{1}{2}m(\\dot{x}_2^2 + \\dot{y}_2^2)$\n", "* V = $mgy_1 + mgy_2 + \\frac{1}{2}kr_1^2 + \\frac{1}{2}kr_2^2 $" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "T = 1/2 * m * (smp.diff(x1, t)**2 + smp.diff(y1, t)**2 + \\\n", " smp.diff(x2, t)**2 + + smp.diff(y2, t)**2)\n", "V = m*g*y1 + m*g*y2 + 1/2 * k * r1**2 + 1/2 * k * r2**2\n", "L = T-V" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute Lagrange's equations\n", "\n", "$\\frac{dL}{dz} - \\frac{d}{dt} \\frac{dL}{d\\dot{z}} = 0$\n", "\n", "where $z$ is each of $\\theta_1$, $r_1$, $\\theta_2$, $r_2$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "LE1 = smp.diff(L, the1) - smp.diff(smp.diff(L, the1_d), t)\n", "LE1 = LE1.simplify()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "LE2 = smp.diff(L, the2) - smp.diff(smp.diff(L, the2_d), t)\n", "LE2 = LE2.simplify()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "LE3 = smp.diff(L, r1) - smp.diff(smp.diff(L, r1_d), t)\n", "LE3 = LE3.simplify()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "LE4 = smp.diff(L, r2) - smp.diff(smp.diff(L, r2_d), t)\n", "LE4 = LE4.simplify()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle m \\left(2.0 g \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + 2.0 g \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} \\frac{d^{2}}{d t^{2}} \\theta_{1}{\\left(t \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\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} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d^{2}}{d t^{2}} \\theta_{2}{\\left(t \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\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} + 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d^{2}}{d t^{2}} \\operatorname{r_{2}}{\\left(t \\right)} - 2.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d}{d t} \\theta_{2}{\\left(t \\right)} \\frac{d}{d t} \\operatorname{r_{2}}{\\left(t \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d^{2}}{d t^{2}} \\theta_{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} \\frac{d}{d t} \\theta_{1}{\\left(t \\right)} \\frac{d}{d t} \\operatorname{r_{1}}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} \\frac{d^{2}}{d t^{2}} \\theta_{1}{\\left(t \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\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} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d^{2}}{d t^{2}} \\theta_{2}{\\left(t \\right)} - 1.0 \\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} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d^{2}}{d t^{2}} \\operatorname{r_{2}}{\\left(t \\right)} - 2.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d}{d t} \\theta_{2}{\\left(t \\right)} \\frac{d}{d t} \\operatorname{r_{2}}{\\left(t \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d^{2}}{d t^{2}} \\theta_{2}{\\left(t \\right)} - 4.0 \\frac{d}{d t} \\theta_{1}{\\left(t \\right)} \\frac{d}{d t} \\operatorname{r_{1}}{\\left(t \\right)} - 2.0 \\frac{d^{2}}{d t^{2}} \\theta_{1}{\\left(t \\right)}\\right)$" ], "text/plain": [ "m*(2.0*g*r_1(t)*cos(\\theta_1(t)) + 2.0*g*cos(\\theta_1(t)) - 2.0*r_1(t)**2*Derivative(\\theta_1(t), (t, 2)) - 1.0*r_1(t)*r_2(t)*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)**2 - 1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), (t, 2)) - 1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)**2 + 1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t))*Derivative(r_2(t), (t, 2)) - 2.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)*Derivative(r_2(t), t) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), (t, 2)) - 4.0*r_1(t)*Derivative(\\theta_1(t), t)*Derivative(r_1(t), t) - 4.0*r_1(t)*Derivative(\\theta_1(t), (t, 2)) - 1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)**2 - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), (t, 2)) - 1.0*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)**2 + 1.0*sin(\\theta_1(t) - \\theta_2(t))*Derivative(r_2(t), (t, 2)) - 2.0*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)*Derivative(r_2(t), t) - 1.0*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), (t, 2)) - 4.0*Derivative(\\theta_1(t), t)*Derivative(r_1(t), t) - 2.0*Derivative(\\theta_1(t), (t, 2)))" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "LE1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we solve for $d^2 z / d t^2$ where $z$ is each of $\\theta_1$, $r_1$, $\\theta_2$, $r_2$ then we can get two equation for each free variable. Defining $v_z$ as $dz/dt$ we get\n", "\n", "* $dz/dt = v_z$\n", "* $dv_z/dt = \\text{whatever we solved for}$\n", "\n", "This turns our system of second order ODES into systems 1D differential equations.\n", "\n", "**Example** $\\frac{d^2 y}{dt^2} + 2\\frac{dy}{dt} + y + 3 = 0$ (define $v = dy/dt$) gets turned into the system of 2 first order DE's (i) $dy/dt = v$ and (ii) $dv/dt = - 3 - y - 2v$\n", "\n", "Specifically, define \n", "\n", "* $\\omega_1 \\equiv d\\theta_1/dt$\n", "* $\\omega_2 \\equiv d\\theta_2/dt$\n", "* $v_1 \\equiv dr_1/dt$\n", "* $v_2 \\equiv dr_2/dt$" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "sols = smp.solve([LE1, LE2, LE3, LE4], (the1_dd, the2_dd, r1_dd, r2_dd),\n", " simplify=False, rational=False)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{\\left(- 1.0 m \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)\\right) \\left(- 2.0 g m \\sin{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + 1.0 k \\operatorname{r_{1}}{\\left(t \\right)} - 2.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2} - 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\left(\\frac{d}{d t} \\theta_{2}{\\left(t \\right)}\\right)^{2} + 2.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d}{d t} \\theta_{2}{\\left(t \\right)} \\frac{d}{d t} \\operatorname{r_{2}}{\\left(t \\right)} - 1.0 m \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\left(\\frac{d}{d t} \\theta_{2}{\\left(t \\right)}\\right)^{2} - 2.0 m \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2}\\right)}{- 1.0 m^{2} \\left(- 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} - 2.0\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 2.0 m^{2} \\left(- 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} - 2.0\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) + 1.0 m^{2} \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)^{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 2.0 m^{2} \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)^{2} + 2.0 m \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) + 1.0 m \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} - 2.0\\right) + \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)} + \\frac{\\left(2.0 m \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) + 1.0 m \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)\\right) \\left(- 1.0 g m \\sin{\\left(\\theta_{2}{\\left(t \\right)} \\right)} + 1.0 k \\operatorname{r_{2}}{\\left(t \\right)} - 1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2} - 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\left(\\frac{d}{d t} \\theta_{2}{\\left(t \\right)}\\right)^{2} - 2.0 m \\sin{\\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} \\operatorname{r_{1}}{\\left(t \\right)} - 1.0 m \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\left(\\frac{d}{d t} \\theta_{1}{\\left(t \\right)}\\right)^{2} - 1.0 m \\left(\\frac{d}{d t} \\theta_{2}{\\left(t \\right)}\\right)^{2}\\right)}{- 1.0 m^{2} \\left(- 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} - 2.0\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 2.0 m^{2} \\left(- 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} - 2.0\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) + 1.0 m^{2} \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)^{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 2.0 m^{2} \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)^{2} + 2.0 m \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) + 1.0 m \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} - 2.0\\right) + \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)} + \\frac{\\left(- 1.0 m^{2} \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 2.0 m^{2} \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) + 1.0 m \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)\\right) \\left(- 2.0 g \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} - 2.0 g \\cos{\\left(\\theta_{1}{\\left(t \\right)} \\right)} + 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\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} + 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\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} + 2.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d}{d t} \\theta_{2}{\\left(t \\right)} \\frac{d}{d t} \\operatorname{r_{2}}{\\left(t \\right)} + 4.0 \\operatorname{r_{1}}{\\left(t \\right)} \\frac{d}{d t} \\theta_{1}{\\left(t \\right)} \\frac{d}{d t} \\operatorname{r_{1}}{\\left(t \\right)} + 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\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} + 1.0 \\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} + 2.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} \\frac{d}{d t} \\theta_{2}{\\left(t \\right)} \\frac{d}{d t} \\operatorname{r_{2}}{\\left(t \\right)} + 4.0 \\frac{d}{d t} \\theta_{1}{\\left(t \\right)} \\frac{d}{d t} \\operatorname{r_{1}}{\\left(t \\right)}\\right)}{- 1.0 m^{2} \\left(- 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} - 2.0\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 2.0 m^{2} \\left(- 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} - 2.0\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) + 1.0 m^{2} \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)^{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 2.0 m^{2} \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)^{2} + 2.0 m \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) + 1.0 m \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} - 2.0\\right) + \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)} + \\frac{\\left(1.0 m^{2} \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 2.0 m^{2} \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) + 1.0 m \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 g \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)} - 1.0 g \\cos{\\left(\\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\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} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\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} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\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} + 2.0 \\operatorname{r_{2}}{\\left(t \\right)} \\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} \\operatorname{r_{1}}{\\left(t \\right)} + 2.0 \\operatorname{r_{2}}{\\left(t \\right)} \\frac{d}{d t} \\theta_{2}{\\left(t \\right)} \\frac{d}{d t} \\operatorname{r_{2}}{\\left(t \\right)} - 1.0 \\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} + 2.0 \\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} \\operatorname{r_{1}}{\\left(t \\right)} + 2.0 \\frac{d}{d t} \\theta_{2}{\\left(t \\right)} \\frac{d}{d t} \\operatorname{r_{2}}{\\left(t \\right)}\\right)}{- 1.0 m^{2} \\left(- 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} - 2.0\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 2.0 m^{2} \\left(- 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} - 2.0\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) + 1.0 m^{2} \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)^{2} \\cos^{2}{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 2.0 m^{2} \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)^{2} + 2.0 m \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{2}}^{2}{\\left(t \\right)} - 2.0 \\operatorname{r_{2}}{\\left(t \\right)} - 1.0\\right) + 1.0 m \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\cos{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 2.0 \\operatorname{r_{1}}^{2}{\\left(t \\right)} - 4.0 \\operatorname{r_{1}}{\\left(t \\right)} - 2.0\\right) + \\left(1.0 \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(1.0 m \\operatorname{r_{1}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} + 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right) \\left(- 1.0 m \\operatorname{r_{2}}{\\left(t \\right)} \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)} - 1.0 m \\sin{\\left(\\theta_{1}{\\left(t \\right)} - \\theta_{2}{\\left(t \\right)} \\right)}\\right)}$" ], "text/plain": [ "(-1.0*m*(1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*m*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t))))*(-2.0*g*m*sin(\\theta_1(t)) + 1.0*k*r_1(t) - 2.0*m*r_1(t)*Derivative(\\theta_1(t), t)**2 - 1.0*m*r_2(t)*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)**2 + 2.0*m*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)*Derivative(r_2(t), t) - 1.0*m*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)**2 - 2.0*m*Derivative(\\theta_1(t), t)**2)/(-1.0*m**2*(-2.0*r_1(t)**2 - 4.0*r_1(t) - 2.0)*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0)*cos(\\theta_1(t) - \\theta_2(t))**2 + 2.0*m**2*(-2.0*r_1(t)**2 - 4.0*r_1(t) - 2.0)*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0) + 1.0*m**2*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))**2*cos(\\theta_1(t) - \\theta_2(t))**2 - 2.0*m**2*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))**2 + 2.0*m*(1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(1.0*m*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0) + 1.0*m*(1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))*cos(\\theta_1(t) - \\theta_2(t)) + 1.0*m*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(1.0*m*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))*cos(\\theta_1(t) - \\theta_2(t)) + 1.0*m*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-2.0*r_1(t)**2 - 4.0*r_1(t) - 2.0) + (1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(1.0*m*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))) + (2.0*m*(1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0) + 1.0*m*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))*cos(\\theta_1(t) - \\theta_2(t)) + (1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t))))*(-1.0*g*m*sin(\\theta_2(t)) + 1.0*k*r_2(t) - 1.0*m*r_1(t)*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_1(t), t)**2 - 1.0*m*r_2(t)*Derivative(\\theta_2(t), t)**2 - 2.0*m*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_1(t), t)*Derivative(r_1(t), t) - 1.0*m*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_1(t), t)**2 - 1.0*m*Derivative(\\theta_2(t), t)**2)/(-1.0*m**2*(-2.0*r_1(t)**2 - 4.0*r_1(t) - 2.0)*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0)*cos(\\theta_1(t) - \\theta_2(t))**2 + 2.0*m**2*(-2.0*r_1(t)**2 - 4.0*r_1(t) - 2.0)*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0) + 1.0*m**2*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))**2*cos(\\theta_1(t) - \\theta_2(t))**2 - 2.0*m**2*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))**2 + 2.0*m*(1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(1.0*m*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0) + 1.0*m*(1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))*cos(\\theta_1(t) - \\theta_2(t)) + 1.0*m*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(1.0*m*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))*cos(\\theta_1(t) - \\theta_2(t)) + 1.0*m*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-2.0*r_1(t)**2 - 4.0*r_1(t) - 2.0) + (1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(1.0*m*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))) + (-1.0*m**2*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0)*cos(\\theta_1(t) - \\theta_2(t))**2 + 2.0*m**2*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0) + 1.0*m*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t))))*(-2.0*g*r_1(t)*cos(\\theta_1(t)) - 2.0*g*cos(\\theta_1(t)) + 1.0*r_1(t)*r_2(t)*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)**2 + 1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)**2 + 2.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)*Derivative(r_2(t), t) + 4.0*r_1(t)*Derivative(\\theta_1(t), t)*Derivative(r_1(t), t) + 1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)**2 + 1.0*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)**2 + 2.0*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_2(t), t)*Derivative(r_2(t), t) + 4.0*Derivative(\\theta_1(t), t)*Derivative(r_1(t), t))/(-1.0*m**2*(-2.0*r_1(t)**2 - 4.0*r_1(t) - 2.0)*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0)*cos(\\theta_1(t) - \\theta_2(t))**2 + 2.0*m**2*(-2.0*r_1(t)**2 - 4.0*r_1(t) - 2.0)*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0) + 1.0*m**2*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))**2*cos(\\theta_1(t) - \\theta_2(t))**2 - 2.0*m**2*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))**2 + 2.0*m*(1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(1.0*m*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0) + 1.0*m*(1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))*cos(\\theta_1(t) - \\theta_2(t)) + 1.0*m*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(1.0*m*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))*cos(\\theta_1(t) - \\theta_2(t)) + 1.0*m*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-2.0*r_1(t)**2 - 4.0*r_1(t) - 2.0) + (1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(1.0*m*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))) + (1.0*m**2*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))*cos(\\theta_1(t) - \\theta_2(t))**2 - 2.0*m**2*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t))) + 1.0*m*(1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*cos(\\theta_1(t) - \\theta_2(t)))*(-1.0*g*r_2(t)*cos(\\theta_2(t)) - 1.0*g*cos(\\theta_2(t)) - 1.0*r_1(t)*r_2(t)*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_1(t), t)**2 - 1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_1(t), t)**2 - 1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_1(t), t)**2 + 2.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_1(t), t)*Derivative(r_1(t), t) + 2.0*r_2(t)*Derivative(\\theta_2(t), t)*Derivative(r_2(t), t) - 1.0*sin(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_1(t), t)**2 + 2.0*cos(\\theta_1(t) - \\theta_2(t))*Derivative(\\theta_1(t), t)*Derivative(r_1(t), t) + 2.0*Derivative(\\theta_2(t), t)*Derivative(r_2(t), t))/(-1.0*m**2*(-2.0*r_1(t)**2 - 4.0*r_1(t) - 2.0)*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0)*cos(\\theta_1(t) - \\theta_2(t))**2 + 2.0*m**2*(-2.0*r_1(t)**2 - 4.0*r_1(t) - 2.0)*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0) + 1.0*m**2*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))**2*cos(\\theta_1(t) - \\theta_2(t))**2 - 2.0*m**2*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))**2 + 2.0*m*(1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(1.0*m*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_2(t)**2 - 2.0*r_2(t) - 1.0) + 1.0*m*(1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))*cos(\\theta_1(t) - \\theta_2(t)) + 1.0*m*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(1.0*m*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_1(t)*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_1(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*r_2(t)*cos(\\theta_1(t) - \\theta_2(t)) - 1.0*cos(\\theta_1(t) - \\theta_2(t)))*cos(\\theta_1(t) - \\theta_2(t)) + 1.0*m*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-2.0*r_1(t)**2 - 4.0*r_1(t) - 2.0) + (1.0*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*sin(\\theta_1(t) - \\theta_2(t)))*(1.0*m*r_1(t)*sin(\\theta_1(t) - \\theta_2(t)) + 1.0*m*sin(\\theta_1(t) - \\theta_2(t)))*(-1.0*m*r_2(t)*sin(\\theta_1(t) - \\theta_2(t)) - 1.0*m*sin(\\theta_1(t) - \\theta_2(t))))" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sols[the1_dd]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create numpy functions that we can use with numerical methods" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "dw1dt_f = smp.lambdify((m, k ,g, the1, the2, r1, r2, the1_d, the2_d, r1_d, r2_d), sols[the1_dd])\n", "dthe1dt_f = smp.lambdify(the1_d, the1_d)\n", "\n", "dw2dt_f = smp.lambdify((m, k ,g, the1, the2, r1, r2, the1_d, the2_d, r1_d, r2_d), sols[the2_dd])\n", "dthe2dt_f = smp.lambdify(the2_d, the2_d)\n", "\n", "dv1dt_f = smp.lambdify((m, k ,g, the1, the2, r1, r2, the1_d, the2_d, r1_d, r2_d), sols[r1_dd])\n", "dr1dt_f = smp.lambdify(r1_d, r1_d)\n", "\n", "dv2dt_f = smp.lambdify((m, k ,g, the1, the2, r1, r2, the1_d, the2_d, r1_d, r2_d), sols[r2_dd])\n", "dr2dt_f = smp.lambdify(r2_d, r2_d)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define our system of ODES where $S = (\\theta_1, \\omega_1, \\theta_2, \\omega_2, r_1, v_1, r_2, v_2)$" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "def dSdt(S, t):\n", " the1, w1, the2, w2, r1, v1, r2, v2 = S\n", " return [\n", " dthe1dt_f(w1),\n", " dw1dt_f(m,k,g,the1,the2,r1,r2,w1,w2,v1,v2),\n", " dthe2dt_f(w2),\n", " dw2dt_f(m,k,g,the1,the2,r1,r2,w1,w2,v1,v2),\n", " dr1dt_f(v1),\n", " dv1dt_f(m,k,g,the1,the2,r1,r2,w1,w2,v1,v2),\n", " dr2dt_f(v2),\n", " dv2dt_f(m,k,g,the1,the2,r1,r2,w1,w2,v1,v2),\n", " ]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define times, constants, solve ODE" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "t = np.linspace(0, 20, 1000)\n", "g = 9.81\n", "m=1\n", "k=10\n", "ans = odeint(dSdt, y0=[np.pi/2,0,(3/2)*np.pi/2,0,0,5,0,5], t=t)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot $\\theta_1$ as function of time" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(ans.T[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get locations of $x_1$, $y_1$, $x_2$, $y_2$ given $\\theta_1$, $r_1$, $\\theta_2$, $r_2$" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [], "source": [ "def get_x1y1x2y2(the1, the2, r1, r2):\n", " return ((1+r1)*np.cos(the1),\n", " -(1+r1)*np.sin(the1),\n", " (1+r1)*np.cos(the1) + (1+r2)*np.cos(the2),\n", " -(1+r1)*np.sin(the1)-(1+r2)*np.sin(the2)\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get $x$s and $y$s as function of time" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [], "source": [ "x1, y1, x2, y2 = get_x1y1x2y2(ans.T[0], ans.T[2], ans.T[4], ans.T[6])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot ys" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(y1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make animation " ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def animate(i):\n", " ln1.set_data([0, x1[i], x2[i]], [0, y1[i], y2[i]])\n", " \n", "fig, ax = plt.subplots(1,1, figsize=(8,8))\n", "ax.grid()\n", "ln1, = plt.plot([], [], 'ro--', lw=3, markersize=8)\n", "ax.set_ylim(-10, 10)\n", "ax.set_xlim(-10,10)\n", "ani = animation.FuncAnimation(fig, animate, frames=1000, interval=50)\n", "ani.save('pen.gif',writer='pillow',fps=50)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.10" } }, "nbformat": 4, "nbformat_minor": 4 }