{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "plt.style.use('fivethirtyeight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Rotating Pendulum solution - integrating equation of motion\n", "\n", "![Creating equation of motion for rotating pendulum](../images/09_rotation.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setup\n", "\n", "In this [lecture](https://youtu.be/GnxKLPP6n2c) you solve for the the natural frequency of a pendulum in a rotating reference frame. The result is an equation of motion as such\n", "\n", "$\\ddot{\\theta} = \\left(\\Omega^2\\cos\\theta -\\frac{g}{l}\\right)\\sin\\theta +\\frac{a\\Omega^2}{l}\\cos\\theta$\n", "\n", "where $\\Omega$ is the rotation rate of the frame holding the pendulum, $a$ is the distance from the point of rotation, $l$ is the pendulum length, and $\\theta$ is the generalized coordinate that describes the pendulum's position in the rotating reference frame. \n", "\n", "Consider the cases\n", "\n", "|case| natural frequency| function $\\theta(t)$ for $\\theta<<1$|\n", "|-----------|-----------|-----------|\n", "|$\\Omega = 0$| $\\omega = \\sqrt{\\frac{g}{l}}$ | $\\theta(t) = \\sin\\omega t$|\n", "|$\\Omega \\neq 0$| $\\omega = \\sqrt{\\frac{g}{l}-\\Omega^2\\cos\\theta}$ | $\\theta(t) = \\sin\\omega t+\\theta_{offset}$|\n", "\n", "These solutions only account for small angles, if $\\Omega^2\\cos\\theta>\\frac{g}{l}$, the natural frequency becomes imaginary and the solution is an exponential growth, assuming $\\sin\\theta=\\theta$. The actual solution, shouldn't have an angular speed that keeps growing. \n", "\n", "## Building a numerical solution\n", "\n", "Instead of using differential equations to solve for $\\theta(t)$, you can use [`scipy.integrate.solve_ivp`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) to create a numerical solution to the differential equation. \n", "\n", "A __numerical solution__ does not return a mathematical function. Instead, it returns the predicted solution based upon the differential equations. The simplest numerical solution is the [Euler integration](https://en.wikipedia.org/wiki/Euler_method). Consider an exponential decay ODE, \n", "\n", "$\\frac{dy}{dt} = -2y$\n", "\n", "The exact solution is $y(t) = y_0e^{-2t}$, but you can approximate this solution without doing any calculus. Make the approximation\n", "\n", "$\\frac{\\Delta y}{\\Delta t} = -2y$\n", "\n", "Now, you have an algebraic equation, \n", "\n", "$\\frac{y_{i+1}-y_{i}}{\\Delta t} = -2y_i$\n", "\n", "where $\\Delta t$ is a chosen timestep _the smaller the better_, $y_i$ is the current value of $y$, and $y_{i+1}$ is the approximated next value of $y$. Consider the initial condition $y(0)=2$ and take a time step of $\\Delta t =0.1$\n", "\n", "$y_{i+1} = y_{i}-2y_{i}\\Delta t$\n", "\n", "$y(\\Delta t) = 2 - 2(0.1) = 1.8$\n", "\n", "The exact solution is $y(0.1) = 1.637$, you can make more exact solutions with smaller steps as seen below. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'y')" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbUAAAEfCAYAAADGLVhVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABKAklEQVR4nO3dd3hUVfrA8e+dlk4mhJCEDgExQCgGENEFgRVUVrCAYFkbyrogKoJSVAREkapI+7miiw0FFARXBZWiSO9BUIiUGJAEAunJ1Ht/f0QGhjQSMjMp7+d55tmdc8+9951jmHfOveeeo2RkZGgIIYQQ1YDO1wEIIYQQFUWSmhBCiGpDkpoQQohqQ5KaEEKIakOSmhBCiGpDkpoQQohqQ5KaEEKIakOSmhBCiGpDklopEhMTfR1CpSLtUZi0iTtpD3fSHoV5sk0kqQkhhKg2JKkJIYSoNiSpCSGEqDZ8ltRmz55Njx49aNiwITExMQwaNIhDhw6Vut/Bgwe5/fbbiYqKIjY2lmnTpqFpMiezEEIIMPjqxD///DNDhgzhuuuuQ9M0Xn/9de688062b99OWFhYkftkZWVx11130bVrV9avX09iYiLDhw8nMDCQESNGePkTCCGuhMPhIDc319dh+Iy/vz+ZmZm+DqNSuZI2CQoKwmAoe4ryWVJbsWKF2/t33nmHRo0asW3bNm677bYi91m+fDn5+fksXLiQgIAAWrVqxZEjR1iwYAFPPfUUiqJUSGyBI+5Cl5UOQIdLytVaYeTNXVkh5xCiJnA4HGRnZ2M2myvs32dV4+fnh7+/v6/DqFRKaxNN08jIyCAkJKTMia3S3FPLyclBVVXMZnOxdXbs2MENN9xAQECAq6xXr16cPn2apKSkCovlQkID0BTIb6ZDu6xcCFG63NzcGp3QRPkoioLZbC5XD7/SJLWxY8cSFxdH586di61z5swZIiIi3MouvD9z5kyFx6T6QcbfjWT9zUReG32FH1+ImkASmiiP8v7d+Ozy46XGjx/Ptm3bWLNmDXp9ycnj8g96YZBISQ1Q1gf9OgD2MIWMnibU4ILj5nQwYDinyYOUyMOkRZE2cXehPfz9/fHz8/NxNL5nsVh8HUKlcyVtkpWVVWSHpUWLFsXu4/OkNm7cOFasWMFXX31FkyZNSqxbt27dQh8wLS0NoFAP7lIlNUBxdDYN7dLW0SlkdjMS0zAUnX/dMh+vukhMTCxXe1Zn0ibuLm2PzMzMGn8/yWKx1Pg2uNyVtkmtWrVo2LBhmY7t08uPY8aM4fPPP2f16tVcc801pdbv3LkzW7dudcvwGzZsIDo6msaNG1dobPpcCN1kh0seF9D8FawHpqCptgo9lxBCVEb//ve/GTRokK/DKBOfJbXRo0ezZMkSFi1ahNlsJjU1ldTUVHJyclx1Jk2aRL9+/VzvBwwYQEBAAMOGDePQoUOsXr2at956i2HDhlXodXu1VsEjBX5/qgTtdbhvyz6C7cj/Vdi5hBCVz9SpUzGbzW6vK/nhXRKz2cyqVasqKMKSffLJJ4Xiv/Cq7pdCfXb5cdGiRQD079/frXzMmDGMGzcOgJSUFI4fP+7aFhoaysqVKxk9ejQ9evTAbDYzfPhwnnrqqQqN7dJh+4lHDtPQsgRn2nZXmePPb9DVuhZjvd4Vel4hROXRokUL/ve//7nel3a/v7IJDAxk7969hcq9fSnUbrdjNBq9dj6f9dQyMjKKfF1IaAALFy7kwIEDbvu1bt2ab7/9ltTUVA4fPszYsWM9O7pK0eEX+zxKQLRbse3IXJzZMjhACG9YfjSXuGUphP33FHHLUlh+1PMPcxsMBiIjI12vOnXqlFg/MzOToUOH0rx5cyIjI2nXrh0LFiwAIC4uDoCHH34Ys9nseg/w7bff0r17dyIjI2nbti2vvvoqNtvFWxxxcXFMnTqVoUOHUr9+fa655hrmzp1bavyKorjFf+F1Qd++fXn++efd9intcqOmacyZM4f27dsTFRVF165dWbp0qWt7UlISZrOZzz//nDvuuIOoqCj++9//lhprRao0Q/orM8UYjH/cy6C7ZBSXai+4v2bP9l1gQtQAy4/m8vTmTJJznWhAcq6TpzdnejyxnThxgtjYWNq2bctjjz3GiRMnSqw/ZcoUDh06xNKlS9mxYwfz5s2jXr16QMG9f4C3336bw4cPu96vW7eOoUOH8sQTT7Bt2zbmzZvHqlWrmDx5stuxFyxYwDXXXMOPP/7IuHHjmDx5MqtXr674D12KKVOm8NFHHzFz5ky2bdvGyJEjGTlyJGvXrnWrN2nSJB5//HG2bdtG3759vRqjz0c/VhW64Gb4Xfs01kMzXGWaJRXroen4tZ2EosjvAyE8YfLubPKd7vO75js1Ju/OZmBMkEfO2bFjRxYsWECLFi1IS0tjxowZ9O7dm23btlG7du0i90lOTqZt27bEx8cDuAavWSwWVy8vNDTUrbc0c+ZMRowYwYMPPghA06ZNmThxIv/617949dVXXVeh4uPjGT16NADNmzdnz549LFiwwG3MweVyc3OpX7++W1nr1q357rvvytMk5ObmMn/+fFasWEHXrl0BaNKkCbt372bRokX06dPHVXfo0KGFbi15iyS1MjBE9cKZ+RuOU1+5ypzndmI/sQRT0wd9GJkQ1dfJXGeZyivCLbfc4va+Y8eOtG/fniVLlhR7D3/IkCE8/PDD7N+/nx49enDrrbdy0003lXie/fv3s2fPHubMmeMqU1WV/Px8UlNTiYqKAqBTp05u+3Xq1ImvvvqKkgQGBrJp0ya3MpPJVOI+JTl8+DAWi4UBAwa43fKx2+00atTIrW6HDh0u391rJKmVkanFUNTsRNSs31xl9uOfoAu5BkOd4mdDEUKUT4MgPclFJLAGQd4buBEcHMy1117LsWPHiq1zyy23cODAAb7//nt+/PFHBg0aRP/+/Zk9e3ax+6iqypgxY7jzzjsLbSvtHl5pFEWhWbNmxW7X6XSFVjhxOBzF1C6IFeDTTz8t9OzY5fMzBgV5pgd9JeSaWRkpOiN+bV4Eo/mSUg3roemo+ad9FZYQ1daE+BAC9O6DwQL0ChPiQ7wWg8ViITEx0e3SYVHCw8MZPHgwCxcuZO7cuXz66adYrVYAjEYjTqd7cm7Xrh1HjhyhWbNmhV6XJopdu3a57bdr1y5atmx5VZ+pTp06pKSkuJX98ssvxdZv2bIlfn5+JCcnF4r18p6aL0lPrRx0/hH4txmHZd840Ap+veDIwXpgCv7xs1H0Mi2QEBXlwn2zybuzOZnrpEGQngnxIR67nwbw0ksvceutt9KgQQPXPbW8vDzuu+++Yvd57bXXaNeuHbGxsTgcDtcsSRemCWvUqBE//vgjN954I35+fpjNZl544QUGDRpEw4YNueuuuzAYDPz666/s3r3bbbDIrl27mD17Nv379+fnn3/ms88+49133y3xM2iaRmpqaqHyOnXqoNfr6datG+PGjeObb76hRYsW/Pe//+XUqVPFJqiQkBBGjBjByy+/jKZp3HjjjeTk5LBr1y50Oh2PPPLIFbSs50lSKyd9WDtMMY9h+32Rq0zNOYrt8FxMsaNkElchKtDAmCCPJrHL/fnnnzz++OOcO3eOOnXq0LFjR77//vsSeyR+fn5MmTKFpKQk/Pz86NSpE5999plr+5QpU3jxxRdp3bo10dHRHDhwgF69erFs2TJmzJjBvHnzMBgMxMTEcP/997sde9iwYRw8eJBZs2YRGBjI+PHjSx2IkZeXV2Rvbs+ePTRr1owHH3yQgwcPuu4RDhkyhL59+3L+/Plij/niiy8SERHBvHnzGDVqFCEhIcTFxfHMM8+UGIs3KRkZGbJsdAlKmtdP0zSsv7yG8+zPbuWmliMw1vfuMFZvkXkOC5M2cXf53I+hoaE+jsi3rnbux7i4OIYOHVqtFkK+0jYpz9+P3FO7Coqi4Bc7EiWwgVu57chCnJm/FbOXEEIIT5GkdpUUQ1DBg9n6S351aA6sv0xBs2X4LC4hhKiJJKlVAF1QY/yufc6tTLOmYTn4BprmuWdphBDV34EDB6rVpUdPk6RWQQyR3TA0vNutTE3fh/3Yhz6KSAghah5JahXIFPMYOnOcW5k9aSmOs1t8FJEQQtQsktQqkKIz4Nd6HIrJfW4466GZqHknfRSVEELUHJLUKpjOrzZ+bcaDekmhMw/bmscIfPxmAkfc5bPYhBCiupOk5gF6cxtCdtrdypxmHZk3G1Fy0n0UlRBCVH+S1Dwk4Dcn/sfcRz7a6unJ6mIoNImoEEKIiiFJzUMUoNYWO8Yzqlu5pYUBe9LSoncSQogqpqgVtH1JkpoHKU4wr7ehz3ZPbPZji3GkbPBRVEKI0syePZsePXrQsGFDYmJiGDRoEIcOHXKro2kaU6dO5dprryUqKoq+ffvy66+/lvucSUlJmM1m9u7de7XhX5GpU6diNpsLva655hqvnN9TJKl5mM4K5h/sKFb3S47WX2fjzCh+mQchhO/8/PPPDBkyhLVr17J69WoMBgN33nkn6ekX74nPmTOH+fPnM23aNNavX09ERAR33XUX2dnZPoy8bFq0aMHhw4fdXlu2eP8RJLvdXnqlKyRJzUPUWmGu/2/I0jBvsMGlS9JrdiwJk1DzTvkgOiGqjsARdxH88M2FXp4cSbxixQoefPBBWrVqRevWrXnnnXdIS0tj27ZtQEEvbeHChTz77LP079+fVq1asXDhQnJycvj888+LPe7Jkye57777aNKkCdHR0XTq1IkvvvgCKFhbDaBHjx6YzWb69r04KfrHH3/M9ddfT2RkJPHx8cyfP9+1aCeA2WzmP//5D/feey/R0dG0adOGpUtLv81hMBiIjIx0e126OGlcXBxz585126e0y402m41XXnmFVq1aUa9ePXr06MG6detc2zdt2kRUVBTfffcdPXv2JCIiwm371ZKlZzwkb+7KQmV+KeuwHppxscCRjWX/ywTEv4liqtkzmQtRHF1W0SOGiyv3hJycHFRVxWw2AwWXClNTU+nZs6erTkBAAF27dmX79u08+uijRR5n1KhRWK1WvvrqK0JCQvj9999d29avX0/Pnj354osvaNOmDSaTCYAPPviA119/nenTp9OuXTt+/fVXnnnmGYxGI0OHDnXtP3XqVCZMmMDrr7/Ol19+yZNPPsk111xDhw4dPNAixRs+fDjHjx/n3XffpX79+nz33XcMHjyY9evXExd3cXKKiRMnMmXKFJo1a0ZwcHCFnV+SmhcZonqh5p/GfvxjV5mW/yeWA5Pwb/8Git7kw+iEEMUZO3YscXFxdO7cGcC1+GZERIRbvYiICE6fPl3scZKTk+nXr5/ry71JkyaubeHh4QDUrl3bbYXtGTNmMGnSJNf6aU2aNOH48eO89957bkntjjvucCXT0aNHs2nTJhYuXMh//vOfYuM5fPgw9evXdyu79dZbee+994rdpyTHjx/n888/JyEhgYYNGwIwdOhQNm7cyOLFi5k1a5ar7pgxY9x+FFQUSWpeZmzyAFp+Co6UH1xlauYhrL/Owq/1GBRFrggLUZmMHz+ebdu2sWbNGvR6vdu2yxcD1jStxAWCn3zySZ577jnWrVtH9+7d+cc//kH79u2LrZ+WlsbJkycZOXIko0aNcpU7HI5CjwZ16tSp0PvvvvuuxM/WtGlTli9f7lYWFFT+xVj379+Ppml06dLFrdxqtdKtWze3Mk/1ICWpeZmiKJiufQbVcgY1I8FV7jzzI/aAaEwxj/guOCGEm3HjxrFixQq++uort17VhZ7UmTNnaNDg4nqKaWlphXpvl3rooYfo1asX33//PRs3bqR3796MHDmScePGFVn/wn2z2bNnc/3111fAJ3JnMplo1qxZsdt1Ol2h5OlwOIqtr6oqiqKwfv16jEaj27bLFwW9muRZEukW+ICiM+If9zJKYEO3cnvSZ9j/XOujqIQQlxozZgyff/45q1evLjTMvXHjxkRGRrJhw8VHcywWC1u3bi01+dSvX59HHnmExYsXM378eD744AMA1z00p/PipA1169alXr16HD9+nGbNmhV6XWrXrl2F3rds2bLsH/wSderUISUlxe0zHjlypNj6bdu2RdM0UlNTC8Var169q4rlSklPzUcUYwj+7SaTv+tZsGe6ym2H30bnH4G+9nW+C06ISkStFVbkoJBLRxhXtNGjR7N06VI+/vhjzGaz6x5aUFAQwcHBKIrCv//9b2bNmkWLFi1o3rw5M2fOJCgoiAEDBhR73DFjxnDLLbfQvHlzsrKy+OGHH1yJJyIigoCAANatW0ejRo3w8/MjNDSUsWPH8sILLxAaGkrv3r2x2+3s37+f06dP89xzF9dx/Oqrr7juuuu46aabWLVqFT/++GOpowodDofrs13qQk+0W7dufPzxx9x2223UqVOHWbNmldhTa968Offeey/Dhg3jtddeo127dqSnp/Pzzz/TuHFj+vXrV2I8FUGSmg/pAqLxbzsRy94xoNoKCjUnlgNTCIifjS64iU/jE6IyKGoksactWrQIwDU444IxY8a4LhU+88wz5Ofn8/zzz5ORkUF8fDwrVqwgJCSk2OOqqsoLL7zAqVOnCA4Opnv37kyZMgUoGF4/bdo0pk+fzrRp07jhhhv4+uuveeihhwgMDOTtt99m8uTJ+Pv7ExsbyxNPPOF27LFjx7J69WrGjBlDnTp1mD9/PtddV/KP48TExCJ7c2lpaRgMBkaOHMkff/zBAw88QFBQEKNGjSpxIAzA/PnzmTlzJhMmTODPP/8kLCyM6667jr/97W8l7ldRlIyMDJmIsASJiYm0aNHCo+dwnNmE9ZfX3MoUv7r4d3wLnV/tYvbyDW+0R1UjbeLu0vbIzMwkNLRmP65isVgK3U+qaGazmQ8++KBQEq6srrRNyvP3I/fUKgFD3b9hjBniVqZZz2BNeAXNafFRVEIIUfVIUqskjI0GYKh3u1uZmp2I9eA0NM1ZzF5CCCEuJffUKglFUTBdMxzNcgbn+YujmJxpW7H9vgi/Fv/yYXRCiMosIyPD1yFUGtJTq0QUnR6/NuPQBTd1K3ckr8R+crWPohJCiKpDkloloxiC8Gs7GcUU7lZuO/J/ONK2+ygqIYSoGiSpVUI6/wj82k0Ct8dBVKx7JmB6vodHZycXQoiqTJJaJaUPaY55ow3US564MChk9DLhNGb4LC4hhKjMJKlVYn6nVEJ2uD+9r5kU0v9uQs057qOohBCi8pKkVskFHnYSvMd9VVjNX8Gybzxq3kkfRSWEEJWTJLUqIOiAk8CEy3pstnQse8ei5qcUs5cQQrizWq30798fs9nMtGnTSqz7j3/8g08//dQjcQwZMoR58+Z55NiS1KqI4L0OAg5dltisaVj2jkO1nvNRVEIIT4mLi2Pu3LkVdjyn08mQIUM4ceIEs2bNYvbs2cUuILp27VpOnTrFvffeW+zxkpKSeOqpp2jXrh1RUVG0a9eOSZMmkZ+f76qzadMmzGYz5865f0eNHj2amTNnkpmZeflhr5o8fF2JXTo7uQKE7HSgGcByzcX/bJrlNJa94wi4bjqKyeybQIUQlZqmaTz99NMkJiayZs0aoqOjad68OQ8++CBms7lQ8vq///s/7r///kKLol4qMTERp9PJ7NmziYmJ4fDhwzz77LOcP3+eOXPmlBhPbGwsTZo0YdmyZYUmZr5a0lOrxPLmriTng42uV+4HG9H9ay36ut3d6ml5f2DZ9yKaPcdHkQpRvWiaxpw5c2jfvj1RUVF07dqVpUuXurY/9dRTdOnSxdUrcTqd3HrrrQwaNMhVZ+LEiXTs2JEmTZoQFxfHhAkTsFjc53Jdu3YtvXr1IioqiqZNmzJo0CAsFgt9+/YlOTmZl19+GbPZjNlsLjZWm83GK6+8QqtWrahXrx49evQotOTMSy+9xIEDB/jmm2+Ijo4GoHv37nzxxReMHz+eb7/91lU3LS2NjRs3ctttt5XYRn//+99ZuHAhvXr1okmTJvTp04dRo0axenXBRBFJSUnccccdAMTExGA2m/n3v//t2v+2227jiy++KPEc5SE9tSpGUfT4tXoeq2rFmbbNVa7mHMWy/yX8209FMQT4MEIhSpe7/lavni+o55oy1Z8yZQqrVq1i5syZNG/enJ07d/LMM89gNpvp06cP06ZNo1u3brz88svMnDmTmTNncuzYMTZv3uw6RmBgIPPmzaN27dqcOHGC5557DpPJxEsvvQTADz/8wP3338/IkSOZP38+DoeDDRs2oKoqH3/8MTfddBMPPPAAQ4YMKS5MAIYPH87x48d59913qV+/Pt999x2DBw9m/fr1xMXFAfDaa68VuW/nzp35/fff3cq2bt2Kn58fsbGxZWozgOzsbFcCbtCgAR9++CEPPfQQ27ZtIywszG1m/vj4eGbOnEl+fj4BARX3nSVJrQpSdAb8Wo/HkjARNX2Pq1zN+g1LwkT8201G0fv5LD4hqrLc3Fzmz5/PihUr6Nq1KwBNmjRh9+7dLFq0iD59+hAUFMSiRYvo3bs3YWFhvPnmm3z66adERES4jvPCCy8ABcusXHPNNTz33HPMnTvXldRmzJhB//79Xe8B2rRpAxQkRJ1OR0hIiGvBzqIcP36czz//nISEBBo2bAjA0KFD2bhxI4sXL2bWrFll/vzJycnUqVOnxEuPxe03d+5c18Kler2esLCChVwjIiIID3efJSkqKgq73U5KSgpNmzYtdLzykqRWRSl6E/5tJ2DZ9yJq5kFXuZqxH+svU/CLm4CiM/owQiGqpsOHD2OxWBgwYACKorjK7XY7jRo1cr3v0KEDo0aN4o033uDxxx/nlltucTvOqlWrWLhwIUePHiUvLw+n04nTeXHFjYSEBO6///6rinX//v1omkaXLl3cyq1WK926dSvXMYta62zkyJEsW7bM9f7UqVNu28+cOcM999xDjx49GD58+BWd50Lv7NKBJRVBkloVpuj98W83uWBof3aiq9x5bifWg9Pwaz0ORVe2X1tC1HSqqgLw6aefuno/FxgMlwzS0jS2bduGXq/n+PHjaJrmSoI7d+7kscceY8yYMbzyyivUrVuXb775hpdffrnCY1UUhfXr12M0uv+ILe/CpOHh4YVm/R8/fjwjRowosn5qair9+vUjNjaWd955x+2HQEnS0wsGwdWpU6dccRZHkloVpxiC8G//Gvl7XkDLPeEqd579GdtvszHFjkJRZDyQqFzKeo/Lm1q2bImfnx/Jycl079692Hrz5s1j//79fPPNNwwcOJB33nmHJ598EoBt27YRHR3NCy+84Or5JCcnu+3ftm1bfvzxRx5++OEij28ymdx6dkVp27YtmqaRmppa7p5ZUcdMS0vj3LlzrkuGERERbpdWL0hJSeGOO+7g2muv5b333nNL+hc+A1Dk5zh06BDR0dHUrVu3QuK+wKffdps3b2bw4MHExsZiNpv55JNPSqyflJTkGgl06euHH37wUsSVk2KshX/711EC67uVO1LWYTsyH03TitlTCHG5kJAQRowYwcsvv8xHH33EsWPHSEhI4P3332fx4sUAHDhwgClTpvDWW29x/fXXM3v2bCZOnMihQ4cAaN68OadPn2bZ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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t = np.linspace(0, 1, 6)\n", "dt = t[1] - t[0]\n", "ynum = np.zeros(t.shape)\n", "ynum[0] = 2\n", "for i in range(1,len(t)):\n", " ynum[i] = ynum[i-1]-2*ynum[i-1]*dt\n", "\n", "plt.plot(t, ynum, 'o', label = '5 step Euler')\n", "\n", "t = np.linspace(0, 1, 21)\n", "dt = t[1] - t[0]\n", "ynum = np.zeros(t.shape)\n", "ynum[0] = 2\n", "for i in range(1,len(t)):\n", " ynum[i] = ynum[i-1]-2*ynum[i-1]*dt\n", "\n", "plt.plot(t, ynum, 's', label = '20 step Euler')\n", "\n", "plt.plot(t, 2*np.exp(-2*t), label = 'exact e^(-2t)')\n", "plt.legend()\n", "plt.xlabel('time')\n", "plt.ylabel('y')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define ODE for rotating pendulum\n", "\n", "Numerical integration requires first-order differential equations, but here you have a second-order differential equation. You can rewrite your single second-order equation of motion as two first-order equations of motion as such\n", "\n", "$\\bar{y} = [\\theta,~\\dot{\\theta}]$\n", "\n", "$\\dot{\\bar{y}} = [\\dot{\\theta},~\\ddot{\\theta}]$\n", "\n", "$\\ddot{\\theta} = f(t,\\theta, \\dot{\\theta})\\rightarrow \\dot{\\bar{y}} = f(t,~\\bar{y})$\n", "\n", "take a look at the function defining the derived equation of motion, `pend_rot(t, y)`\n", "\n", "- first output is taken from the input, `dy[0] = y[1]`: $\\frac{d}{dt}\\theta = \\dot{\\theta}$\n", "- the second output is taken from the equation of motion directly, `dy[1]=` $\\ddot{\\theta} = \\left(\\Omega^2\\cos\\theta -\\frac{g}{l}\\right)\\sin\\theta +\\frac{a\\Omega^2}{l}\\cos\\theta$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def pend_rot(t, y, w, l = 0.3, a = 1):\n", " '''\n", " function that defines 2 first-order ODEs for a rotating pendulum\n", " arguments:\n", " ----------\n", " t: current time\n", " y: current angle and angular velocity of pendulum [theta (rad), dtheta(rad/s)]\n", " w: rotation rate of frame in (rad/s)\n", " l: length of pendulum arm\n", " a: distance from point of rotation\n", " \n", " outputs:\n", " --------\n", " dy: derivative of y at time t [dtheta (rad/s), ddtheta(rad/s/s)] \n", " '''\n", " dy=np.zeros(y.shape)\n", " dy[0]=y[1]\n", " dy[1]=(w**2*np.cos(y[0])-9.81/l)*np.sin(y[0])+a*w**2/l*np.cos(y[0])\n", " return dy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solving the equation of motion\n", "\n", "Now that you have defined `pend_rot`, you can import `solve_ivp` and solve for $\\theta$ as a function of time. \n", "\n", "- Import `scipy.integrate.solve_ivp`" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from scipy.integrate import solve_ivp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- plug in values for the constants and solve for one full cycle at\n", " $\\Omega=1~rad/s$\n", " i.e. $1~cycle\\frac{2\\pi~rad}{cycle}\\frac{1~rad}{s}$" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "lines_to_next_cell": 0 }, "outputs": [], "source": [ "\n", "l=0.3\n", "a=1\n", "w=1\n", "g=9.81\n", "T = 2*np.pi\n", "my_ode = lambda t,y: pend_rot(t,y,w = w, l = l, a = a)\n", "\n", "sol = solve_ivp(my_ode,[0,T] , [np.pi/6,0], \n", " t_eval = np.linspace(0,T,600));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Your results are now saved in the variable `sol`:\n", "- `sol.t`: array of points in time where the integration returned a\n", " solution\n", "- `sol.y`: array of two values (`sol.y[0]` = $\\theta(t)$ and `sol.y[1]`\n", " = $\\dot{\\theta}(t))$\n", "\n", "Plot the result to compare to a hanging pendulum. You used an initial\n", "resting state with $\\theta(0) = \\frac{\\pi}{12}$. The non-rotating\n", "solution is \n", "\n", "$\\theta(t) = \\frac{\\pi}{6}\\cos\\sqrt{\\frac{g}{l}} t$\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "lines_to_next_cell": 2 }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(sol.t,sol.y[0,:], label = 'rotating at {} rad/s'.format(w))\n", "plt.plot(sol.t, np.pi/6*np.cos(np.sqrt(g/l)*sol.t),'--', label = 'rotating at 0 rad/s')\n", "\n", "plt.legend()\n", "plt.xlabel('time (s)')\n", "plt.ylabel('angle (rad)');" ] }, { "cell_type": "markdown", "metadata": { "jupyter": { "outputs_hidden": false }, "lines_to_next_cell": 2 }, "source": [ "## Visualize the motion _with animations_\n", "\n", "This is great, but what does the motion look like? Now, use the\n", "kinematic definitions to define 3D coordinates of the frame and pendulum\n", "arm. \n", "\n", "- $r_{P/O} = (a+y_2)\\cos(\\Omega t) \\hat{i} +(a+y_2)\\sin\\Omega t \\hat{j}\n", "+(a-x_2)\\hat{k} = x_1\\hat{i} +y_1\\hat{j}+z_1 \\hat{k}$\n", "- $x_2= l\\sin\\theta$\n", "- $y_2= l\\cos\\theta$\n", "- link arm goes from $(0,~0,~0) \\rightarrow (0,~0,~a) \\rightarrow\n", " (a\\cos\\Omega t, a\\sin\\Omega t, a)$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "t = sol.t\n", "y = sol.y\n", "x1=np.cos(w*t)*(a+l*np.sin(y[0,:])) # x1-coordinate over time\n", "y1=np.sin(w*t)*(a+l*np.sin(y[0,:])) # y1-coordinate over time\n", "z1=a-l*np.cos(y[0,:]); # z1-coordinate over time\n", "linkx=np.block([np.zeros((len(t),1)), \n", " np.zeros((len(t),1)), \n", " a*np.cos(w*t[:,np.newaxis])])\n", "linky=np.block([np.zeros((len(t),1)), \n", " np.zeros((len(t),1)), \n", " a*np.sin(w*t[:,np.newaxis])])\n", "linkz=np.block([np.zeros((len(t),1)), \n", " a*np.ones((len(t),1)), \n", " a*np.ones((len(t),1))])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The kinematics are now defined for the pendulum and frame in the fixed,\n", "3D coordinate system. You can import `animation` and plot the frame and\n", "pendulum. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "from matplotlib import animation\n", "from IPython.display import HTML" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, you set up the 3D axes for plotting and the line updating\n", "functions, `init` and `animate`." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "ax = fig.add_subplot(111, projection='3d')\n", "line1, = ax.plot([], [], [])\n", "line2, = ax.plot([], [], [], 'o-')\n", "line3, = ax.plot([], [], [], '--')\n", "ax.set_xlim(-1.2,1.2)\n", "ax.set_ylim(-1.2,1.2)\n", "ax.set_zlim(0.5,1.2)\n", "\n", "#ax.view_init(elev=10., azim=10)\n", "ax.set_xlabel('x-position (m)')\n", "ax.set_ylabel('y-position (m)')\n", "ax.set_zlabel('z-position (m)')\n", "\n", "def init():\n", " line1.set_data([], [])\n", " line1.set_3d_properties([])\n", " line2.set_data([], [])\n", " line2.set_3d_properties([])\n", " line3.set_data([], [])\n", " line3.set_3d_properties([])\n", " return (line1, line2, line3)\n", "\n", "def animate(i):\n", " line1.set_data(linkx[i,:], linky[i,:])\n", " line1.set_3d_properties(linkz[i,:])\n", " line2.set_data([linkx[i,2], x1[i]], [linky[i,2], y1[i]])\n", " line2.set_3d_properties([linkz[i,2], z1[i]])\n", " line3.set_data(x1[:i], y1[:i])\n", " line3.set_3d_properties(z1[:i])\n", " return (line1, line2, line3, )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, animate the motion of the pendulum and its path. " ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "ename": "AttributeError", "evalue": "'list' object has no attribute 'shape'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m anim = animation.FuncAnimation(fig, animate, init_func=init,\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mframes\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minterval\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m blit=True)\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/animation.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, fig, func, frames, init_func, fargs, save_count, cache_frame_data, **kwargs)\u001b[0m\n\u001b[1;32m 1670\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_save_seq\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1671\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1672\u001b[0;31m \u001b[0mTimedAnimation\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1673\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1674\u001b[0m \u001b[0;31m# Need to reset the saved seq, since right now it will contain data\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/animation.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, fig, interval, repeat_delay, repeat, event_source, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1429\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mevent_source\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1430\u001b[0m \u001b[0mevent_source\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnew_timer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minterval\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_interval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1431\u001b[0;31m Animation.__init__(self, fig, event_source=event_source,\n\u001b[0m\u001b[1;32m 1432\u001b[0m *args, **kwargs)\n\u001b[1;32m 1433\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/animation.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, fig, event_source, blit)\u001b[0m\n\u001b[1;32m 959\u001b[0m self._stop)\n\u001b[1;32m 960\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_blit\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 961\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_setup_blit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 962\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 963\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_start\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/animation.py\u001b[0m in \u001b[0;36m_setup_blit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1263\u001b[0m self._resize_id = self._fig.canvas.mpl_connect('resize_event',\n\u001b[1;32m 1264\u001b[0m self._on_resize)\n\u001b[0;32m-> 1265\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_post_draw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_blit\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1266\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1267\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_on_resize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mevent\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/animation.py\u001b[0m in \u001b[0;36m_post_draw\u001b[0;34m(self, framedata, blit)\u001b[0m\n\u001b[1;32m 1216\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_blit_draw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_drawn_artists\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1217\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1218\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_fig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw_idle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1219\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1220\u001b[0m \u001b[0;31m# The rest of the code in this class is to facilitate easy blitting\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/backend_bases.py\u001b[0m in \u001b[0;36mdraw_idle\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 2010\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_is_idle_drawing\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2011\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_idle_draw_cntx\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2012\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2013\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2014\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mcbook\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeprecated\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"3.2\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/backends/backend_agg.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 405\u001b[0m (self.toolbar._wait_cursor_for_draw_cm() if self.toolbar\n\u001b[1;32m 406\u001b[0m else nullcontext()):\n\u001b[0;32m--> 407\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 408\u001b[0m \u001b[0;31m# A GUI class may be need to update a window using this draw, so\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 409\u001b[0m \u001b[0;31m# don't forget to call the superclass.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mdraw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstart_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 41\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 42\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0martist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_agg_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/figure.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 1868\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstale\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1869\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1870\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw_event\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1871\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1872\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mdraw_artist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/backend_bases.py\u001b[0m in \u001b[0;36mdraw_event\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 1757\u001b[0m \u001b[0ms\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'draw_event'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1758\u001b[0m \u001b[0mevent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDrawEvent\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1759\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mevent\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1760\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1761\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mresize_event\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/cbook/__init__.py\u001b[0m in \u001b[0;36mprocess\u001b[0;34m(self, s, *args, **kwargs)\u001b[0m\n\u001b[1;32m 227\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexception_handler\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 229\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexception_handler\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 230\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 231\u001b[0m \u001b[0;32mraise\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/cbook/__init__.py\u001b[0m in \u001b[0;36m_exception_printer\u001b[0;34m(exc)\u001b[0m\n\u001b[1;32m 79\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_exception_printer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 80\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0m_get_running_interactive_framework\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32min\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m\"headless\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 81\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 82\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[0mtraceback\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_exc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/cbook/__init__.py\u001b[0m in \u001b[0;36mprocess\u001b[0;34m(self, s, *args, **kwargs)\u001b[0m\n\u001b[1;32m 222\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfunc\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 223\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 224\u001b[0;31m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 225\u001b[0m \u001b[0;31m# this does not capture KeyboardInterrupt, SystemExit,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 226\u001b[0m \u001b[0;31m# and GeneratorExit\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/animation.py\u001b[0m in \u001b[0;36m_start\u001b[0;34m(self, *args)\u001b[0m\n\u001b[1;32m 973\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 974\u001b[0m \u001b[0;31m# Now do any initial draw\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 975\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_init_draw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 976\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 977\u001b[0m \u001b[0;31m# Add our callback for stepping the animation and\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/matplotlib/animation.py\u001b[0m in \u001b[0;36m_init_draw\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1720\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1721\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1722\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_drawn_artists\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_init_func\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1723\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_blit\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1724\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_drawn_artists\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m\u001b[0m in \u001b[0;36minit\u001b[0;34m()\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0minit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0mline1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 17\u001b[0;31m \u001b[0mline1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_3d_properties\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 18\u001b[0m \u001b[0mline2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0mline2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_3d_properties\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/work/lib/python3.9/site-packages/mpl_toolkits/mplot3d/art3d.py\u001b[0m in \u001b[0;36mset_3d_properties\u001b[0;34m(self, zs, zdir)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[0mxs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_xdata\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 142\u001b[0m \u001b[0mys\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_ydata\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 143\u001b[0;31m \u001b[0mzs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbroadcast_to\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mzs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 144\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_verts3d\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mjuggle_axes\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mxs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mys\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mzs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mzdir\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 145\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstale\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mAttributeError\u001b[0m: 'list' object has no attribute 'shape'" ] } ], "source": [ "anim = animation.FuncAnimation(fig, animate, init_func=init,\n", " frames=range(0,len(t)), interval=10, \n", " blit=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "HTML(anim.to_html5_video())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Wrapping up\n", "\n", "In this notebook, you created a general solution for nonlinear\n", "differential equations. You did this by:\n", "\n", "- creating 2 first-order differential equations from one second-order\n", " differential equation\n", "- defining a function that returns the derivative based upon the current\n", " state $(\\theta,~\\dot{\\theta})$\n", "- using `solve_ivp` to integrate the differential equations\n", "\n", "Once you had a solution, you processed the results by:\n", "\n", "- plotting the generalized coordinate vs time\n", "- comparing the solution to a known result\n", "- plugging the generalized coordinate into the defining kinematics\n", "- creating a 3D animation of your solution\n", "\n", "__Nice work!__" ] } ], "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.9.0" } }, "nbformat": 4, "nbformat_minor": 4 }