{ "cells": [ { "cell_type": "markdown", "id": "ae6260c9", "metadata": {}, "source": [ "# Computer Lab - Semester 3" ] }, { "cell_type": "markdown", "id": "c3bc623d", "metadata": {}, "source": [ "## Solution of ODE" ] }, { "cell_type": "markdown", "id": "4acae2d3", "metadata": {}, "source": [ "#### Euler's Method\n", "\n", "Any equation which involves derivative of a function is called a **differential equation**. Order of the differential equation is defined by the order of the derivative of the function present in the differential equation. A first order linear differential equation is represented by\n", "\n", "\\begin{equation}\n", "\\frac{dy}{dx}=f(x,y(x))\n", "\\end{equation}\n", "\n", "To solve this type of equation numerically, we are given an initial condition, i.e. the value of the function at the initial point. If $x=a$ is the starting point, then we must get the value $y(a)$ at $x=a$. Let $y(a)=c$. Geometrically, it is quite obvious that the function $y(x)$ must pass through $(a,c)$. Therefore, the equation of tangent line drawn at the point (a,c) in xy coordinate plane can be written as -\n", "\n", "\\begin{align}\n", "y - c = \\frac{dy}{dx}\\mid_{(a,c)}(x - a)\n", "\\end{align}\n", "\n", "Now, $\\frac{dy}{dx}\\mid_{(a,c)}=f(a,c)$. Setting, $x-a=h$ as step size or distance between two neighbouring points, we can write the above equation as\n", "\n", "\\begin{align}\n", "y(a+h) \\approx c + f(a,c)\\cdot h\n", "\\end{align}\n", "\n", "Thus the solution passes through a point which is nearly equal to $(a+h, c+f(a,c)h)$. We now repeat this tangent line approximation with (a,c) with successive points separated by a distance $h$. We must replace $(a,c)$ by $(a+h, c+f(a,c)h)$. Keep repeating this tangent line approximation at successive points $x=a,~a+h,~a+2h,\\cdots,b$, we get the values of $y(x)$ for all the points between $x=a$ to $x=b$.\n", "\n", "Algebraically, the basic idea can be understood in the following way. From calculas, the derivative of a function at a point is given by\n", "\n", "\\begin{align}\n", "\\frac{dy}{dx} = \\lim_{h\\to 0}\\frac{y(x+h)-y(x)}{h}\n", "\\end{align}\n", "\n", "Here $h>0$ and very small. The above equation can be approximately written as\n", "\n", "\\begin{align}\n", "\\frac{dy}{dx} \\approx \\frac{y(x+h)-y(x)}{h}\n", "\\end{align}\n", "\n", "This equation can be solved for $f(x+h)$ to give\n", "\n", "\\begin{align}\n", "f(x+h) \\approx y(x) + h\\cdot f(x,y(x))\n", "\\end{align}\n", "\n", "If we call $y(x+h)$ as \"new value\", then we can write the above equation as\n", "\n", "\\begin{align}\n", "y_{\\text{new}} = y +h \\cdot f(x,y)\n", "\\end{align}\n", "\n", "We can demonstrate the implementation of Euler's method by using the following tabular format -\n", "\n", "| $x$ | $y$ | $$h\\cdot f(x,y)$$|\n", "| :--- | :--- | :--- |\n", "|$a$ | $c$ | $$h\\cdot f(a,c)$$| \n", "|$a+h$ | $$c + h\\cdot f(a,c)$$ | $\\cdots$ |\n", "|$a + 2h$ | $\\cdots$ | | \n", "|$\\vdots$ | | |\n", "|$b$ | ??? | X |\n", "\n", "The goal is to fill out all the blanks of the table except X entry and find the ??? entry, which is the Euler’s method approximation for $y(b)$." ] }, { "cell_type": "markdown", "id": "bc1d6a9a", "metadata": {}, "source": [ "Consider the following ODE\n", "\\begin{align}\n", "\\frac{dy}{dx}=\\frac{y+x}{y-x},\\hspace{0.5cm}y(0)=1\n", "\\end{align}\n", "Find the value y at x = 0.6, taking the step size = 0.2." ] }, { "cell_type": "code", "execution_count": 1, "id": "c7a0c289", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x y \n", "------------------\n", "0.0 1.000\n", "0.2 1.200\n", "0.4 1.480\n", "0.6 1.828\n", "------------------\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEOCAYAAACaQSCZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAm/UlEQVR4nO3deXhV5bn+8e9DwlRAFCGAEBRk0kAESYE6IGgZ9BBEpS2cekTBIq3U1tNBa8UBWwtUPdajVvkVVDwqCkcFKjJUGaoIEjiIzIaAksg8ikKA5Pn9sTe7ARNYmfbeSe7Pde1r7zXstZ7XYO6s9a71LnN3REREzqRarAsQEZGKQYEhIiKBKDBERCQQBYaIiASiwBARkUAUGCIiEkjUAsPMks1svpmtNbM1ZvaLQtYxM3vKzDLNbJWZXVpg2VAz+yz8GhqtukVEJMSidR+GmTUFmrr7CjOrBywHBrr72gLrXAf8HLgO6Ab8xd27mVkDIANIAzz83S7uvi8qxYuISPSOMNx9m7uvCH/+ClgHNDtlteuByR6yBDg7HDR9gXnuvjccEvOAftGqXUREIDEWOzWzC4DOwNJTFjUDthaYzg7PK2p+YdseAYwAqFOnTpf27duXTdEiIlXA8uXLd7t7o8KWRT0wzKwu8L/AL939YFlv390nABMA0tLSPCMjo6x3ISJSaZnZ50Uti+pVUmZWnVBYvOLubxaySg6QXGC6eXheUfNFRCRKonmVlAETgXXu/kQRq80AbglfLdUdOODu24A5QB8zO8fMzgH6hOeJiEiURPOU1OXAfwCfmtnK8Lz7gBYA7v4cMIvQFVKZwDfAbeFle83sEWBZ+Htj3H1v9EoXEZGoBYa7fwDYGdZx4M4ilk0CJpVDaSIiEoDu9BYRqSCGDRtGUlISHTp0KHT5gQMHSE9P55JLLiElJYUXXngBgM8//5xLL72UTp06kZKSwnPPPVei/Uftxr1Y0FVSIlKZLFq0iLp163LLLbewevXqby1/9NFHOXDgAOPGjWPXrl20a9eO7du3A+Du1KxZk0OHDtGhQwcWL17Meeed961tmNlyd08rbP86whARqSB69OhBgwYNilxuZnz11Ve4O4cOHaJBgwYkJiZSo0YNatasCUBubi75+fkl2r8CQ0Skkhg1ahTr1q3jvPPOo2PHjvzlL3+hWrXQr/mtW7eSmppKcnIy99xzT6FHF2eiwBARqSTmzJlDp06d+PLLL1m5ciWjRo3i4MHQ/dHJycmsWrWKzMxMXnrpJXbs2FHs7SswREQqiRdeeIEbb7wRM6N169a0bNmS9evXn7TOeeedR4cOHfjnP/9Z7O0rMEREKokWLVrw3nvvAbBjxw42bNhAq1atyM7O5vDhwwDs27ePDz74gHbt2hV7+zEZfFBERIpvyJAhLFiwgN27d9O8eXMefvhhjh07BsDIkSMZPXo0t956Kx07dsTdGTduHA0bNmTevHn86le/wsxwd37961/TsWPHYu9fl9WKiEiELqsVEZFSU2CIiEggCgwRkcoiKwtSUiAxMfSelVWmm1dgiIhUFunpsH495OWF3tPTy3TzukpKRKSCmzp1Kh9//DF/3rABTgz7kZ8PGzaU6X50hCEiUsHk5eUxf/58Tlzl+umnnzJ79mzy27aF8FAgVKsGJbjX4nQUGCIiFcSJgHj11Ve5+uqr+eijjwC4//77WbVqFdX+/ndo3x4SEkLvM2eW6f4VGCIicW7Hjh1069aNV199FYCBAwcydepUunTpAkCNGjUwM2jVCtasgePHQ++tWpVpHQoMEZE49O677/LWW28B0KhRIxo1akTt2rUBqFevHoMGDYoMWR4tUbvT28wmAf2Bne7+rcdFmdlvgB+HJxOBi4BG4ed5bwG+AvKA40XdhXgq3ektIhXJ9u3badKkCQC9evXiyJEjkdNO0RIvd3q/CPQraqG7/9ndO7l7J+B3wEJ331tglV7h5YHCQkSkInnooYdo06YNX3/9NQCTJ09m4cKFMa7qZFELDHdfBOw944ohQ4DXyrEcEZGY2rBhAzfeeCNbtmwBoH///vzxj3+MLE9OTqZGjRoxqq5wcXcfhpl9h9CRyKgCsx2Ya2YOPO/uE2JSnIhIKaxcuZLatWvTrl07ateuzZIlS9i4cSMXXHABaWlppKXF9wmUuAsMIB348JTTUVe4e46ZJQHzzGx9+IjlW8xsBDACQmPDi4jEUl5eHgkJCRw+fJgePXowaNAgJk2aRIsWLcjOzo48QrUiiMdKB3PK6Sh3zwm/7wTeAroW9WV3n+Duae6e1qhRo3ItVETkdH7xi1/Qr1+o67Z27dpMnz6dxx57LLK8IoUFxFlgmFl94CpgeoF5dcys3onPQB9gdWwqFBEp2rp167jvvvvIDw/P0b59e7p06RKZ7tWrFw0aNIhliaUStVNSZvYa0BNoaGbZwINAdQB3fy682g3AXHf/usBXGwNvmdmJel9199nRqltE5HS2bdvGWWedRZ06dVi5ciVPPPEEP/7xj0lJSeGnP/1prMsrU3rinohICa1fv56UlBQmTJjA8OHDyc3N5fDhw5x99tmxLq3E4uU+DBGRCs3dGTVqFOPHjwegXbt2jB07ll69egFQs2bNCh0WZ6LAEBE5jezsbN5++20AzIzt27eze/fuyPRvfvMbWpXxmE3xKh4vqxURianc3NzIOE1/+tOfeOGFF9i1axd16tRh6tSphPtUqxwdYYiIFDB37lySkpLYEH740G9/+1tWr15NnTp1AKpsWIACQ0SquK+++opHHnmEf/7znwCkpqZyww03RO6ROP/886vMKacz0SkpEalyvv76a3Jycmjbti01atTgqaeeAuDKK6+kSZMmvPjii7EtME4pMESkyunduzd5eXksXbqUmjVrsmnTJs4666xYlxX3dEpKRCq9119/ncsuu4zjx48DoaHEH3/88chyhUUwCgwRqXS++uorJk2axJ49e4DQOE5169aNXA7bp08frrjiiliWWCEpMESkUsjPz+fQoUMAZGVlMXz4cGbOnAnAgAEDmDt3buRpdlIyCgwRqfCOHTtG27ZteeihhwC45JJLWLFiBUOHDo1tYZWMAkNECjVs2DCSkpLo0KHDaddbtmwZiYmJTJs2LTLvt7/9LSkpKVx00UXcddddlMeYda+99hqjR48GoHr16tx222307Nkzsrxz585V+p6J8qDAEJFC3XrrrcyeffqBofPy8rjnnnvo06dPZN7ixYv58MMPWbVqFatXr2bZsmVl8mzqvLw8Fi3613PTMjIyeOeddyId2b///e/p379/qfcjRVNgiEihevToccZnN/z3f/83N910E0lJSZF5ZsaRI0c4evQoubm5HDt2jMaNG5e4jhNHJxMnTuSqq65i5cqVADz66KMsX76cxETdHRAtCgwRKZGcnBzeeuutbz3z4Xvf+x69evWiadOmNG3alL59+3LRRRcVe/tbt26la9euTJ8eep7aoEGDmDZtWmRbNWvW1CmnKFNgiEiJ/PKXv2TcuHHfesxoZmYm69atIzs7m5ycHN5///3IsBun4+688847/P3vfwegadOm1K9fn4SEBAAaNGjATTfd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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# Discretize the independent variable 'x'\n", "x_init, x_final, step = 0, 0.6, 0.2\n", "x = np.arange(x_init, x_final+step, step)\n", "\n", "#Create array for unknown or dependent variable\n", "y = np.zeros(len(x))\n", "y[0] = 1\n", "\n", "# Define helper functions\n", "def f(x,y):\n", "\tslope = (y+x)/(y-x)\n", "\treturn slope\n", "\n", "def Euler(x, y, h):\n", "\ty_new = y + h*f(x, y)\n", "\treturn y_new\n", "\n", "# use recursive relation to find the 'y' values at different grid points of 'x'\n", "h = step\n", "for i in range(len(x)-1):\n", " y[i+1] = Euler(x[i], y[i], h)\n", "\n", "# Tabulating the result\n", "y = y.reshape([-1,1])\n", "x = x.reshape([-1,1])\n", "\n", "val = np.hstack([x, y])\n", "\n", "print(\"{0:10s}{1:5s}\".format('x','y'))\n", "print('------------------')\n", "for i in range(len(val[:,0])):\n", " print(\"{0:0.1f} {1:8.3f}\".format(val[:,0][i], val[:,1][i]))\n", "print('------------------')\n", "\n", "# Graphical demonstration\n", "plt.plot(x, y, ls=':', color='k', markersize=4)\n", "plt.plot(x, y, 'ro', markersize=4)\n", "plt.xlabel('x', fontsize=14)\n", "plt.ylabel('y', fontsize=14)\n", "\n", "# Displaying values next to point\n", "for i in range(len(y)):\n", "\tplt.text(x[i], y[i]+0.05, \"%0.2f\" %y[i], ha=\"center\")\n", "plt.ylim(0, 2)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "5e4066ec", "metadata": {}, "source": [ "#### Modified Euler method\n", "\n", "The biggest shortcoming in Euler's method is that the derivative or slope estimated at the begining of the interval is applied through out the interval which generally, is not the case. As a modification, the derivative is estimated at the begining and at the end of the interval and average of the two values is used to estimate the value at the next stage. So, if we consider an interval between $x$ and $x+h$ and the value of $y(x)$ is known, then to estimate the value at $x+h$, we calculate the slope at $x$, which is $\\frac{dy}{dx}$ and estimate $y(x+h)$ which is given by\n", "\n", "\\begin{align}\n", "y(x+h) = y(x) + h\\cdot f(x,y)\n", "\\end{align}\n", "\n", "Let us call this value of $y(x+h)$ as predicted value of $y$ or $y_p$. Using the value of $y_p$, we estimate the slope at $x+h$ which is given by $f(x+h, y_p)$. Let us call\n", "\n", "\\begin{align}\n", "&k_1 = f(x,y)\\\\\n", "&k_2 = f(x+h, y_p)\n", "\\end{align}\n", "\n", "We use the average of $k_1$ and $k_2$ to estimate the value at $x+h$, given by\n", "\n", "\\begin{align}\n", "y(x+h) = y(x) + \\left( \\frac{k_1+k_2}{2}\\right) \\cdot h\n", "\\end{align}\n", "\n", "This value of $y(x+h)$ is known as *corrector* value or $y_c$.\n", "\n", "The previous problem can be solved by modified Euler method by modifying the code in the Euler function. The code snippet is given below." ] }, { "cell_type": "code", "execution_count": 2, "id": "350d43f7", "metadata": {}, "outputs": [], "source": [ "def modEuler(x, y, h):\n", " k1 = f(x, y)\n", " y_p = y + k1*h\n", " k2 = f(x+h, y_p)\n", " y_c = y + h*(k1+k2)/2\n", " return y_c" ] }, { "cell_type": "markdown", "id": "e78b75cd", "metadata": {}, "source": [ "#### Runge Kutta Method of Second Order\n", "\n", "In this method. we estimate the slope at the middle of the interval $(x, x+h)$. Let $f(x, y)$ be the slope at $x$ and the slope at $x+h/2$ be $f(x+h/2, y+k1/2)$. Considering this slope is better estimate for the interval, we use it for the whole interval to estimate the value at $x+h$. This can be shown below -\n", "\\begin{align}\n", "&k_1 = f(x,y) \\nonumber\\\\\n", "&k_2 = (x+\\frac{h}{2}, y + \\frac{h}{2}k_1)\\nonumber\\\\\n", "&y(x+h) = y(x) + h\\cdot k_2\n", "\\end{align}" ] }, { "cell_type": "markdown", "id": "176b20d9", "metadata": {}, "source": [ "Solve the differential equation\n", "\\begin{equation}\n", "\\frac{dy}{dt}=t+y\n", "\\end{equation}\n", "\n", "with the initial condition $y(0)=1$, using fourth order Runge-Kutta method from $t=0$ to $t=0.4$ taking $h=0.1$." ] }, { "cell_type": "code", "execution_count": 3, "id": "312f07a0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "t y \n", "------------------\n", "0.0 1.000\n", "0.1 1.120\n", "0.2 1.264\n", "0.3 1.435\n", "0.4 1.636\n", "------------------\n" ] } ], "source": [ "def model(t, y):\n", " return t + y\n", "\n", "def rk2Func(x, y, h):\n", " k1 = model(x, y)\n", " k2 = model(x+h, y+k1*h)\n", " y_new = y + k2*h\n", " return y_new\n", "\n", "t = np.arange(0, 0.4 + 0.1, 0.1)\n", "y = np.zeros(len(t))\n", "y[0] = 1\n", "h = 0.1\n", "\n", "for i in range(len(t)-1):\n", " y[i+1] = rk2Func(t[i], y[i], h)\n", " \n", "# Tabulating the result\n", "y = y.reshape([-1,1])\n", "t = t.reshape([-1,1])\n", "\n", "val = np.hstack([t, y])\n", "\n", "print(\"{0:10s}{1:5s}\".format('t','y'))\n", "print('------------------')\n", "for i in range(len(val[:,0])):\n", " print(\"{0:0.1f} {1:8.3f}\".format(val[:,0][i], val[:,1][i]))\n", "print('------------------')" ] }, { "cell_type": "markdown", "id": "67016ed6", "metadata": {}, "source": [ "#### Runge Kutta Method of 4th Order\n", "\n", "4th order Runge-Kutta method is more improved version than 2nd order. In 4th order, we estimate the slope at the half of the interval. Let the slope at $x$ be $f(x,y)$ and we estimate the slope at $x+h/2$ which is $f(x+h/2, y+k_1h/2)$. We can write it as follows - \n", "\n", "\\begin{align}\n", "&k_1 = f(x,y)\\nonumber\\\\\n", "&k_2 = f(x+\\frac{h}{2},y+\\frac{h}{2}\\cdot k_1)\\nonumber\n", "\\end{align}\n", "\n", "Assuming $k_2$ to be better estimate of the slope than $k_1$, we use it to find slope at mid-point of the interval. It is given by\n", "\n", "\\begin{align}\n", "k_3 = f(x+\\frac{h}{2},y+\\frac{h}{2}\\cdot k_2)\\nonumber\n", "\\end{align}\n", "\n", "We consider this slope $k_3$ for the over all interval and find the slope at $x+h$ which is given by\n", "\n", "\\begin{align}\n", "k_4 = f(x+h, y+h\\cdot k_3)\n", "\\end{align}\n", "\n", "The average of these four slopes is given by\n", "\n", "\\begin{align}\n", "k_{avg}=\\frac{k_1+2k_2+2k_3+k_4}{6}\n", "\\end{align}\n", "\n", "We use this average value of the slope to estimate $y(x+h)$. This is given by\n", "\n", "\\begin{align}\n", "y(x+h)=y(x)+h\\cdot k_{avg}\n", "\\end{align}" ] }, { "cell_type": "markdown", "id": "ee247b21", "metadata": {}, "source": [ "Consider the following differential equation:\n", "\n", "\\begin{equation}\n", "\\frac{dy}{dt}=t\\sqrt{y(t)}\n", "\\end{equation}\n", "with initial condition:
\n", "$t_0 = 0$ and $y_0 = y(t_0)=y(0)=1$
\n", "\n", "The exact solution is
\n", "$y(t) = \\frac{1}{16}(t^2 + 4)^2$" ] }, { "cell_type": "code", "execution_count": 4, "id": "1f008437", "metadata": {}, "outputs": [], "source": [ "# Defining all functions\n", "\n", "def y_analytic(t):\n", " return (1/16)*(t**2 + 4)**2\n", "\n", "def model(y, t):\n", " return t*np.sqrt(y)\n", "\n", "def rk4(y, t, h):\n", "\tk1 = model(y, t)\n", "\tk2 = model(y + k1*(h/2), t+h/2)\n", "\tk3 = model(y + k2*(h/2), t+h/2)\n", "\tk4 = model(y + k3*h, t+h)\n", "\tk_avg = (k1 + 2*(k2+k3)+k4)/6\n", "\ty_new = y + k_avg*h\n", "\treturn y_new" ] }, { "cell_type": "code", "execution_count": 5, "id": "775b70f0", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# Discretizing time domain and creating array for 'y'\n", "\n", "t = np.arange(0, 1.25, 0.25)\n", "y = np.zeros_like(t)\n", "y[0] = 1\n", "h = 0.25\n", "\n", "for i in range(len(t)-1):\n", " y[i+1] = rk4(y[i], t[i], h)\n", "\n", "t_range = np.arange(0, 1.01, 0.01)\n", "y_analt = [y_analytic(t) for t in t_range]" ] }, { "cell_type": "code", "execution_count": 6, "id": "053f822e", "metadata": {}, "outputs": [ { "data": { "image/png": "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89kYYzyQqvLMM89w+PBh1q1bl6FFITVWGIwxxgPNmDGDOXPmMHr0aGrVquXW97Y+BmOM8TB79+7lhRdeoHHjxvzzn/90+/tbYTDGGA9y6dIlunfvjo+PD59++ik5c+Z0ewZrSjLGGA/y//7f/yMyMpIvv/ySMmXKOJLBzhiMMcZDhIeH88477/Dss88mzUjgBCsMmWjBggWICL/88std7Sc4OJh58+bddpvRo0cne16vXr07eq+RI0fy3nvv3dFrb+eDDz4g7tqNReCuR1i4c4SGMe7w559/0rt3bypXrsz777/vaBYrDJlo1qxZPProozdd2JYZbiwM69evz/T3TI8bC4Mx5n8SEhIIDg7mzJkzfPHFF+TLl8/RPFYYMklsbCxr167l448/5osvvkhavmrVKho3bsxTTz1FpUqV6NGjB9cuMvzPf/5DzZo1qVKlCgMHDuTGiw9XrFjBE088kfT8+++/p0OHDgwdOjRp0r4eiVdsX/8X9dtvv42fnx/+/v4MHToUcN0gqGbNmvj7+9OxY8dUf2kHBwfz3HPPUadOHR544AFWrVpFv3798PX1JTg4OGm78PBw6tatS40aNejUqROxsbFMmDCBw4cP06RJE5o0aZK07bBhw/D396dOnTr8+eefgOtGRk2bNqVq1ao0a9aMPxInM/z999+pW7cufn5+/Pvf/07rx2CMVxg7dixLlizh/fffT3YjL8ekNO2qtzxSm3Z78ODB2qhRowx9DB48ONUpbT/77DPt16+fqqrWrVtXIyMjVVV15cqVWrhwYT148KBevXpV69Spo2vWrFFV1ZiYmKTX9+zZUxcuXKiq/5sqOyEhQR9++GE9duyYqqp269YtaZtr03xfc+354sWLtW7dunr+/Plk73HixImkbYcNG6YTJkxQVdURI0bou+++e9Px9OnTR7t06aIJCQm6YMECLVSokO7YsUOvXr2qNWrU0G3btunx48e1QYMGGhsbq6qqY8aM0ddff11Vb55GHEjK/o9//EPfeOMNVVVt06aNhoaGqqrqxx9/rO3bt1dV1bZt2+qMGTNUVXXixIk3He81Nu228TYbNmzQXLlyaceOHTUhIcFt78ttpt122xmDiISIyDER2ZnC+sYickZEfkx8DL/Vdt5i1qxZdO3aFXDNT3R9c1KtWrUoU6YMOXLkoFq1aklTXa9cuZLatWvj5+fHihUr2LVrV7J9igi9evXis88+4/Tp02zYsIFWrVrdNseyZcvo27cv+RMnCrz33nsB1wR4DRo0wM/Pj7CwsJve61batm2LiODn58df//pX/Pz8yJEjB5UrV+bAgQNs3LiR3bt3U79+fapVq8aMGTOIioq65b58fHxo06YNkHy67w0bNtC9e3cAevXqxdq1awFYt24d3bp1S1puTFZw+vRpunXrRpkyZZg+fXqmz5qaVu4crhoKTARm3mabNaraJiPf9IMPPsjI3aXJyZMnWbFiBT/99BMiwtWrVxER3n33XSD5tNnXprqOj49n0KBBREZGcv/99zNy5Eji4+Nv2nffvn1p27YtefPmpVOnTuTKdWcfYXBwMAsWLMDf35/Q0FBWrVqV6muun977xqm/r1y5Qs6cOQkKCkpTn0ru3LmT/hOkdbpvT/lPY0xGUFWefvppoqOjWbt2LUWKFHE6UhK3nTGoagRw0l3v56R58+bRq1cvoqKiOHDgAAcPHqRChQpJt828lWtFoFixYsTGxqY4Cql06dKULl2aN998k759+yYtz507N5cvX75p+6CgID755JOkPoRrt/48d+4cpUqV4vLly0nTa9+tOnXqsG7dOvbt2wfA+fPn2bNnD5D26b7r1auX1CcTFhZGgwYNAKhfv36y5cZ4u8mTJ/Pll18yevRoateu7XScZDyt87muiGwXke9EpHJKG4nIQBGJFJHI48ePuzNfmsyaNeum6XE7dux427+kixQpwoABA6hSpQotWrSgZs2aKW7bo0cP7r///mSziA4cOJCqVasmdT5f07JlS9q1a0dgYCDVqlVLGor6xhtvULt2berXr0+lSpXu5DBvUrx4cUJDQ+nWrRtVq1albt26SUN1Bw4cSMuWLZN1Pt/Kf//7Xz755BOqVq3Kp59+yvjx4wEYP348kyZNws/P76b7ZxvjbX744QeGDBlC69atefXVV52OcxO3TrstIuWBb1X1pm53ESkMJKhqrIi0BsarasXU9pkdp91+4YUXqF69Ov3793c6isfJ6p+98X5nzpwhICCAixcvsm3bNooVK+ZIjttNu+0xZwyqelZVYxO/XwzkFhFnfmIeLCAggB07dtCzZ0+noxhj0klVGTBgAAcOHOCLL75wrCikxmPmShKRksCfqqoiUgtX0YpxOJbH2bp1q9MRjDF36MMPP2Tu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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Comapring the result graphically\n", "\n", "plt.plot(t, y, 'ro', label='RK4 method')\n", "plt.plot(t_range, y_analt, 'k-', label='Analytical method')\n", "plt.xlabel('$x$', fontsize=14)\n", "plt.ylabel('y(x)', fontsize=14)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "fbfa9784", "metadata": {}, "source": [ "## First order Differential equations" ] }, { "cell_type": "markdown", "id": "7a677d69", "metadata": {}, "source": [ "#### Radioactive Decay\n", "\n", ">There are some elements in nature which spontaneously disintegrates by itself without any external influence. Such a process is called **radioactivity** and the elements are called *radioactive elements*.\n", "\n", "The rate of decay of any radioactive elements is proportional to the number of elements present at that instant. \n", "\\begin{align}\n", "\\frac{dN}{dt}=-\\lambda N, \\hspace{0.5cm}N(t_0)=N_0 \\label{eq1}\\tag{1}\n", "\\end{align}\n", "The constant of proportionality ($\\lambda$) is called *decay constant*. $N_0$ is the number of radioactive element present initially at time $t_0$. The decay constant $\\lambda$ can be further expressed as\n", "\\begin{align}\n", "\\lambda=\\frac{0.693}{T_{1/2}}\\label{eqref{2}}\\tag{2}\n", "\\end{align}\n", "Here, $T_{1/2}$ is the half-life of the radioactive element during which half of the radioactive element will decay.\n", "\n", "We like to simulate radioactivity for a known source. Hence we have to solve Equation (\\ref{eq1}) with appropriate initial condition." ] }, { "cell_type": "code", "execution_count": 7, "id": "d59d044f", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# basic parametrs\n", "N0 = 10000 # initial number of atoms\n", "T_half = 4.5*60\n", "lamda = 0.693/T_half\n", "\n", "# Discretize the independent variable 't'\n", "t_init, t_final, step_size = 0, 1000, 0.1\n", "t = np.arange(t_init, t_final, step_size)\n", "\n", "# Create array for dependent variable \"N\"\n", "N = np.zeros(len(t))\n", "N_rk2 = np.zeros(len(t))\n", "N_rk4 = np.zeros(len(t))\n", "N[0] = N0\n", "N_rk2[0] = N0" ] }, { "cell_type": "code", "execution_count": 8, "id": "5f309b1d", "metadata": {}, "outputs": [], "source": [ "def model(N, t):\n", " return -lamda*N\n", "\n", "def euler(N, t, h):\n", " k = model(N, t)\n", " N_new = N + k*h\n", " return N_new\n", "\n", "def rk2(N, t, h):\n", " k1 = model(N, t)\n", " k2 = model(N+k1*h/2, t+h/2)\n", " N_new = N + k2*h\n", " return N_new" ] }, { "cell_type": "code", "execution_count": 9, "id": "92791a59", "metadata": {}, "outputs": [], "source": [ "# Loop to calculate the value of \"N\" at different \"t\" points\n", "h = step_size\n", "for i in range(len(t)-1):\n", " N[i+1] = euler(N[i], t[i], h)\n", " N_rk2[i+1] = rk2(N_rk2[i], t[i], h)" ] }, { "cell_type": "code", "execution_count": 10, "id": "5c32198d", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Visualizing the simulation\n", "plt.plot(t, N, 'r-', label='Euler')\n", "plt.plot(t, N_rk2, 'b:', label=\"rk2\")\n", "plt.legend()\n", "plt.xlabel('$t$', fontsize=14)\n", "plt.ylabel('$N(t)$', fontsize=14)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "81232d1b", "metadata": {}, "source": [ "Simulation done by Euler method and RK2 method gives identical result." ] }, { "cell_type": "markdown", "id": "2464768c", "metadata": {}, "source": [ "We can solve the problem by taking the help of functions from Scipy. There are two functions - one is `odeint` which solves ordinary differential equation with appropriate initial conditions and the other one is `solve_ivp` which is for solving *initial value problem*." ] }, { "cell_type": "code", "execution_count": 11, "id": "be9668e4", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Solving by odeint\n", "from scipy.integrate import odeint\n", "def model(N, t):\n", " return -lamda*N\n", "\n", "T_half = 4.5*60\n", "lamda = 0.693/T_half\n", "t = np.linspace(0, 1000, 10000)\n", "N0 = 1000\n", "sol = odeint(model, N0, t)\n", "\n", "plt.plot(t, sol[:,0], 'g--', label='odeint')\n", "plt.legend()\n", "plt.xlabel('$t$', fontsize=14)\n", "plt.ylabel('$N(t)$', fontsize=14)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 12, "id": "df915427", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# using solve_ivp function\n", "from scipy.integrate import solve_ivp\n", "\n", "def model(t, N):\n", " return -lamda*N\n", "\n", "T_half = 4.5*60\n", "lamda = 0.693/T_half\n", "t = np.linspace(0, 1000, 10000)\n", "N0 = 1000\n", "sol = solve_ivp(model, t_span=(t[0], t[-1]), y0 = [N0], t_eval=t)\n", "t, y = sol.t, sol.y.T\n", "\n", "plt.plot(t, y, 'b--', label='solve_ivp')\n", "plt.legend()\n", "plt.xlabel('$t$', fontsize=14)\n", "plt.ylabel('$N(t)$', fontsize=14)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "e3c47f9b", "metadata": {}, "source": [ "#### Newton's law of cooling\n", "\n", "If a hot body is kept at ambient temperature, it will eventually loose heat. The law states that\n", ">The rate of heat loss is directly proportional to the difference of temperature of the body with surrounding. Mathematically, we can represent it\n", "\\begin{align}\n", "\\frac{dT}{dt} = -k(T - T_0)\\label{eq01}\\tag{1}\n", "\\end{align}\n", "\n", "where $k$ is the proportionality constant, $T_0$ is the ambient temperature and $T$ is the temperature of the body at any instant. To model Newton's law of cooling, we have to solve the ODE with appropriate initial condition. I prefer to solve it by RK2 method which is not so sensitive to stepsize of numerical approach, but that happens to be the case incase of Euler's method. One can verify it by taking varying stepsize." ] }, { "cell_type": "code", "execution_count": 13, "id": "276f3373", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 14, "id": "6d6ab8e8", "metadata": {}, "outputs": [], "source": [ "# Defing model functions\n", "def model(T, t):\n", " return -k*(T - T0)\n", "\n", "def rk2(T, t, h):\n", " k1 = model(T, t)\n", " k2 = model(T + k1*(h/2), t + (h/2))\n", " T_new = T + k2*h\n", " return T_new" ] }, { "cell_type": "code", "execution_count": 15, "id": "d38813b2", "metadata": {}, "outputs": [], "source": [ "# Discretizing time domain and creating array for Temperature\n", "t_init, t_final, step_size = 0, 10, 0.1\n", "t = np.arange(t_init, t_final, step_size)\n", "T = np.zeros(len(t))\n", "T[0] = 100\n", "h = step_size\n", "k = 0.5\n", "T0 = 30\n", "\n", "for i in range(len(t)-1):\n", " T[i+1] = rk2(T[i], t[i], h)" ] }, { "cell_type": "code", "execution_count": 16, "id": "cf39c3b4", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Visualizing the Cooling process\n", "plt.plot(t, T, 'b--')\n", "plt.xlabel('$t$', fontsize=14)\n", "plt.ylabel('$\\\\frac{dT}{dt}$', fontsize=14)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "1c8b0352", "metadata": {}, "source": [ "We can demonstrate the effect of diiferent values of $k$ on cooling process. Let us take three $k$ values like 0.05, 0.5, 1. Here we have to make minor modification in our functions by passing $k$ value as one of the arguments." ] }, { "cell_type": "code", "execution_count": 17, "id": "a492cf87", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def model(T, t, k):\n", " return -k*(T - T0)\n", "\n", "def rk2(T, t, h, k):\n", " k1 = model(T, t, k)\n", " k2 = model(T + k1*(h/2), t + (h/2), k)\n", " T_new = T + k2*h\n", " return T_new\n", "\n", "k_range = [0.05, 0.5, 1]\n", "\n", "for k in k_range:\n", " for i in range(len(t)-1):\n", " T[i+1] = rk2(T[i], t[i], h, k)\n", " plt.plot(t, T, label='k = '+str(k))\n", "plt.xlabel('$t$', fontsize=14)\n", "plt.ylabel('$\\\\frac{dT}{dt}$', fontsize=14)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "1374d551", "metadata": {}, "source": [ "#### Current in RC circuit with DC source\n", "\n", "##### During Growth\n", "\n", "An electrical circuit containing capacitor (C) and resistor (R) connected to a voltage source V is shown in figure. When the circuit is switched on, the capacitor is gradually charged up. Consider current at any instant $t$ in the circuit is $i$ and corresponding charge on the capacitor is $q$. Charge at any instant on the capacitor can be obtained by applying Kirchoff's voltage law in the closed circuit.\n", "\n", "

\n", "\n", "

" ] }, { "cell_type": "markdown", "id": "1889ff45", "metadata": {}, "source": [ "\\begin{align}\n", "V - iR - \\frac{q}{C} = 0 \\nonumber\\\\\n", "V - R\\frac{dq}{dt} - \\frac{q}{C} = 0\\nonumber\\\\\n", "\\frac{dq}{dt} = \\frac{V}{R} - \\frac{q}{CR}\n", "\\end{align}" ] }, { "cell_type": "code", "execution_count": 18, "id": "09149ba6", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.integrate import odeint" ] }, { "cell_type": "code", "execution_count": 19, "id": "6a1f12bb", "metadata": {}, "outputs": [], "source": [ "def model_growth(q, t, params):\n", " V, R, C = params\n", " dq_dt = V/R - q/(R*C)\n", " return dq_dt" ] }, { "cell_type": "code", "execution_count": 20, "id": "6754eb9d", "metadata": {}, "outputs": [], "source": [ "# basic parameters\n", "V, R, C = 10, 200, 0.002\n", "params = [V, R, C]\n", "\n", "t_init, t_final, step_size = 0, 5, 0.1\n", "t = np.arange(t_init, t_final, step_size) # discretizing the time domain\n", "q = np.zeros(len(t)) # creating arrays for storing the values of 'q'\n", "q[0] = 0\n", "q0 = q[0]\n", "h = step_size" ] }, { "cell_type": "code", "execution_count": 21, "id": "580ef463", "metadata": {}, "outputs": [], "source": [ "sol = odeint(model_growth, q0, t, args=(params,))\n", "q = sol[:, 0]" ] }, { "cell_type": "code", "execution_count": 22, "id": "0c77f312", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(t, q, 'b-')\n", "plt.xlabel('x', fontsize=14)\n", "plt.ylabel('q', fontsize=14)\n", "plt.title('Growth of current', fontsize=16)\n", "txtstr = \"\\n\".join(('V = %0.1f volt'%V, 'R = %0.1f ohm'%R, 'C = %0.3f farad'%C))\n", "plt.text(3, 0.015, txtstr, horizontalalignment='center', verticalalignment='center', bbox=dict(facecolor='gray', alpha=0.5))\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "6b9acf42", "metadata": {}, "source": [ "One can solve the problem using Euler method or RK2 method. The corressponding function will bedefined as follows. One may try this way also." ] }, { "cell_type": "code", "execution_count": 24, "id": "cb9d0130", "metadata": {}, "outputs": [], "source": [ "def Euler_growth(q, t):\n", " q_new = q + h*model_growth(q, t, params)\n", " return q_new\n", "\t\n", "def rk2_growth(q, t):\n", " k1 = h*model_growth(q, t, params)\n", " k2 = h*model_growth(q + k1*h/2, t + h/2, params)\n", " q_new = q + k2\n", " return q_new" ] }, { "cell_type": "markdown", "id": "27911a40", "metadata": {}, "source": [ "##### During decay\n", "\n", "When capacitor starts discharging, current falls in the circuit. The voltage equation during decay of current is\n", "\n", "\\begin{align}\n", "&- iR - \\frac{q}{C} = 0 \\nonumber\\\\\n", "\\implies & - R\\frac{dq}{dt} - \\frac{q}{C} = 0\\nonumber\\\\\n", "\\implies &\\frac{dq}{dt} = - \\frac{q}{CR}\n", "\\end{align}" ] }, { "cell_type": "code", "execution_count": 25, "id": "ee8f3c3d", "metadata": {}, "outputs": [], "source": [ "def model_decay(q, t, params):\n", " V, R, C = params\n", " dq_dt = - q/(R*C)\n", " return dq_dt" ] }, { "cell_type": "code", "execution_count": 26, "id": "a14979f7", "metadata": {}, "outputs": [], "source": [ "# basic parameters\n", "V, R, C = 10, 200, 0.002\n", "params = [V, R, C]\n", "\n", "t_init, t_final, step_size = 0, 5, 0.1\n", "t = np.arange(t_init, t_final, step_size) # discretizing the time domain\n", "q = np.zeros(len(t)) # creating arrays for storing the values of 'q'\n", "q[0] = C*V\n", "q0 = q[0]\n", "h = step_size" ] }, { "cell_type": "code", "execution_count": 27, "id": "1f809cbe", "metadata": {}, "outputs": [], "source": [ "sol = odeint(model_decay, q0, t, args=(params,))\n", "q = sol[:, 0]" ] }, { "cell_type": "code", "execution_count": 28, "id": "5a19669d", "metadata": {}, "outputs": [ { "data": { "image/png": "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0qQJRx55ZKmWFMA777zDgAEDABgwYACzZs0qlefyyy9n6dKlxccjRowgLy+PjRs3csMNNzBs2DAuv/xyPi/xb+ajjz7inXfe4aGHHuLiiy9mxYqS73C7VJbUIcx1StG7Mp99Bkcmb7IBV7s1bdqUQw45hNmzZ9OnTx9mzJjB8ccfj6RSea+66iq+++67UumXXXYZR5bz/8n8/Hxat25dfJyZmUl+fn6pfOvWraNly2CawRYtWrAuznpK/fr144033qBTp06sXbuWdevWcfDBB3PfffeRlZXFLbfcwvz587ntttsYP3588XWHHXYYvXr14thjj6Vv377lqrdLHR5kEqVoGLN3/rtqVvTIrCjI/P73v4+b77777ktyzQKS4ga9448/nt///vdceOGFvP766xx33HEAfPjhh/zpT38C4IgjjmDjxo1s2bIlqXV2ieNBJlH22gvatfPOf1ft+vTpwwMPPMDixYvZtm0bBx98cNx81dGSadWqFQsWLCg+XrNmDT169CiVr0WLFqxdu5aWLVuydu1amjdvXipPZmYmzZo14/PPP+eNN97gmmuuKVcdXM3mQSaRsrK8JeOqXaNGjejRowd//vOfd9vhXx0tmaOOOorx48cXd/bn5uZyySWXlMrXq1cvpk2bxrnnnsu0adPo1atX3PKOP/54Jk2axObNmznooIMA+PGPf8yrr77K+eefz4IFC2jWrBmNGzfe5bq99torbsB0qc87/hPJ35VxCdK/f38+//zzUqPBKuvTTz/lrLPO4s033+Suu+5i6NChQNAH9Ktf/YpLL72USy+9lPPPP5+mTZsC8Je//IW8vDwAzjnnHHJzcxkyZAjz5s3j3HPPjfs9ffv2ZcaMGfTr1684bejQoSxevJhhw4Yxbtw4Ro8utTI7/fr149lnn+WSSy7xjv8aRuWb5LhuyM7Ottzc3Oor8I47YPRo2LABwn+YzpU0YsQIn7ssQV588UXuueeeqKtR60maZ2bZ8c55SyaRYkeYOedcHeRBJpEOOST4XLRo9/mcc66W8iCTSF26QIMG8MEHUdfEOeci4aPLEik9HQ47zIOMq7T+/fvTqVMnCgsLadu2Lddddx177713lcp87rnnmDJlCmlpaTRr1oxrr72WfffdFwjmC5s4cSIAQ4YMYeDAgQDk5eVxxx13sG3bNo4++mh+85vflHoXxsz4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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(t, q, 'r-')\n", "plt.xlabel('x', fontsize=14)\n", "plt.ylabel('q', fontsize=14)\n", "plt.title('Decay of current', fontsize=16)\n", "txtstr = \"\\n\".join(('V = %0.1f volt'%V, 'R = %0.1f ohm'%R, 'C = %0.3f farad'%C))\n", "plt.text(3, 0.015, txtstr, horizontalalignment='center', verticalalignment='center', bbox=dict(facecolor='gray', alpha=0.5))\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "e9f0339e", "metadata": {}, "source": [ "#### Current in LC circuit\n", "\n", "

\n", "\n", "

\n", "\\begin{align}\n", "&V_L = V_C \\\\\n", "\\implies &-L\\frac{dI}{dt} = \\frac{q}{C}\\\\\n", "\\implies &\\frac{d^2q}{dt^2} + \\frac{1}{LC}q = 0\n", "\\end{align}\n", "This is a second order differential equation which can be solved numerically either by Euler method or RK2 method or by using `odeint` function. But, before that we have to break it into two first order differential equations.\n", "\\begin{align}\n", "&\\frac{dq}{dt} = i \\\\\n", "&\\frac{di}{dt} = \\left(-\\frac{1}{LC}\\right)q\n", "\\end{align}" ] }, { "cell_type": "code", "execution_count": 29, "id": "4f064e21", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Basic parameters\n", "L = 1\n", "C = 1\n", "\n", "# Discretizing time domain and creating array for 'q' for storing values\n", "t_init, t_final, step_size = 0, 10, 0.01\n", "t = np.arange(t_init, t_final, step_size)\n", "z = np.zeros((len(t),2))\n", "q0, i0 = 0, 1\n", "z[0] = [q0, i0]\n", "h = step_size\n", "\n", "# defining functions\n", "def model(z, t):\n", " q, i = z\n", " dq_dt = i\n", " di_dt = -q/(L*C)\n", " dz_dt = np.array([dq_dt, di_dt])\n", " return dz_dt\n", "\n", "def euler(z,t, h):\n", " z_new = z + model(z, t)*h\n", " return z_new\n", "\n", "for i in range(len(t)-1):\n", " z[i+1] = euler(z[i], t[i], h)\n", "q, i = z[:, 0], z[:, 1]\n", "\n", "plt.plot(t, q, 'b-', label='q')\n", "plt.plot(t, i, 'r-', label='i')\n", "plt.xlabel('t', fontsize=14)\n", "plt.ylabel('q(t)', fontsize=14)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "a9b4b465", "metadata": {}, "source": [ "#### Laws of motion\n", "\n", "##### Rectilinear motion\n", "\n", "The instantneous velocity and acceleration, by definition is given by\n", "\n", "\\begin{align}\n", "v(t) = \\frac{dx}{dt} = \\lim_{h\\to 0}\\frac{x(t+h) - x(t)}{h}\\\\\n", "a(t) = \\frac{dv}{dt} = \\lim_{h\\to 0}\\frac{v(t+h) - v(t)}{h}\n", "\\end{align}\n", "\n", "$h\\to 0$ is highly idealized concept, hardly can be achieved in a computer. So, let us consider $h$ to be infinitesimally small, but finite so that the above equations can be written as\n", "\\begin{align}\n", "x(t+h) = x(t) + hv(t) \\\\\n", "v(t+h) = v(t) + ha(t) \n", "\\end{align}\n", "These equations can be converted into a dynamical equations provided we know the force law. Acceleration is then given by\n", "\\begin{equation}\n", "a(t) = \\frac{F(x, v, t)}{m} \n", "\\end{equation}\n", "Let us now attempt to simulate a particle motion, where the particle starts moving with an initial velocity ($u$). If we consider the particle is acted on by an acceleration ($a$) ignoring for the moment the specific nature of force acting on the particle, then motion of the particle can be simulated over a time range. The time range is discretized into small time step ($h$)." ] }, { "cell_type": "code", "execution_count": 30, "id": "9a365bd6", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.integrate import odeint\n", "\n", "# Calculation of distance and velocity of particle\n", "# Numerical calculation By Euler's method\n", "tmin = 0 # starting time\n", "tmax = 10 # ending time\n", "h = 0.1 # time step\n", "t = np.arange(tmin, tmax, h)\n", "x = np.zeros_like(t)\n", "v = np.zeros_like(t)\n", "u = 10 # initial velocity\n", "a = 50 # acceleration\n", "v[0] = u\n", "\n", "for i in range(len(t)-1):\n", " x[i+1] = x[i] + h*v[i]\n", " v[i+1] = v[i] + h*a\n", "\n", "# Analytical method of calculation\n", "S = lambda u, a, t: u*t + 0.5*a*t**2 # distance\n", "V = lambda u, a, t: u + a*t # velocity\n", "\n", "# Plotting graph of distance and velocity\n", "fig = plt.figure(figsize=(6, 5))\n", "fig.subplots_adjust(hspace=0.4, wspace=0.4)\n", "plt.subplot(2, 1, 1)\n", "plt.plot(t, S(u, a, t), color='blue', linestyle='solid', label=\"Analytical\")\n", "plt.plot(t, x, color='red', linestyle='dashed', label='Numerical')\n", "plt.ylabel('s(t)')\n", "plt.legend()\n", "plt.subplot(2, 1, 2)\n", "plt.plot(t, V(u, a, t), color='blue', linestyle='solid', label=\"Analytical\")\n", "plt.plot(t, v, color='red', linestyle='dashed', label='Numerical')\n", "plt.ylabel('v(t)')\n", "plt.xlabel('t')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "9258816b", "metadata": {}, "source": [ "##### Freely falling body\n", "\n", "Consider a body falling freely under the action of gravity. So, the acceleration acting on the body is taken to be constant which is equal to $g$. We want to know the position and velocity of the particle at different instant of time. We can use the following lines of code to know the values." ] }, { "cell_type": "code", "execution_count": 31, "id": "1aaf827f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAE9CAYAAADkun5QAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAwjElEQVR4nO3deXyU9dnv8c9FQIOIIBARBQy4oAgSIbIYF5YKuOIKolVbF57WpW6tW09tbY99tFq0tj5aWhc8p0JSVwrUHeWIG4ugCBRZNYqCqCwKyHKdP64hAQlbSHJPZr7v1+t+ZXLPTObKEPLN/VvN3REREQGok3QBIiKSPhQKIiJSRqEgIiJlFAoiIlJGoSAiImUUCiIiUqZu0gXsimbNmnl+fn7SZYiI1CqTJ0/+wt3zKrqv2kLBzB4GTgEWu3uH1LkmQDGQDywABrr7V2ZmwJ+Ak4BvgR+5+5TtvUZ+fj6TJk2qnm9ARCRDmdnCrd1Xnc1HjwL9v3fuJuBldz8YeDn1OcCJwMGpYwjwQDXWJSIiW1FtoeDu44Evv3d6ADA8dXs4cPom5x/z8BbQ2MxaVFdtIiJSsZruU2ju7otStz8Dmqdu7w98vMnjSlPnFlENnn8ennxy6/ebQd265UdOTvnt3XeH3NyKjwYNYM8949j0dr161fFdiIhUvcQ6mt3dzWynF14ysyFEExOtW7eu1GvPnQujR2/9/g0bYP16WLduy6MydtsNGjeGRo3i46a3994bmjWLo2nT8tvNmsV9dTQ+TLLc2rVrKS0tZfXq1UmXUuvk5ubSsmVL6u3EX6Y1HQqfm1kLd1+Uah5anDr/CdBqk8e1TJ3bgrsPA4YBFBYWVmo1v8svj2NnuUcwrF695bFqFXzzTRwrV8ax8faKFbBsGXz9dfnx8cfx8csv4bvvKn69nBzYZx/Yd19o3jw+bry9//7QsmV8bNFCVyOSuUpLS2nYsCH5+fnEmBTZEe7O0qVLKS0tpU2bNjv8vJoOhVHARcAdqY/PbnL+SjMbCXQDlm3SzJQ2zOKXb7160LBh1XxN9wiPpUvhiy/i2Hh78WL47DP4/PP4OH163F67dsu6mjePkGjZEg44APLz4+PG23vvHY8TqW1Wr16tQKgEM6Np06YsWbJkp55XnUNSRwA9gWZmVgr8mgiDEjO7BFgIDEw9fCwxHHUOMST1x9VVV7oxK+97OOCA7T/ePa4uPvkkjtLSzT9++CG89FJcoWxqzz2hTRs48EA46KD4uPF2q1bRXyKSrhQIlVOZ963afhW4++Ct3NWngsc6cEV11ZJJzKLvoWlTOOKIih+zMTgWLoQFC8o/zp8Ps2fDv/8Na9aUP75uXWjbFg49FNq12/xj06Y18V2JpLecnBw6duzI2rVrqVu3LhdeeCHXXnstderUYdKkSTz22GPcd999FT53wYIFvPHGG5x33nk1XHXl6O/DDLRpcHTuvOX9GzbAp5/CnDnR6T5nToTFf/4Dzz23eR9H06bQvj0cfngcHTrEx7wK50KKZKb69eszdepUABYvXsx5553H8uXLue222ygsLKSwsHCrz12wYAGPP/54rQkF3L3WHl26dHGpWuvWuc+Z4z5mjPsf/+h+2WXuRUXujRu7xzVIHHl57r16uV99tfsjj7hPmeK+enXS1UsmmjFjRtIleIMGDTb7fO7cud6kSRPfsGGDjxs3zk8++WR3d3/11Ve9U6dO3qlTJy8oKPDly5d7t27dfK+99vJOnTr50KFDff78+X7MMcf4kUce6UceeaRPmDDB3d3HjRvnxx9/vJ911lnerl07P++883zDhg3u7v7OO+94jx49/IgjjvCjjjrKly9f7uvWrfOf//znXlhY6B07dvQHH3ywwtorev+ASb6V36u6UpDN5OSU9zecdFL5eXdYtCg6uz/4II7p0+Fvf4Nvv43H1K0bTU6dOkFBAXTpElcqjRol8q2IVJu2bduyfv16Fi9evNn5u+++m/vvv5+ioiJWrlxJbm4ud9xxB3fffTejU+Pgv/32W1588UVyc3P58MMPGTx4cNlyPe+++y4ffPAB++23H0VFRUyYMIGuXbsyaNAgiouLOeqoo1i+fDn169fnoYceolGjRkycOJE1a9ZQVFRE3759d2qkUUUUCrJDzGC//eLo27f8/Pr10fw0bVr58eqr8I9/lD/moIMiILp0gcJCBYVU3jXXQKoVp8oUFMC991bN1yoqKuK6667j/PPP58wzz6Rly5ZbPGbt2rVceeWVTJ06lZycHGbPnl12X9euXcueU1BQwIIFC2jUqBEtWrTgqKOOAmCvvfYC4IUXXuC9997jiSeeAGDZsmV8+OGHCgVJVk5OdEq3awcDB5afX7IEJk8uP958E4qL4z6zuKLo3h26dYujQweN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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "np.set_printoptions(suppress=True)\n", "# Free fall without air resistance\n", "H = 500\n", "tmin = 0\n", "tmax = 10\n", "h = 0.1\n", "g = 9.8\n", "\n", "x= 100\n", "v = 0\n", "t = 0\n", "X = []\n", "V = []\n", "T = []\n", "\n", "while x>=0:\n", " X.append(x)\n", " V.append(v)\n", " T.append(t)\n", " x = x - h*v\n", " v = v + h*g\n", " t +=h\n", "\n", "fig = plt.figure(figsize=(6, 5))\n", "fig.subplots_adjust(hspace=0.4, wspace=0.4)\n", "plt.subplot(2,1,1)\n", "plt.plot(T, X, color='blue', label='Distance')\n", "plt.ylabel('x(t)')\n", "plt.legend()\n", "plt.subplot(2,1,2)\n", "plt.plot(T, V, color='magenta', label='Velocity') \n", "plt.xlabel('t')\n", "plt.ylabel('v(t)')\n", "plt.legend()" ] }, { "cell_type": "markdown", "id": "470f6734", "metadata": {}, "source": [ "In the next phase, we can consider viscosity of the medium during free fall of the particle. In this case the net force acting on the particle is the difference of the force of gravity acting downwards and viscous drag acting in the upward direction. The viscous drag can be obtained from Stoke's law which is $6\\pi\\eta r v$. Therefore, the net force can be written as\n", "\\begin{equation}\n", "F_{net} = mg - 6\\pi\\eta r v\n", "\\end{equation}\n", "and hence, the net acceleration acting on the particle is\n", "\\begin{equation}\n", "\\begin{aligned}\n", "&a = g - \\frac{6\\pi\\eta r}{m}v\\\\\n", "&a = g - c v\\hspace{1cm}\\mbox{where,}~ c= \\frac{6\\pi\\eta r}{m}\n", "\\end{aligned}\n", "\\end{equation}\n", "The programe code to implement the viscous drag effect is given below -" ] }, { "cell_type": "code", "execution_count": 32, "id": "5f7b0ed8", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Free fall with air resistance, terminal velocity\n", "\t\n", "def f(v, t):\n", " return g - c*v\n", "\n", "H = 10000\n", "h = 0.1\n", "g = 9.8\n", "c = 0.1\n", "\n", "x = H\n", "v = 0\n", "t = 0\n", "X = []\n", "V = []\n", "T = []\n", "\n", "while x>=0:\n", " X.append(x)\n", " V.append(v)\n", " T.append(t)\n", " x = x - h*v\n", " v = v + h*f(v, t)\n", " t +=h\n", "\n", "fig = plt.figure(figsize=(6, 5))\n", "fig.subplots_adjust(hspace=0.4, wspace=0.4)\n", "\n", "plt.subplot(2,1,1)\n", "#plt.title('Free fall considering viscosity of air')\n", "plt.plot(T, X, color='blue', label='Distance')\n", "plt.ylabel('x(t)')\n", "plt.legend()\n", "plt.subplot(2,1,2)\n", "plt.plot(T, V, color='magenta', label='Velocity') \n", "plt.xlabel('t')\n", "plt.ylabel('v(t)')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "5eb6d3cf", "metadata": {}, "source": [ "Finally, we can consider the effect of both buoyancy and viscous drag of the medium. The program code can be written as -" ] }, { "cell_type": "code", "execution_count": 33, "id": "708bd6b3", "metadata": {}, "outputs": [ { "data": { "image/png": "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xx7Ld999t8FrR40aRdu2bdl777254oorfi1/5ZVX6NChA+3bt+fggw8G4NFHH2XQoEG8//77jB07lssuu4yCggLmzp1Lhw6/LbHx2WefrfN1ZejurIqYHj3uFWsUIlIZF/HbDTKpUgDcVfbTDRs2pHPnzrz88sv069eP0aNH07NnT2666SZef/116tatyy233MKdd97JNddc8+vrvvzyS6644gomTZpEgwYN6NmzJ88//zxdu3blrLPOYsKECbRu3Zqvv/56nc/bb7/96Nu3L3369OGYY44BoH79+hQXF1NQUMDw4cM57bTTUvKtqyVSEUoiIpKkxC6t0aNH06pVK2bMmEHXrl0pKChgxIgRLFiwYJ3XTJw4kW7dutGkSRNq1qzJwIEDmTBhAh988AEHHnjgr7fiNmzYcLOff+aZZzJ8+HDWrl3LmDFjOOGEE1LyfaklUhHTgYZAs7gDEZGk3RXPx/br14+LL76YyZMn88MPP9ChQwd69OjBqFGjMvL5Rx99NNdffz0HHXQQHTt2pFGjRil5X7VEKmI6oRWiOwVFpIK23nprunfvzumnn86AAQPo0qUL7733HnPmzAHg+++/Z/bs2eu8pnPnzrz99tt89dVXrF27llGjRvH73/+eLl26MGHCBObNmwewQXcWQL169Vi5cuWvX9epU4devXpx7rnnpqwrC5REys/5LYmIiCRhwIABTJkyhQEDBtCkSRMeffRRBgwYQLt27fjd737HrFmz1rm+efPmDBkyhO7du9O+fXs6duxIv379aNKkCcOGDeOoo46iffv2HH/88Rt8Vv/+/bntttvYZ599mDt3LgADBw6kRo0a9OzZM2Xfk7l7yt4sFxQWFnoy91+zEGgJ3AMMSnFQIpJWM2fOZM89NUP49ttvZ8WKFdxwww1lXrOxujKzSe5euLHrNSZSXhpUF5EcduSRRzJ37lzefPPNlL5vzicRMzsU+DuQB/zT3Yek5YOUREQkhz333HNped+cHhMxszzgPqA30AYYYGZt0vJh04HGQNO0vLuISE7K6SQCdAbmuPvn7v4TMBrol5ZP0qC6SE6rbuO/yUimjnI9ibQAvkj4uiQqSy0HZqAkIpKj6tSpw/Lly5VINqF0P5E6depU6HU5PyZSHmZ2NtFehDvssEPF32AtcC+wS0rDEpEMadmyJSUlJSxbtizuULJa6c6GFZHrSWQh0Crh65ZR2TrcfRgwDMItvhX+lJrASckFKCLxq1WrVoV265Pyy/XurInArmbW2sxqA/2BsTHHJCJSbeR0S8TdfzazQcCrhFt8H3H36Zt5mYiIpEhOJxEAd/8P8J+44xARqY6q3bInZrYMWLDZCzeuMWFbqmymGFNDMaaGYkyNuGPc0d2bbOyJapdEKsPMispaPyZbKMbUUIypoRhTI5tjzPWBdRERiZGSiIiIJE1JpGKGxR1AOSjG1FCMqaEYUyNrY9SYiIiIJE0tERERSZqSSDmY2aFm9qmZzTGzwXHHA2BmrczsLTObYWbTzezCqPw6M1toZsXRcVjMcc43s0+iWIqisoZm9pqZfRY9Nogxvt0T6qrYzL41s4uyoR7N7BEzW2pm0xLKNlp3Ftwd/Y5ONbMOMcV3m5nNimJ4zsy2jcrzzWxVQn0+kO74NhNnmT9fM7syqsdPzaxXTPGNSYhtvpkVR+Wx1WOZ3F3HJg7CTPi5wE5AbWAK0CYL4moOdIjO6wGzCXuqXAf8Ke74EuKcDzRer+xWYHB0Phi4Je44E37Wi4Eds6EegQOBDsC0zdUdcBjwMmBAF+DDmOLrCdSMzm9JiC8/8bosqMeN/nyjf0NTgC2A1tG//bxMx7fe83cA18Rdj2UdaolsXub2LKkAd1/k7pOj85XATNKxDH569ANGROcjgCPiC2UdBwNz3T3Zyagp5e4TgK/XKy6r7voBj3nwAbCtmTXPdHzuPs7df46+/ICwKGqsyqjHsvQDRrv7j+4+D5hD+BuQNpuKz8wMOA4Ylc4YKkNJZPMys2dJJZhZPrAP8GFUNCjqTngkzq6iiAPjzGxStCQ/QDN3XxSdLwaaxRPaBvqz7j/WbKrHUmXVXTb+np5OaB2Vam1mH5vZ22Z2QFxBJdjYzzfb6vEAYIm7f5ZQllX1qCSS48xsa+AZ4CJ3/xa4H9gZKAAWEZrCcdrf3TsQtjA+38wOTHzSQxs99lsEo1Wg+wJPRUXZVo8byJa62xgzuxr4GRgZFS0CdnD3fYBLgCfMbJu44iMHfr6RAaz7H5tsq0clkXIo154lcTCzWoQEMtLdnwVw9yXuvtbdfwEeIs1N8c1x94XR41LguSieJaVdLdHj0vgi/FVvYLK7L4Hsq8cEZdVd1vyemtmpQB9gYJToiLqHlkfnkwhjDbvFEV8UQ1k/32yqx5rAUcCY0rJsq0dQEimPrNyzJOorfRiY6e53JpQn9oMfCUxb/7WZYmZ1zaxe6Tlh0HUaof5OiS47BXghngjXsc7/+LKpHtdTVt2NBU6O7tLqAqxI6PbKGDM7FLgc6OvuPySUNzGzvOh8J2BX4PNMx5cQT1k/37FAfzPbwsxaE+L8KNPxRQ4BZrl7SWlBttUjoLuzynMQ7nyZTcj6V8cdTxTT/oSujKlAcXQcBvwL+CQqHws0jzHGnQh3ukwBppfWHdAIeAP4DHgdaBhzXdYFlgP1E8pir0dCUlsErCH0zZ9RVt0R7sq6L/od/QQojCm+OYQxhdLfyQeia4+OfgeKgcnAH2KuxzJ/vsDVUT1+CvSOI76o/FHgj+tdG1s9lnVoxrqIiCRN3VkiIpI0JREREUmakoiIiCRNSURERJKmJCIiIklTEhGJmZlta2bnxR2HSDKURETity2gJCI5SUlEJH5DgJ2j/SFuizsYkYrQZEORmEWrMP/b3feOOxaRilJLREREkqYkIiIiSVMSEYnfSsIWxyI5R0lEJGYe9od4z8ymaWBdco0G1kVEJGlqiYiISNKUREREJGlKIiIikjQlERERSZqSiIiIJE1JREREkqYkIiIiSVMSERGRpP1/ZpOnEPu9Tu0AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Free fall considering buoyancy of air and air resistance\n", "\n", "m = 10\n", "r = 1\n", "rho = 1\n", "g = 9.8\n", "F = (m - (4/3)*np.pi*r**3*rho)*g \n", "\n", "def f(v, t):\n", " return F/m - c*v\n", "\n", "H = 10000\n", "h = 0.1\n", "g = 9.8\n", "c = 0.1\n", "\n", "x = H\n", "v = 0\n", "t = 0\n", "X = []\n", "V = []\n", "T = []\n", "\n", "while x>=0:\n", " X.append(x)\n", " V.append(v)\n", " T.append(t)\n", " x = x - h*v\n", " v = v + h*f(v, t)\n", " t +=h\n", "\n", "fig = plt.figure(figsize=(6, 5))\n", "fig.subplots_adjust(hspace=0.4, wspace=0.4)\n", "\n", "plt.subplot(2,1,1)\n", "#plt.title('Free fall considering viscosity of air')\n", "plt.plot(T, X, color='blue', label='Distance')\n", "plt.ylabel('x(t)')\n", "plt.legend()\n", "plt.subplot(2,1,2)\n", "plt.plot(T, V, color='magenta', label='Velocity') \n", "plt.xlabel('t')\n", "plt.ylabel('v(t)')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "08f23c58", "metadata": {}, "source": [ "##### Projectile motion\n", "\n", "There are two forces acting on a projectile - force due to its own weight and drag force due to air resistance. For small velocities, the drag force is proportional to velocity. The Newton's law representing the projectile motion can be written as\n", "\\begin{equation}\n", "\\begin{aligned}\n", "m\\frac{d\\vec{v}}{dt} &= \\vec{F}_{gravity} + \\vec{F}_{drag}\\\\\n", "&=m\\vec{g} - k\\vec{v}\n", "\\end{aligned}\n", "\\end{equation}\n", "$k$ is a constant representing air resistance.\n", "\n", "Our goal is to determine position and velocity and hence we solve following two equations -\n", "\\begin{eqnarray}\n", "&&\\frac{dx}{dt} = v\\\\\n", "&&m\\frac{d\\vec{v}}{dt} = -m\\vec{g} - k\\vec{v}\n", "\\end{eqnarray}\n", "\n", "We write the equations in terms of components ( along $x$ and $y$ directions)\n", "\\begin{eqnarray}\n", "&& \\frac{dx}{dt} = v_x \\\\\n", "&& \\frac{dy}{dt} = v_y \\\\\n", "&& m\\frac{dv_x}{dt} = -kv_x \\implies \\frac{dv_x}{dt} = -\\frac{k}{m}v_x \\\\\n", "&& m\\frac{dv_x}{dt} = -mg - kv_y \\implies \\frac{dv_x}{dt} = -g - \\frac{k}{m}v_y\n", "\\end{eqnarray}\n", "\n", "We can solve these four equations either by Euler's method or by Runge-Kutta's method of order 2. We shall demonstrate the exercise with Euler's method. Before that we represent the variables in compact form with matrix notation.\n", "\\begin{eqnarray}\n", "&& z= [x, y, v_x, v_y]\\\\\n", "&& \\frac{dz}{dt} = [v_x, v_y, -(k/m)v_x, -g - (k/m)v_y]\n", "\\end{eqnarray}\n", "\n", "The program to implement the above simulation is shown below -" ] }, { "cell_type": "code", "execution_count": 34, "id": "90729c8a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'y')" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEGCAYAAAB/+QKOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAA+rElEQVR4nO3dd3iUZdY/8O+B0KsUURMQQgklJAES2tI7UkRRBBGwYkXXdVlx10X0t6/6Kqv7qqushaICgjRZBKVLLwnSkSI9IIQiECCQcn5/nHlCSGZS55n7mZnzua5ck5l55pmTTDJn7nZuYmYopZRS2RUzHYBSSiln0gShlFLKLU0QSiml3NIEoZRSyi1NEEoppdwKMR2AN1WrVo1r165tOgyllPIbCQkJZ5i5urv7AipB1K5dG/Hx8abDUEopv0FERzzdp11MSiml3NIEoZRSyi1NEEoppdwKqDEIpfxJamoqjh8/jpSUFNOhqCBQunRphIWFoUSJEvl+jCYIpQw5fvw4KlSogNq1a4OITIejAhgz4+zZszh+/Djq1KmT78dpF5NShqSkpKBq1aqaHJTtiAhVq1YtcGtVE4RSBmlyUL5SmL817WJSPnf9OrB/P7B7N3DqFHDxIpCeDlSuDFSrBjRpAjRsCJQsaTpSpYKbtiCUT5w4AfzrX0CvXkClSkBkJDBoEDBqFPC3vwFjxwLPPw88+CAQHQ1UqAB06wa8/748Vtln3rx5ICL88ssvRTrP5MmT8dxzz3klpiFDhiAqKgrvv/++V85nmT9/Pt5+++1CPfbNN9+86Xrbtm29EVKhXLx4EWFhYTf9vjt16oSIiAjExMQgJiYGp0+fLvLzaIJQtmEGli0D7r4bqFULePFF4MgR4Mknga+/BrZsAU6fBlJSpFWRlATs2AFMny6J4+RJ4E9/ksfedx+wfr3pnygwTZ8+He3atcP06dNNhwIA+O2337B582Zs374dL774YoEfn5aW5vG+/v37Y8yYMYWKK3uCWLduXaHO4w1///vf0aFDhxy3T506FVu3bsXWrVtx6623Fvl5NEEoW/z0E9Chg7QCNm4ERo8G9u4F9uyRlsTQoUCzZkD16kCpUkCJEtK9FBkJDB4MjB8P7NoF7NsnSWLFCqBtW6B/f7ldeUdycjLWrFmDL774At98803m7StXrkSnTp1w3333oWHDhhg6dCis3ScXLlyIhg0bokWLFnj++efRt2/fHOdNSkrCwIEDERcXh7i4OKxduzbHMSkpKXjkkUfQtGlTNGvWDCtWrAAA9OjRA4mJiYiJicHq1atveszDDz+Mp556CrGxsWjQoAEWLFgAQFov/fv3R5cuXdC1a1ecO3cOAwYMQFRUFFq3bo3t27dnHmd96vYUY3JycmZcUVFRmD17NsaMGYOrV68iJiYGQ4cOBQCUL18egMwQGj16NCIjI9G0aVPMmDEjz99hUSQkJODUqVPo0aNHkc+VJ2YOmK8WLVqwMuvkSeYHH2QGmENDmT/6iDklpejnTU5mfvNN5kqVmENCmMeO9c55Tdq9e7fpEPjrr7/mRx99lJmZ27Rpw/Hx8czMvGLFCq5YsSIfO3aM09PTuXXr1rx69Wq+evUqh4WF8cGDB5mZefDgwdynTx9mZp40aRI/++yzzMw8ZMgQXr16NTMzHzlyhBs2bJjjucePH8+PPPIIMzPv2bOHa9asyVevXuVDhw5xkyZN3MY7YsQI7tmzJ6enp/O+ffs4NDSUr169ypMmTeLQ0FA+e/YsMzM/99xzPG7cOGZmXrZsGUdHR+c7xr/85S/8wgsvZD7nuXPnmJm5XLlyN8ViXZ81axZ369aN09LS+LfffuOaNWvyiRMnPP4Os3vnnXc4Ojo6x9eoUaNyHJuens4dO3bkY8eO3fSzMDN37NiRIyMjOTo6mt944w3OyMjI8Xh3f3MA4tnDe6oOUiuvmTYNeOYZ4OpV4LXXgJdfBsqU8c65y5UDXnkFeOIJ6ap64w1g7lzg22+BiAjvPEcwmj59Ol544QUAwODBgzF9+nS0aNECANCyZUuEhYUBAGJiYnD48GGUL18e4eHhmXPphwwZgk8//TTHeZcuXYrdu3dnXr948SKSk5MzP3UDwJo1azBq1CgAQMOGDXHnnXdi3759qFixYq4xDxo0CMWKFUP9+vURHh6eOXbSvXt3VKlSJfPcs2fPBgB06dIFZ8+excWLF/MV49KlS29qTd1yyy25xrNmzRoMGTIExYsXR40aNdCxY0ds3rwZFStWdPs7bNeu3U2PHz16NEaPHp3rc1g+/vhj3HXXXZnnzGrq1KkIDQ3FpUuXMHDgQHz11VcYPnx4vs7riSYIVWTJycBzzwFTpkg30KRJQIMG9jxXtWrAV19JN9SIEUBcHDBxooxRqII5d+4cli9fjh07doCIkJ6eDiLCu+++CwAoVapU5rHFixfPtW8/u4yMDGzYsAGlS5f2etzZp2ta18uVK1eg89gZoyU/v8N3330XU6dOzXF7hw4d8MEHH9x02/r167F69Wp8/PHHSE5OxvXr11G+fHm8/fbbCA0NBQBUqFABDz74IDZt2lTkBKFjEKpIDh0C2rSRN+2xY2Xswa7kkFWfPsDPPwONGwP33w/87//KoLjKv1mzZmHYsGE4cuQIDh8+jGPHjqFOnTo5+v2zioiIwMGDB3H48GEAyOxvz65Hjx748MMPM69v3bo1xzHt27fPfGPct28fjh49ioh8NAe//fZbZGRk4Ndff8XBgwfdPibruVeuXIlq1arlaJl4irF79+7497//nXn7+fPnAQAlSpRAamqq2+eaMWMG0tPTkZSUhFWrVqFly5Z5/hyW0aNHZw4sZ/3KnhwAaSUcPXoUhw8fxvjx4zF8+HC8/fbbSEtLw5kzZwBICZcFCxYgMjIy3zF4oglCFdrq1UDLlkBiIrB4MfD660CID9ukNWtKQhoyBBgzRqbJZmT47vn93fTp03HPPffcdNvAgQNznc1UpkwZfPzxx+jVqxdatGiBChUqoFKlSjmO++CDDxAfH4+oqCg0btwYEyZMyHHMM888g4yMDDRt2hQPPPAAJk+efNMnbk9q1aqFli1bonfv3pgwYYLbFsC4ceOQkJCAqKgojBkzBlOmTMm8z2pxeIrx1Vdfxfnz5xEZGYno6OjMwfORI0ciKioqc5Dacs899yAqKgrR0dHo0qUL3nnnHdx22215/hzedO3aNfTs2RNRUVGIiYlBaGgonnjiiaKf2NPghD9+6SC178yfz1yqFHODBsz79pmNJT2d+aWXZGB85EhmN2NzjuSEQerCuHTpEjMzZ2Rk8NNPP83vvfeez557xIgR/O233xb68ePHj+exY8d6MSL/ooPUynYzZgAPPQTExAA//ABUrWo2nmLFgHfflemyb74pU2Y//BDQKhb2+OyzzzBlyhRcv34dzZo1w5NPPmk6pHyZMGECJk+ejDlz5pgOxW8QB1DHbWxsLOuWo/aaMgV49FHgD38AFiwA8phw4lPMwF/+ImsoXn4ZKOSCWZ/Zs2cPGjVqBAD44x8BN930RRITI2tOlLJk/ZuzEFECM8e6O15bECrfZs+W5NC1KzBvHlC2rOmIbkYEvPMOcOmSDFrXrSvTYpVSheSp78kfv3QMwj5LljCXLMncti3z5cumo8ldaipzz56yoG7JEtPReOaUMYi5c+cyAN6zZ0/mbYmJiTxw4EDbn/uxxx7jXbt2ebx/0qRJnJiYaHsc3rBo0SJu0KAB161bl9966y23x/z000/crFkzLl68eI6xlGLFimUukuvXr58tMRZ0DMK2N2sAEwGcBrAzy20zAGx1fR0GsNXDYw8D2OE6zmPw2b80Qdhj40bmcuWYo6KYXYtKHe/CBebISFl5feCA6Wjcc0qCGDRoELdr1y5fg7epqake78vIyOD09HRvhsYdO3bkzZs3e/WcdkhLS+Pw8HD+9ddf+dq1axwVFeU28R06dIi3bdvGw4YNy5Egsq/UtkNBE4Sd01wnA+iVrbXyADPHMHMMgNkAchst6uw61m3fmPKNo0eBfv2AGjWAH38E8lhU6hgVKwL//a90O91/vxQEVDl5qsV0+PDhzHn02escZXX48GFERERg+PDhiIyMxLFjx/Duu+8iLi4OUVFReO211wAAly9fRp8+fRAdHY3IyMjM9ROdOnVCfHw80tPT8fDDD2fWM3r//fcxa9YsxMfHY+jQoYiJicHVq1fxxhtvIC4uDpGRkRg5cqT1gRKdOnXCyy+/jJYtW6JBgwaZaznS09Px5z//GZGRkYiKispc95CQkICOHTuiRYsW6NmzJ06ePFmk3+OmTZtQr149hIeHo2TJkhg8eDC+++67HMfVrl0bUVFRKFbMP1YY2DYGwcyriKi2u/tIJiIPAtDFrudXRXf5slRiTUkBVq4EfDy1u8hq1wa+/FIK/L34IvDJJ6Yjcp7vvvsOvXr1QoMGDVC1alUkJCRkltrIasuWLdi+fXtmKYus9u/fjylTpqB169ZYvHgx9u/fj02bNoGZ0b9/f6xatQpJSUm444478P333wMALly4cNM5tm7disTEROzcuRMA8Pvvv6Ny5cr46KOPMH78eMTGyufE5557DmPHjgUADBs2DAsWLEC/fv0ASBXXTZs2YeHChXj99dexdOlSfPrppzh8+DC2bt2KkJAQnDt3DqmpqRg1ahS+++47VK9eHTNmzMDf/vY3TJw48aaYpk6dmrmqPKt69eph1qxZN92WmJiImjVrZl4PCwvDxo0bc//lZ5OSkoLY2FiEhIRgzJgxGDBgQIEebwdTg9TtAZxi5v0e7mcAi4mIAfyHmXMWe3EhopEARgKygEZ5R0aGlLLYvl1mK2Wb+OA3+vWTmU3vvAN06gQ88IDpiJwlt1pMWWWtc5TdnXfeidatWwMAFi9ejMWLF6NZs2YApIWyf/9+tG/fHi+99BJefvll9O3bF+3bt7/pHOHh4Th48CBGjRqFPn36eKxUumLFCrzzzju4cuUKzp07hyZNmmQmiHvvvRcA0KJFi8yV3kuXLsVTTz2FENcKzipVqmDnzp3YuXMnunfvDkBaGbfffnuO5xo6dGiORXF2OnLkCEJDQ3Hw4EF06dIFTZs2Rd26dX32/O6YShBDAORWfL4dMycS0a0AlhDRL8y8yt2BruTxKSDTXL0fanB6802ZtfTPfwK9e5uOpmj+8Q9g1Srg6aeB9u2BO+4wHZEz5FWLKavc6hxlvY+Z8corr7hdG7FlyxYsXLgQr776Krp27ZrZEgCkIN62bdvw448/YsKECZg5c2aOT/QpKSl45plnEB8fj5o1a2LcuHE37bFsrcLOq24UM6NJkyZYn8cGIwVpQYSGhuLYsWOZ148fP55ZGym/rOPDw8PRqVMn/Pzzz8YThM87wogoBMC9kAFrt5g50XV5GsBcAPkvbKKKbMUKqcY6dKh0zfi7EiVk/UZKCvD441qzyVKYWkx56dmzJyZOnIjk5GQA0vVy+vRpnDhxAmXLlsVDDz2E0aNHY8uWLTc97syZM8jIyMDAgQPxj3/8I/P+ChUq4NKlSwCQmQyqVauG5OTkHG/S7nTv3h3/+c9/MhPGuXPnEBERgaSkpMwEkZqail1uNhkZOnSo2xpJ7p43Li4O+/fvx6FDh3D9+nV888036N+/f35/bTh//jyuXbuW+btYu3YtGjdunO/H28XESEk3AL8w83F3dxJROSKqYH0PoAeAnT6ML6idOiXbftavD0yYEDirkRs0kLURixYBX3xhOhpnKEwtprz06NEDDz74INq0aYOmTZvivvvuw6VLl7Bjxw60bNkSMTExeP311/Hqq6/e9LjExER06tQJMTExeOihh/DWW28BuLFBUExMDEqVKoUnnngCkZGR6NmzJ+Li4vKM5/HHH0etWrUyayVNmzYNJUuWxKxZs/Dyyy8jOjoaMTExRd4dLiQkBB999BF69uyJRo0aYdCgQWjSpAkAYOzYsZg/fz4AYPPmzQgLC8O3336LJ598MvOYPXv2IDY2FtHR0ejcuTPGjBnjiARh20pqIpoOoBOAagBOAXiNmb8goskANjDzhCzH3gHgc2a+i4jCIa0GQLrApjHz/+TnOXUlddGkp8ue0WvWAJs2AU2bmo7IuzIyZIe7+HjZ2a6APQBe525Vq1J2csxKamYe4uH2h93cdgLAXa7vDwKItisu5dm77wJLlwKffx54yQGQmk2ffSbbmr74IjBzpumIlHI2/5iMq2y3bZvs53DffVJOI1DVrQu8+qrsRLdokelolHI2TRAK164Bw4dLVdZPPgmccQdP/vxnoGFD4NlnZXtUk+zq4lUqu8L8rWmCUBg3TtY7fP65bOkZ6EqVkkR46JCsjzCldOnSOHv2rCYJZTtmxtmzZwu8vaqW+w5yGzZI6e5HH5X++WBy//3AwoXA/v1m1kakpqbi+PHjN83lV8oupUuXRlhYGEqUKHHT7bkNUmuCCGLXrwMtWgAXLgC7dgEVKpiOyLd+/VVWiA8bplNfVfDKLUFoF1MQGz8e2LkT+Pe/gy85ADJgPWoUMGmSDNIrpW6mCSJI7d8PvPGGzFpylbIJSq++KhVq//xnXWGtVHaaIIIQM/DUU0Dp0sAHH5iOxqxbbpHpvUuXypdS6gZNEEFo2jRg+XLZs9lNEcug89RTQFiY1J/SVoRSN2iCCDKXLgGjRwNxccDIkaajcYZSpaSraf162RRJKSU0QQSZN98ETp6UriU/2dTKJx55RDYYGjtWWxFKWfQtIogcOAC8956smnbt76JcSpYE/v53YPNmwLXpmVJBTxNEEHnpJXkjfPtt05E407BhMvVVxyKUEpoggsTixcD8+dLXrgPT7pUoAfz1r8CWLcCSJaajUco8XUkdBNLSgOhoWTm9c6cMyir3rl0DwsOlmN+yZaajUcp+upI6yH35JbB7t3QtaXLIXalSslfE8uWysZBSwUwTRIC7elVm5rRqBdx7r+lo/MPIkUClSrJFqVLBzLYEQUQTieg0Ee3Mcts4Ikokoq2ur7s8PLYXEe0logNENMauGIPBhx8CiYnyZhfo+zx4S8WKwDPPALNnS0kSpYKVnS2IyQB6ubn9fWaOcX0tzH4nERUH8G8AvQE0BjCEiMzv3u2Hzp0D3noL6NMH6NjRdDT+5YUXZMbXP/9pOhKlzLEtQTDzKgDnCvHQlgAOMPNBZr4O4BsAd3s1uCDx9ttSyvutt0xH4n9q1ACGDpXxm/PnTUejlBkmxiCeI6Ltri6oW9zcHwrgWJbrx123uUVEI4konojik5KSvB2r3zp2TFZLDxsGNG1qOhr/NGqUjOHoXhEqWPk6QXwCoC6AGAAnARS5Ac/MnzJzLDPHVq9evainCxhvvglkZEhJb1U4MTFAhw6yX0Z6uulolPI9nyYIZj7FzOnMnAHgM0h3UnaJAGpmuR7muk3l09Gj8qn38ceBO+80HY1/e/554PBhYMEC05Eo5Xs+TRBElHUN7z0Adro5bDOA+kRUh4hKAhgMYL4v4gsU1pjDK6+YjSMQ3H03ULOm7puhgpOd01ynA1gPIIKIjhPRYwDeIaIdRLQdQGcAL7qOvYOIFgIAM6cBeA7AjwD2AJjJzLvsijPQHDlyo/VQs2bex6vchYTIlNfly2XfbqWCiZbaCDBPPQVMnAj8+qsmCG85cwYIDZXf7f/9n+lolPIuLbURJI4ckeSgrQfvqlZNVqF/9RWQkmI6GqV8RxNEAHnrLVktrWMP3vfEE7IeYvZs05Eo5TuaIAJEYqK0Hh57TFsPdujUSfaK+Owz05Eo5TuaIALE++/LuofRo01HEpiKFZOuu59+AvbtMx2NUr6hCSIAnDsH/Oc/wODBQJ06pqMJXA8/DBQvDnz+uelIlPINTRAB4OOPgeRk4OWXTUcS2G67DejXD5g8WTZfUirQaYLwc1euyNTLPn205pIvPPEEkJQE/Pe/piNRyn6aIPzcpEkyT19bD77Rs6fs6f3ll6YjUcp+miD8WGoq8O67QNu2QLt2pqMJDsWLAw8+CCxcKIlZqUCmCcKPzZwpi+PGjNHd4nxp+HAgLQ2YMcN0JErZS0tt+ClmoEULWdm7c6dMw1S+Ex0NlCkDbNhgOhL/kZwMTJ8OLF0qFXKJgAYNZOC/f3+gVCnTEQYnLbURgNasAX7+GfjjHzU5mDBsGLBxo66JyI+0NFmnExYGjBwJrFsHVK4MlC8P/PgjMGgQEBGhq9SdSN9a/NS//gVUqQI89JDpSILTgw9KYv7qK9OROFtSEtCtG/CnPwFt2gDr18t+JT/+KC2JEydkPKdyZeC++4Bnn5WEopxBE4QfOnQImDcPePJJoGxZ09EEpzvukDe+r7+WFewqp2PHgNatpRtu8mRJBK1b3zxeVrw40Ls3sHkz8NJLsqZnyBCZgKHM0wThhz76SD69PvOM6UiC27Bh0pe+dq3pSJznt9+Arl1lptfKlcCIEblPpChRAhg/HnjvPWDWLODpp2WcTZmlCcLPXLokpR7uv1/6dJU5AwbIQLXOZrpZSooMOp84ASxaJK2G/HrxReBvf5NNr3TvDfM0QfiZSZOAixdlcFqZVb480LevfOJNTzcdjTMwA889J11GX38ta3QK6o03JPmOHi0TMZQ5dm45OpGIThPRziy3vUtEvxDRdiKaS0SVPTz2sGtr0q1EFBzzVvMhPV32Rm7TBmjZ0nQ0CpAZOKdOAatWmY7EGWbMkE//f/2rvMkXRrFico7q1WUShm7SZI6dLYjJAHplu20JgEhmjgKwD0BuW9t0ZuYYT/Nzg9H338tWotp6cI677pKJAjNnmo7EvN9+k1lIrVoBr79etHNVqSKt5d27gXfe8U58quBsSxDMvArAuWy3LWZmaxLbBgDai14AH3wg4w733ms6EmUpW1YWes2erdMzn30WuHxZZiyFhBT9fD17yljbW29JxQDleybHIB4FsMjDfQxgMRElENHI3E5CRCOJKJ6I4pOSkrwepFPs3QssWwY89ZR3/vmU9wwaJPP9V640HYk5S5YAc+YAr70GNGzovfOOHy+zn7QYpRlGEgQR/Q1AGoCpHg5px8zNAfQG8CwRdfB0Lmb+lJljmTm2evXqNkTrDBMmSGJ47DHTkajseveWAetg7WZKS5Nuz/BwWRDnTbVqyTlnzAB27PDuuVXefJ4giOhhAH0BDGUPhaCYOdF1eRrAXABBPSR75Yo02++9VzatUc5SpoxM65wzJzgXeE2YIGMF//ynPfWU/vQnoGLFoo9rqILzaYIgol4A/gKgPzNf8XBMOSKqYH0PoAeAne6ODRYzZgC//y6Lh5QzDRoEnD0LrFhhOhLfunxZpqV27gzcfbc9z1GlirRQZs8Gtm2z5zmUe3ZOc50OYD2ACCI6TkSPAfgIQAUAS1xTWCe4jr2DiBa6HloDwBoi2gZgE4DvmfkHu+L0B598AjRqBHTsaDoS5UnPnkC5csDcuaYj8a1PPpHxl3/8w96S8y++KN14//ynfc+hctJy3w6XkADExsqq0uefNx2Nys3990vZjePHg6PC7uXLQJ06QLNmUnzPbi+8IAnpyBHZ1U95h5b79mOffCJTKYcPNx2JysuAAcDJk8CmTaYj8Y2PP5bWw7hxvnm+55+XAfGPP/bN8ylNEI72++/AtGlS3bJyZdPRqLzcdZfMNJs3z3Qk9rt+XfZ46NZNVvb7Qt26Mhngk090dbWvaIJwsC+/BK5e1cFpf3HLLTJYGwwJYuZMaS15e1prXp59ViYDfPedb583WGmCcChmmT4YFydbiyr/MGCALGrcs8d0JPZhltZDw4YyOO9LXbvK2oiJE337vMFKE4RDrV8vbzJPPmk6ElUQ1lTPQG5FrFkDbNliZrvbYsWARx6RldtafsN+miAc6osvZNrkoEGmI1EFERoqlXYDOUG8/z5QtapsmGTCww/L5ZQpZp4/mGiCcKDkZFkc98ADQIUKpqNRBTVggMxkSkw0HYn3JSZK///Ikea2u61dW7qaJk3SXefspgnCgWbOlDnmWnfJP1ndTAsWmI3DDpMmyR7cjz9uNo6hQ2W7182bzcYR6DRBONAXX8gAoK+mDyrvatRIPuV+/73pSLwrI0P+Nrt2lcJ8Jg0YAJQsqdu92k0ThMPs2QOsWwc8+qi9pQuUfYiAPn2kPHsgzddfvlw+tZtuPQCyLqhnT2ltZ2SYjiZwaYJwmEmTZLGVrpz2b336SBXen34yHYn3fPaZFM4r7Fai3jZokJQ12bDBdCSBSxOEg6SmysyMvn2BGjVMR6OKolMnKQMeKN1MZ85IIcJhw4DSpU1HI/r3l/Li2s1kH00QDvL998Dp0zo4HQjKlAG6dJHXNBBm2nz7rXyAeeQR05HcULGidDPNnRsYv2Mn0gThIBMnSpXKXr1MR6K8oU8f4OBBYN8+05EU3dSpQJMmQFSU6Uhu1q8fcOyY7jZnF00QDnHyJLBwITBihO45HSj69JFLf+9mOnxYypg/+KDzJk5Yv+P//tdsHIFKE4RDTJsGpKc7qwmviqZWLSAy0v8TxDffyOWQIWbjcOf226VemSYIe2iCcIgvvwRatQIaNDAdifKmu+4CVq8GLl40HUnhTZsGtG0rmwM5Ub9+snL91CnTkQQeWxMEEU0kotNEtDPLbVWIaAkR7Xdd3uLhsSNcx+wnohF2xmna9u3yZaq2jbJPnz4yuLt0qelICmfHDvl68EHTkXjWr58MUvt7S82J7G5BTAaQfch1DIBlzFwfwDLX9ZsQURUArwFoBaAlgNc8JZJA8NVXMu7wwAOmI1He1rYtUKkSsGiR6UgKZ8YMoHhx2U7VqaKjgZo1tZvJDrYmCGZeBeBctpvvBmDVYZwCYICbh/YEsISZzzHzeQBLkDPRBIT0dJkh0qcPUK2a6WiUt4WESGmKJUv8cyrmnDlAx47ArbeajsQzIqB3b1npnZZmOhrPmOX3OWCATIF+4w3ndz2aGIOowcwnXd//BsDdkrBQAMeyXD/uui0HIhpJRPFEFJ+UlOTdSH1g2TKZwaTdS4Gre3fZu2D/ftORFMwvv0jpl3vuMR1J3rp3lzdbp+4HnpYmMxQHDgS2bpVinOPGATExwIEDhoPLhdFBamZmAEX6XMXMnzJzLDPHVq9e3UuR+c5XX0ldmb59TUei7NKjh1wuXmw2joKaO1cunVJaIzedO0tLwqljPU8/Lf/r48YBv/4KbNwoGy9dvCitnwsXTEfonokEcYqIbgcA1+VpN8ckAqiZ5XqY67aAkpwsTc5Bg6RkgApM4eHytWSJ6UgKZs4c2fwoLMx0JHmrWlW25nXi73j6dODzz4FXXgFee03GdAAZn5o3T9aZjBplMkLPTCSI+QCsWUkjALjbfvxHAD2I6BbX4HQP120BZc4cKeimhfkCX48ewIoVMqPJHxw9CsTHA/feazqS/OvWTQr3XbpkOpIbLl6UrVlbtZIxh+zatQNefllaF6tX+zy8POWZIIhoVGFnEBHRdADrAUQQ0XEiegzA2wC6E9F+AN1c10FEsUT0OQAw8zkA/w/AZtfXG67bAspXX8kny7ZtTUei7Najh7xxbdxoOpL8sbZM9YfxB0v37tLX76QKum++KfXVPvzQc4WEv/4VuOMO4O9/921s+ZGfFkQNAJuJaCYR9SLK/2J7Zh7CzLczcwlmDmPmL5j5LDN3Zeb6zNzNeuNn5nhmfjzLYycycz3X16SC/2jOlpgoA9QPPeS88gXK+zp3BooV859xiLlzpfaSPy3cbNtWiiQ6pZvp7FlJDEOHympvT8qWBUaPlsS2bp3v4suPPBMEM78KoD6ALwA8DGA/Eb1JRHVtji2gTZsm094eesh0JMoXKleWbgZ/SBBnzwKrVvlX6wGQMuTt28sHLyeYMEG6kF95Je9jn3hC9tp4/3374yqIfI1BuGYb/eb6SgNwC4BZRPSOjbEFtGnTZACwfn3TkShf6d5d9lA+f950JLn74QfZpa1/f9ORFFzHjsCuXZLkTEpJkdZDr17SEstLuXIyFvndd7L3hlPkZwziBSJKAPAOgLUAmjLz0wBaABhoc3wB6ZdfZC60E4ufKfv06CFvvMuXm44kdwsXAtWry6wgf9Ohg1yuWWM2jrlzpTbUiy/m/zGPPiqTGL7+2r64Cio/LYgqAO5l5p7M/C0zpwIAM2cA0Nn7hfDNNzLuMGiQ6UiUL7VsCVSo4OxupvR0aUH07i1jJv4mLk6mjK9aZTaOKVOkmm+3bvl/TNOmQGysPNYp8jMG8RozH/Fw3x7vhxTYmCVBdOwoMxdU8ChRQgarndJH7s6mTcC5c1KF1h+VKiVjPSYTRGKiDJQPG1bwJDt4sPQuHDpkS2gF5oefEfzb1q3A3r3avRSsOneWlbTHjuV9rAkLF8qbmrX62x916ABs2WJuPcTUqdKVOKIQNaitiQHWKnbTNEH42DffyHzogTp6E5Q6d5bLFSvMxuHJwoUyXfQWP66d3KGDvEGvX2/m+WfNkq6uwkxACQ+X+kxz5ng9rELRBOFDGRmSIHr0kNIAKvg0bSqvvRMTxMmT8snb2sbTX7VpI+UsTHQzHT8uM9WKMkV4wABZD+GE2UyaIHxowwYpYTB4sOlIlCnFisn4kxMThLVnhb+OP1jKlweaNzeTIObPl8uiFDjs2VPGKp0w200ThA99840s5rn7btORKJM6d5by304ZiLQsXAiEhkorx9+1bSu1pHxd+2ruXCAiAmjUqPDniI2VTaacsCJcE4SPpKUBM2dK871iRdPRKJOcOA6Rni6zq3r0CIzSL61bA1evynapvvL778DKlUUvjx4SIn8jTthkShOEj/z0kyyc0dlLqnFj2aHNSQliyxZ5g+ve3XQk3tG6tVxu2OC751y2TD4IemNvF2uTKdObCWmC8JHp06Vv1N/7d1XREQGdOkmCMP0J0WJttNOli9k4vOXOO4EaNXxbPXfpUlkI2apV0c9lLbAz/SFCE4QPpKbe2Iu2TBnT0Sgn6NxZFlSZ/oRoWboUiIqSN9VAQCStCF+2IJYskcRfokTRz1W/vpQ7MV3dVROEDyxfLgXatLSGsjhpHOLKFaldVJCyEP6gdWtg3z7fFO47dEgWQHrrd0gkA+2aIILAt99K0zNQ+ndV0TVoANx+uzMSxNq1wPXrgff3aY1DbNpk/3NZXXTe/B22bQvs3y8bDpmiCcJmqaky9a1fP5niqhQgnxA7d3bGOMTSpdIt0r692Ti8LTZW1p34Yhxi6VKZItywoffO+Yc/yKWpFeGAgQRBRBFEtDXL10Ui+mO2YzoR0YUsx4z1dZze8tNPUvzsvvtMR6KcpmNHmdlmehxi6VL5tFqunNk4vK18eVnTYfc4hLWorWtX704RbtFCEvfatd47Z0H5PEEw815mjmHmGMieElcAuCtNtdo6jpndbPftH2bNkn+8Xr1MR6Kcpl07uTS5Wf2ZM8DPPwfe+IOldWtpQdjZStu7V36PHTt697ylS0uSMDkOYbqLqSuAXz2VE/d36ekye6lvX529pHJq1EjqMplMEFYXV6AmiNhYWd9x8KB9z2FtTmR1CXlTy5aSwNPTvX/u/DCdIAYDmO7hvjZEtI2IFhGRx037iGgkEcUTUXxSUpI9URbS6tVAUpJ2Lyn3iKQVYXL3sxUrpCsmNtZcDHaydsVLSLDvOdauBapVk4kH3ta8ucwy27fP++fOD2MJgohKAugP4Fs3d28BcCczRwP4EMA8T+dh5k+ZOZaZY6tXr25LrIU1a5a0HHr3Nh2Jcqr27WUM4rffzDz/qlXyyTckxMzz261JE6BkSXsTxJo18ju0o0SJLxJcbky2IHoD2MLMp7LfwcwXmTnZ9f1CACWIqJqvAyyK9HRg9mxZOR1og3/Ke0yOQ5w5A+za5f2+cycpWVIGqrdssef81iQDO7qXAJkVVaaMffHnxWSCGAIP3UtEdBuR5GMiagmJ0wfLXbxn3Tr5VKjdSyo3zZsDZcuaSRBWOexAThCAfApPSLBnoNqaYWQlem8LCQGio4MsQRBROQDdAczJcttTRPSU6+p9AHYS0TYAHwAYzGx6tnjBzJol++P6++Yryl4lSshMGxPjED/9JJ9OA3X8wdK8uVQyOHzY++deu1b+z5s39/65Lc2bS4LIyLDvOTwxkiCY+TIzV2XmC1lum8DME1zff8TMTZg5mplbM7PhBecFk5Eh3Uu9eskKaqVy0749sG0bcPGib5931SrZfa1kSd8+r69Z/fh2fApft04SbKlS3j+3pUUL2V/bxHoZ07OYAtLGjVKI7f77TUei/EH79vKhwpfz3c+fl6QU6N1LgIxBhIR4f6A3NRXYulWmotopJkYufbm3hUUThA3mzpWuA2/UhVeBr1Ur2UPZl+MQa9ZIn3wwJIhSpYDISO8niN27gZQU+7voGjWSGVI7d9r7PO5ogvAyZkkQXbrItoFK5cXaQ9mX4xA//SRdS97Yu8Af2DFQHR8vl3YniDJlgHr1NEEEhD17pK+wqNsOquDSvr10TV675pvnW7VKkkOwFJBs0ULKfh875r1zbt4sHwLr1fPeOT2JjNQEERDmzZPL/v2NhqH8TPv2khysT6V2unRJBmyDoXvJEh0tl9u3e++c8fGSeIr54F00MlJKf6ek2P9cWWmC8LK5c+WT2R13mI5E+RNrHr0vupnWrpWFnMGUICIj5dJbCeLaNTmXr6YIR0bKa7Z3r2+ez6IJwouOHZNPFdq9pAqqWjXpqvDFFpmrV8ugeJs29j+XU1SsCNSp470EsWOHzGLyZYIAfN/NpAnCi+bPl0tNEKow2rSRzWHsXhK6bh3QrFnwlYCJivJegti8WS59lSDq15eZkZog/Ni8eUBEhHd3lVLBo00bqe1jx4pfS2qqbMHZtq19z+FUUVHSReONfvz4eCnVXrt20c+VHyVKyPuKr9dCaILwkvPngZUrtfWgCs/q8rFzi8nt26V8dLAmiIwMWb9QVFu2yNRkOyq4etK4MfDLL757PkAThNcsXAikpWmCUIUXGSndPnaOQ1irtYM1QQBF72ZKTZUkY82M8pUGDYBDh3w3FRrQBOE18+YBt99u/7J7FbhCQoC4OHtbEOvWAWFhQM2a9j2HU9WtK4vOtm0r2nn27gWuX/d9goiIkBaQnbvjZacJwgtSUoBFi4C77/bNnGgVuNq0kfo+V6/ac/5164Kz9QDIzK3IyKK3IKzHWy0SX7F2rPPlVFd9O/OCZcuAy5e1e0kVXZs20lVpx4K548eBo0eDN0EA8qa+bVvRZopt335j0NiXrAThy+1HNUF4wbx5Ms+6c2fTkSh/Z9VGsqObyTpnsCeIs2eLtsXrtm1SQM/XZdIrVQJq1NAE4VfS02X9w113BX5dfWW/W2+VvnI7BqrXr5c+eKt8dDDyxkD19u2+H3+wNGigXUx+ZcMG4PRp7V5S3mPXgrl162QQvEQJ757XnxQ1QZw5A5w44fvxB0tERJC0IIjoMBHtIKKtRJSjx5XEB0R0gIi2E5GNm/oV3vz58g/Xq5fpSFSgaNNGukCOHPHeOa9elbn7wdy9BABVqgC33Vb4tRBWYjHZgjh9Gvj9d988n+kWRGdmjmFmdwvWewOo7/oaCeATn0aWTwsWSNEz3ftBeUvr1nLpzXGIhASZvx/sCQKQBWeFTRDWFFlTLQhfD1SbThC5uRvAlyw2AKhMRLebDiqrgwflD013jlPeFBUFlC3r3QRhLZALpgJ9nlgJojBdeNu3y0BxjRrejys/IiLkMhgSBANYTEQJRDTSzf2hALJu73HcddtNiGgkEcUTUXxSUpJNobq3YIFcaoJQ3mTHgrmNG2Xwu1o1753TXzVuDCQny7TfgtqxQ/a4NiU8XNZaBUOCaMfMzSFdSc8SUYfCnISZP2XmWGaOrV69uncjzMOCBTIXum5dnz6tCgKtWkl3hrfKKmzaFDzbi+alcWO5LGg3U0aG7Bhpld42oWRJWQl/6JBvns9YgmDmRNflaQBzAWQvUpEIIGtBgDDXbY5w6ZIU5+vXz3QkKhDFxcmYgTfKU584IZ+WtQyMaNJELguaII4elUKHjRp5P6aCCA/3XbkNIwmCiMoRUQXrewA9AGSvdD4fwHDXbKbWAC4w80kfh+rRkiXyD6zdS8oOcXFyuWlT0c9l7V2gCUJUqwZUr17wBGEdb7VATAkP910LIsQ3T5NDDQBzSWrlhgCYxsw/ENFTAMDMEwAsBHAXgAMArgB4xFCsbv33v0DlyjorRNmjVi15E7Pe3Iti0yYZ1wjmBXLZFWYm0549cumEFsTJk9KaKVvW3ucykiCY+SCAHDOJXYnB+p4BPOvLuPIrIwP4/nugd2/5x1PK24jkE7+3EkRUlKyiVqJxY2D6dJnJlN89HXbvltlLVavaG1te6tSRy8OH7W/NOHmaq2Nt3gwkJen4g7JXXJx8ar10qfDnyMiQv1ery0qJxo1lsVlBajLt3m2+9QBICwLwTTeTJohCWLBASgf37Gk6EhXI4uLkE+6WLYU/x/79wIULOv6QXUFnMjHLsabHH4AbCcIXA9WaIAphwQLgD3+QZftK2cUbA9XWYzVB3KygCeLkSeDiRWckiOrVZedBTRAOdOyYbOiis5eU3apXB2rXLto4xKZN8mbihK4RJ6lRA7jllvwnCKfMYAJkzKROHU0QjvT993Kp4w/KF+Liip4gYmOlS1TdQFSwmUzWcU5JtL6a6qoJooAWLJCV01ZNFKXsFBcns1UKU0Xm2jVp7Wr3knsREfnfW2HPHmlxmKrBlJ21WM7bJeGz0wRRAFeuyPaiffvmf2qcUkVhvbkXphWxfTtw/bomCE8iIoBTp2QQPy/WALVT/u/r1JFtju0uP6cJogCWLQNSUnT8QflO8+byplSYBKED1LmzSmfv35/3sU6ZwWTx1UwmTRAF8P33QPnyQIdClRVUquAqVJB+78ImiFtvBWrWzPvYYGQliLy6mc6elZ3kGja0P6b8uvNOuTx61N7n0QSRT8zADz8A3brp3tPKt6wV1QXtb05IkAFqp3SLOE3duvkrnW3d76Rxx1q15FIThEP88otsAdm7t+lIVLCJi5NtJgvyZnDligystmhhX1z+rlQpmUacVwvCShBWi8MJKlUCKlbUBOEYixbJpe49rXwt1rUhb0FWVG/fLmU2mjtyJ3fniIjIuwWxf79ME65d2ych5VutWpogHGPRIhmkspp2SvlK06byBlWQBJGQIJfagshdgwaSIHLrvtu3TwaFS5TwXVz5UauWLNy1kyaIfEhOBlat0u4lZUaZMvLhpCAJYssW2fcgLMy+uAJBRIRMFz1xwvMx+/YB9ev7Lqb80haEQ6xcKfPJNUEoU5o3L3iCsKbIKs/ymsnELF1MThp/sNSqJbOrrlyx7zk0QeTDokVSz6ZdO9ORqGDVvLmUpj6Zjz0VU1KAnTu1eyk/rDd+T+MQJ07IG7BTEwRgbzeTJog8MEuC6NJFZj0oZYI12JyfVsTOnUBamg5Q50doqOzK5qkFYSUOp3YxAfZ2M/k8QRBRTSJaQUS7iWgXEb3g5phORHSBiLa6vsb6Ok7Lvn1SFEu7l5RJ0dHSXZSfBGEdowkib8WKyZu/pxaEtcrayS0IOxOEiQ0z0wC8xMxbiKgCgAQiWsLM2esqrmZm40UtfvhBLnV6qzKpQgV5k8pPgkhIkP3Sra0pVe4iIjz/XvftA0qXduZg/x13SIILqBYEM59k5i2u7y8B2AMg1Ndx5NeiRfIHpP9syrT8DlTrAHXBNGggvQTXr+e8b98+oF49eSN2mhIlJEkEVILIiohqA2gGYKObu9sQ0TYiWkRETXI5x0giiiei+CQvlza8ckVmMGn3knKC5s3lzeDsWc/HpKbKIjkdoM6/iAggPR349dec9zl1BpOlZs0ATRBEVB7AbAB/ZOaL2e7eAuBOZo4G8CGAeZ7Ow8yfMnMsM8dWr17dqzGuXCk19TVBKCewxhR+/tnzMbt2ySdhHX/Iv3r15DJ7gkhLk9ucnCDsXixnJEEQUQlIcpjKzHOy38/MF5k52fX9QgAliKiaj8PEDz/IIiWt3qqcICZGLnPrZtIB6oKrW1cuDxy4+fYjR6RF5sQZTBZrsZxdGweZmMVEAL4AsIeZ3/NwzG2u40BELSFx5tKwtseiRUDnzjJIpZRpVapIPaC8EkSFCjc+Fau8Vasmhe+ytyCcPIPJEhYmvRy5dTsWhYlZTH8AMAzADiLa6rrtrwBqAQAzTwBwH4CniSgNwFUAg5nt3lzvZgcOyNcLOSbhKmVOXgPVCQlAs2bOHFR1KiJpRWRPEE6s4ppdqGt6z/Hjkui8zecJgpnXAMh1fgUzfwTgI99E5J5VvVXHH5STNG8OzJkDXLwon3qzSksDtm0DnnzSTGz+rG5d+d1ltX+/tMa8PLTpVdb028TEG12Q3qSfMzz44Qdpplv9k0o5gTW2sHVrzvv27gWuXtXxh8KoVw84fFhmM1kOHpT/fydPF87agrCDJgg3rl2TGUw9e5qORKmb5VZyw/oEbMcnyUBXt64MSGedEXTw4I29n53qttukOzEx0Z7za4JwY/16WQPRo4fpSJS6WY0asjjKU4IoWdJZeyf7C6unwBqHyMiQxXNO70EICZEkoS0IH1q8WDZo6dTJdCRK5eRpoHrbNtk3wmkb2/gDa9aXNdX15EnpSXB6CwKQcQhtQfjQkiVAmzY5BwGVcoKYGNkjPSXl5tu3bZOifqrgQkOlWrPVgjh4UC79IUGEhmoLwmfOnJGpgtq9pJwqOloGU3ftunHbqVOyX4SOPxROsWJSb81KENalPySIsDDg3Dl7zq0JIptly2RVYvfupiNRyj2rlZB1Wqb1vbYgCq9evRtdTAcPStLwhz3ox4/PfcvUotAEkc2SJVIqOTbWdCRKuVe3ruxwqAnCu6zFcsySIGrVkkF/pytZ0r6puJogsmCWAeouXWR2gFJOVKwY0LRpzgQRFiblOFTh1K0LXL4MnD7tH1NcfUETRBZ798o8aB1/UE4XHS1JwSpAowPURZe1qqsmCKEJIoslS+RSE4Ryuuho4PffpZLntWsyq0kTRNFYax62bZNBf00QZor1OdbixfJHorvHKafLOlB97pzUYdIEUTS1a0v33dKlcl0ThCaITNevAytWAMOHm45Eqbw1bSqXVoIANEEUVcmSskPbsmVyXROEdjFl2rBBBqi0e0n5A2vPh23b5KtMGd0DwhvCw4ELF+R7p5fZ8AVNEC5WeY3OnU1HolT+WAPV27YBUVHy96uKxuperlQJuOUWs7E4gSYIl8WLgVat5A9DKX8QHS0Lu+LjtXvJW6wEER7u7DLfvqIJAtKHGx+vq6eVf7GSwqVLmiC8xRp30PEHYSRBEFEvItpLRAeIaIyb+0sR0QzX/RuJqLad8VjlNXT8QfmTrElBE4R3ZG1BKAMJgoiKA/g3gN4AGgMYQkSNsx32GIDzzFwPwPsA/tfOmJYskcqtLVva+SxKeVetWlIWBpAxCFV0ERFA2bK6K5/FxDTXlgAOMPNBACCibwDcDWB3lmPuBjDO9f0sAB8RETFb60a9R8trKH9FJC2H48dlVpMquipV5PdpJd5gZ+ItMRRAlo39cBxAK0/HMHMaEV0AUBXAmewnI6KRAEYCQK1ClF5MSQG6dZMEoZS/+eADIDnZdBSBRWcv3eD3n5mZ+VMAnwJAbGxsgVsYZcoAn3/u9bCU8gntWlJ2MjFInQigZpbrYa7b3B5DRCEAKgE465PolFJKATCTIDYDqE9EdYioJIDBAOZnO2Y+gBGu7+8DsNyO8QellFKe+byLyTWm8ByAHwEUBzCRmXcR0RsA4pl5PoAvAHxFRAcAnIMkEaWUUj5kZAyCmRcCWJjttrFZvk8BcL+v41JKKXWDrqRWSinlliYIpZRSbmmCUEop5ZYmCKWUUm5RIM0eJaIkAEcK+fBqcLNSO0AE8s8GBPbPpz+b//KXn+9OZq7u7o6AShBFQUTxzBxrOg47BPLPBgT2z6c/m/8KhJ9Pu5iUUkq5pQlCKaWUW5ogbvjUdAA2CuSfDQjsn09/Nv/l9z+fjkEopZRyS1sQSiml3NIEoZRSyq2gTxBE1IuI9hLRASIaYzqeoiKimkS0goh2E9EuInrBdXsVIlpCRPtdl367bxYRFSein4loget6HSLa6HoNZ7jKyPsdIqpMRLOI6Bci2kNEbQLsdXvR9Te5k4imE1Fpf37tiGgiEZ0mop1ZbnP7epH4wPVzbiciv9j1OqgTBBEVB/BvAL0BNAYwhIgam42qyNIAvMTMjQG0BvCs62caA2AZM9cHsMx13V+9AGBPluv/C+B9Zq4H4DyAx4xEVXT/B+AHZm4IIBryMwbE60ZEoQCeBxDLzJGQUv+D4d+v3WQAvbLd5un16g2gvutrJIBPfBRjkQR1ggDQEsABZj7IzNcBfAPgbsMxFQkzn2TmLa7vL0HeZEIhP9cU12FTAAwwEmAREVEYgD4APnddJwBdAMxyHeKXPxsRVQLQAbIXCpj5OjP/jgB53VxCAJRx7RJZFsBJ+PFrx8yrIPvVZOXp9bobwJcsNgCoTES3+yTQIgj2BBEK4FiW68ddtwUEIqoNoBmAjQBqMPNJ112/AahhKq4i+heAvwDIcF2vCuB3Zk5zXffX17AOgCQAk1zdZ58TUTkEyOvGzIkAxgM4CkkMFwAkIDBeu6w8vV5++V4T7AkiYBFReQCzAfyRmS9mvc+1favfzW8mor4ATjNzgulYbBACoDmAT5i5GYDLyNad5K+vGwC4+uLvhiTCOwCUQ87umYDiz6+XJdgTRCKAmlmuh7lu82tEVAKSHKYy8xzXzaesJq3r8rSp+IrgDwD6E9FhSHdgF0i/fWVXtwXgv6/hcQDHmXmj6/osSMIIhNcNALoBOMTMScycCmAO5PUMhNcuK0+vl1++1wR7gtgMoL5rJkVJyKDZfMMxFYmrT/4LAHuY+b0sd80HMML1/QgA3/k6tqJi5leYOYyZa0Neq+XMPBTACgD3uQ7z15/tNwDHiCjCdVNXALsRAK+by1EArYmorOtv1Pr5/P61y8bT6zUfwHDXbKbWAC5k6YpyrKBfSU1Ed0H6tYsDmMjM/2M2oqIhonYAVgPYgRv99H+FjEPMBFALUhJ9EDNnH2DzG0TUCcCfmbkvEYVDWhRVAPwM4CFmvmYwvEIhohjI4HtJAAcBPAL5EBcQrxsRvQ7gAchMu58BPA7ph/fL146IpgPoBCnrfQrAawDmwc3r5UqKH0G61a4AeISZ4w2EXSBBnyCUUkq5F+xdTEoppTzQBKGUUsotTRBKKaXc0gShlFLKLU0QSiml3NIEoZRSyi1NEEoppdzSBKGUTYgozlX7vzQRlXPthRBpOi6l8ksXyillIyL6B4DSAMpAai29ZTgkpfJNE4RSNnLV+NoMIAVAW2ZONxySUvmmXUxK2asqgPIAKkBaEkr5DW1BKGUjIpoPKUZXB8DtzPyc4ZCUyreQvA9RShUGEQ0HkMrM01z7n68joi7MvNx0bErlh7YglFJKuaVjEEoppdzSBKGUUsotTRBKKaXc0gShlFLKLU0QSiml3NIEoZRSyi1NEEoppdz6/0CLyawpG1nyAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# Helper function\n", "def dz_dt(z, t):\n", " x, y, vx, vy = z\n", " return np.array([vx, vy, -(k/m)*vx, -g - (k/m)*vy])\n", "\n", "# Basic parameters\n", "k = 0.15\n", "m = 1\n", "g = 9.8\n", "v = 30\n", "theta = 45\n", "x0 = 0\n", "y0 = 0\n", "vx0 = v*np.cos(np.radians(theta))\n", "vy0 = v*np.sin(np.radians(theta))\n", "\n", "# Setting time range\n", "h = 0.01\n", "tmin = 0\n", "tmax = 10\n", "t = np.arange(tmin, tmax, h)\n", "z = np.zeros([len(t), 4])\n", "z[0] = [x0, y0, vx0, vy0]\n", "\n", "# Main calculation\n", "for i in range(len(t) - 1):\n", " z[i+1] = z[i] + h*dz_dt(z[i],t[i])\n", " if z[i + 1, 1] < 0:\n", " z[i, 3] = - z[i, 3]\n", " z[i+1] = z[i] + h*dz_dt(z[i], t[i])\n", "\n", "# Unpacking the values and plotting graph\n", "x, y, vx, vy = z[:, 0], z[:, 1], z[:, 2], z[:, 3]\n", "\n", "plt.plot(x, y, color='blue', label='Angle of projection = '+str(theta)+'\\n'+'Air resistance = '+str(k))\n", "plt.legend()\n", "plt.xlabel('x')\n", "plt.ylabel('y')" ] }, { "cell_type": "markdown", "id": "81bf65e1", "metadata": {}, "source": [ "#### Application of second order differential equation\n", "\n", "##### Simple harmonic oscillator\n", "\n", "Consider a spring-mass system as a model of an ideal simple harmonic oscillator. Here, a mass ($m$) is attached at the end of a spring. The mass is pulled downward through a distance $x$. The restoring force acting on the spring is $kx$, where $k$ is the spring constant. The equation of motion of sprin-mass system without considering air resistance is given by\n", "\\begin{eqnarray}\n", "m\\frac{d^2x}{dt^2} &= -kx \\nonumber\\\\\n", "\\frac{d^2x}{dt^2} &= -\\omega^2x \\label{eq14} \n", "\\end{eqnarray} \n", "where $\\omega=\\sqrt{\\frac{k}{m}}$. The initial condition of the spring-mass system is the mass is pulled through a distance $x_0$ and then released. So the initial conditions can be written as\n", "\\begin{align}\n", "&x(t=0) = x_0 \\\\\n", "&v(t=0) = 0\n", "\\end{align}\n", "When solving differential equation numerically, we transform second order or any higher order differential equation into first order differential equation. This can be done through the distance, velocity and acceleration relationship. We can rewrite the equation (\\ref{eq14}) as follows -\n", "\\begin{eqnarray}\n", "\\frac{dx}{dt} &=& v\\\\\n", "\\frac{dv}{dt} &=& - \\omega^2 x\n", "\\end{eqnarray}\n", "To solve the equation by Euler's method, we write the following two simultaneous recursive relations - \n", "\\begin{eqnarray}\n", "x_{n+1} = x_n + \\left(\\frac{dx}{dt}\\right)\\Delta t \\label{eq15}\\\\\n", "v_{n+1} = v_n + \\left(\\frac{dv}{dt}\\right)\\Delta t \\label{eq16}\n", "\\end{eqnarray}\n", "The subscript $n$ refers to $n$ th time step. It is assumed that if the $n$ th. time step is known then $(n+1)$ th. time step can be obtained through the equations (\\ref{eq15} and \\ref{eq16}). The program code to implement the above idea is given below -" ] }, { "cell_type": "code", "execution_count": 35, "id": "cc76a94e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, '$x(t)$')" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# Helper functions\n", "\n", "def dx_dt(x, v, t):\n", " return v\n", "\n", "def dv_dt(x, v, t):\n", " return - omega**2*x\n", "\n", "def euler(x, v, t):\n", " x += dt*dx_dt(x, v, t)\n", " v += dt*dv_dt(x, v, t)\n", " return [x, v]\n", "\n", "\n", "\n", "def rk2(x, v, t):\n", " k1 = dt*dx_dt(x, v, t)\n", " k2 = dt*dx_dt(x+0.5*k1, v+0.5*k1, t+0.5*dt)\n", " l1 = dt*dv_dt(x, v, t)\n", " l2 = dt*dv_dt(x+0.5*l1, v+0.5*l1, t+0.5*dt)\n", " x += k2\n", " v += l2\n", " return [x, v]\n", "\n", "# Setting time range and arrays for displacement, velocity\n", "tmin = 0\n", "tmax = 10\n", "dt = 0.01\n", "t = np.arange(tmin, tmax, dt)\n", "x = np.zeros(len(t))\n", "v = np.copy(x)\n", "x[0] = 1 # initialising distance\n", "v[0] = 0 # initialising velocity\n", "omega = 2\n", "\n", "# Calculation of distance and velocity with the help of Euler's method\n", "for i in range(len(t)-1):\n", " x[i+1], v[i+1] = euler(x[i], v[i], t[i])\n", "\n", "# Setting arrays for displacement, velocity\n", "x1 = np.zeros(len(t))\n", "v1 = np.copy(x1)\n", "x1[0] = 1\n", "v1[0] = 0\n", "\n", "# Calculation of distance and velocity with the help of RK2 method\n", "for i in range(len(t)-1):\n", " x1[i+1], v1[i+1] = rk2(x1[i], v1[i], t[i])\n", "\n", "# Plotting graph\n", "plt.subplot(2,1,1)\n", "plt.plot(t, x, color='red', label = 'Euler method')\n", "plt.legend()\n", "plt.ylabel('$x(t)$')\n", "plt.subplot(2,1,2)\n", "plt.plot(t, x1, color='blue', label = 'RK2 method')\n", "plt.legend()\n", "plt.xlabel('$t$')\n", "plt.ylabel('$x(t)$')" ] }, { "cell_type": "markdown", "id": "348b401f", "metadata": {}, "source": [ "##### Damped simple harmonic oscillator\n", "\n", "If the oscillation is affected by air resistance, then we have to modify the equation (\\ref{eq14}). If the resistive force is proportional to velocity, then we can write the equation representing the oscillation under the influence of resistive force as \n", "\\begin{equation}\n", "m\\frac{d^2x}{dt^2} = - k x - bv \n", "\\end{equation}\n", "This equation after rearrangement can be written as\n", "\\begin{equation}\n", "\\frac{d^2x}{dt^2} + \\frac{b}{m}\\frac{dx}{dt} + \\frac{k}{m} x = 0 \n", "\\label{eq17}\n", "\\end{equation}\n", "The equation (\\ref{eq17}) represents a damped simple harmonic motion. There are three cases of damping depending on the values of b.\n", "\n", "* $\\sqrt{b^2 - 4mk} > 0$: Over damped oscillation,\n", "* $\\sqrt{b^2 - 4mk} = 0$: Critically damped oscillation,\n", "* $\\sqrt{b^2 - 4mk} < 0$: Under damped oscillation,\n", "\n", "The equation (\\ref{eq17}) can be solved numerically by Euler's method. The program code is given below. The output has been shown in figure (\\ref{fig:sho03}) for three different values of $b$ representing three cases of damping oscillation." ] }, { "cell_type": "code", "execution_count": 36, "id": "f22b3902", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARsAAAChCAYAAAD3CxuGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAdAUlEQVR4nO3deXxU9bn48c+TsKQQFGUrsm9B1oQl7LYW8CL9sYnswo8oinpRhLavq7hQrQoUvVUEb1EUERFBsEUUtYrRWyiLgBBUQLCgNixFViGyhOS5f3wnIYQEJsnMnMnM8369zmtmzjLnGYHHc77n+32+oqoYY0ywxXgdgDEmOliyMcaEhCUbY0xIWLIxxoSEJRtjTEiU8TqAYKhatarWr1/f6zCMiUqbNm06pKrV8q+PyGRTv359Nm7c6HUYxkQlEfmuoPUhuY0SkbkiclBEvixku4jIcyLyjYhsFZG2ebaNFpFdvmV0KOI1xgReqNps5gE3XmJ7b6CJbxkL/BlARK4Gfg90BDoAvxeRq4IaqTEmKEKSbFT178CRS+zSH5ivzjqgsojUBHoBH6nqEVU9CnzEpZOW386dg7Vr4aefAvFtxpjLCZc2m1rAv/J8TvetK2x9ie3aBV26QLVq8O670KFDIL7VFCYzM5P09HROnz7tdSgmQOLi4qhduzZly5b1a/9wSTYlJiJjcbdg1K1b97L7164Nb70Fv/sdDBgA27ZB5crBjTGapaenU6lSJerXr4+IeB2OKSFV5fDhw6Snp9OgQQO/jgmXfjZ7gTp5Ptf2rSts/UVU9UVVba+q7atVu+ip20UqVYKBA2HJEjhwAJ54ovjBm8s7ffo0VapUsUQTIUSEKlWqFOlKNVySzXLg//ueSnUCjqvqfuBvwH+IyFW+huH/8K0LmHbt4NZb4bnnYN++QH6zyc8STWQp6p9nqB59vwGsBZqKSLqIjBGRu0TkLt8u7wG7gW+AOcB/AqjqEeBxYINv+YNvXUA99BBkZcGzzwb6m40xOULSZqOqwy+zXYFxhWybC8wNRlw5GjaEwYNh9myXeK68MphnMyY6hcttlOd+8xs4cQJef93rSIyJTJZsfJKTISkJXngBrHhhdNm9ezciEhFLOLNk4yMCd90FW7fC+vVeR2NCadWqVWRmZqKqpX4JZ5Zs8hgxAuLj3dWNiR7nzp2jTJmI6XIWtizZ5FGpkks4ixfDsWNeR2NCISMjg/j4eK/DiAqWbPIZOxZOnbKG4miRmppK9+7dvQ4jKliyyaddO2jTBubMsYbiaHDw4EH86XG+bNky7rjjDoYOHcqHH34YgsgijyWbAtxxB6SlgdXfijxr1qzhxIkTuZ/zP8H59NNPGTVq1EXHDRgwgDlz5jB79mwWL15cohiysrJo06YNffr0KfKxH3/8cYHxBdIHH3xA06ZNady4MdOmTQvY91qyKcCIEVChgru6MZHj5MmTLFy4kL/9zY142bJlC0lJSRfsk5aWRps2bQr9jieeeIJx4wrsf+q3GTNm0KxZs2Ide7n4CnP06FG/9svKymLcuHG8//77bNu2jTfeeINt27YV+XwFsWRTgCuvhCFD4I034ORJr6MxgRIfH8/kyZN5//33Adi8eTNt27a9YJ8tW7awd+9eOnbsSMOGDfn0008BN8r5/vvvp3fv3hcdUxTp6emsWLGC22+//YL1gwcP5p577qFbt27Uq1eP1atXM2rUKBISEhgzZkzufjnJ5syZM6SkpPDggw/69ci7ffv23HLLLaSmpl5y/88++4zGjRvTsGFDypUrx7Bhw3j77beL/XvzsmRTiDvucIlm0SKvIzGBVL16dQ4dOkR2dnaB/+jS0tKoVKkS69evZ/bs2TzyyCMAzJw5k5UrV7J06VJmz55d7PNPmDCB6dOnExNz4T+9L774goYNG7J69WruvPNOxowZw/Tp09m2bRsrVqzgzJkzAGzdupXq1avTq1cvevbsyZQpU/zqzLdz506GDx/OrFmzaN68OVOmTGFfASOP9+7dS5065wst1K5dm717Cyy0UGTWuaAQnTtD8+buVirf/4RMKZecnMx77713UcNwZmYmhw4d4sEHHwQgKSmJQ4cOATB+/HjGjx9f6Hf27NmTAwcOXLT+ySefpH///gC8++67VK9enXbt2uVeMYErv3Hs2DEmTJgAuHakMWPGULNmTQBiY2MpV64cmZmZ7N69m+HDh/PCCy/QuXNnv39zbGwsffr0oU+fPvzwww9MmjSJunXrsmbNGjqEqHKcJZtCiLirm4kTXa/i1q29jsgESt++fRk5ciRr1669YP2OHTto3Lgx5cqVA+Dzzz8nMTHRr+9cuXLlZff5xz/+wfLly3nvvfc4ffo0P/74IyNHjmTixIm0bds292onLS2Nu+++G3C3Xddccw0iwvbt20lOTubIkSPExsYW5ScDcPz4cRYtWsS8efMoV64cc+fOpXW+v9i1atXiX/86XxwzPT2dWrUCUhzTks2ljBoF99/vrm5mzvQ6msgxYQJs2RLY70xK8r9ESGJiIh07dryoM9+WLVvYs2cPZ86cITMzk8cee4xnnnkmYDFOnTqVqVOnAu6p19NPP82CBQuYN2/eBUlt69atuUkgLS3tgvddunRh5MiR3HTTTaSmplKjRg2/zp2TXAcPHsz8+fNp0qRJgfslJyeza9cu9uzZQ61atVi0aBELFy4syc/OZW02l1ClCtx8MyxY4Dr6mchRULtLWloaAwcOpEuXLnTo0IHx48fTqVOnoMfyxRdf5D4VO336NKdOneKqq9wkIvkTT8uWLUlISOCPf/wjQ4YMITMz069zDBkyhK+//ppp06YVmmgAypQpw6xZs+jVqxfNmjVjyJAhtGjRomQ/0EfCffBWcbRv314DNUndJ59A9+4wf7670jHFs3379mI/7jXhq6A/VxHZpKrt8+9rVzaXcf310Lix9bkxpqRClmxE5EYR+do36+UDBWx/RkS2+JadInIsz7asPNuWhypmd273NGrVKtixI5RnNiayhKoGcSzwPG7my+bAcBFpnncfVZ2oqkmqmgTMBP6SZ/OpnG2q2i8UMeeVkgJlysBLL4X6zMZEjlBd2XQAvlHV3ap6FliEmwWzMMOBN0ISmR9q1IB+/eDVV8HXt8qUQunp6fTv358mTZrQqFEj7rvvPs6ePRv08z766KM8/fTTQT+PP7wspxGqZOP3zJYiUg9oAKTmWR0nIhtFZJ2IDAhalJcwdiwcOuQmtjOlj6oycOBABgwYwK5du9i5cycnT57koYceKvF3nzt3LgARRr5wbCAeBixV1aw86+r5WrdHAM+KSKP8B4nIWF9C2vjDDz8EPKgbboCEBNeXIwIf4EW81NRU4uLiuPXWWwHXo/aZZ55h7ty5/PTTT3Tq1Imvvvoqd//rr7+ejRs3kpGRwW233UaHDh1o06ZN7jihefPm0a9fP7p3706PHj0uOt+TTz5JQkIC3bp14+uvv85dP2fOHJKTk0lMTOTmm2/mJ99k8ykpKdx999106tQpd0zWbbfdRrNmzUhJSck9Pj4+nokTJ9KiRQt69OhBzt/1f/7zn9x44420a9eO6667jh2+BsY9e/bQuXNnWrVqxcMPPxzY/6hFFaK6qJ2Bv+X5PAmYVMi+m4Eul/iuecCgS52vXbt2GgyzZqmC6po1Qfn6iLZt2zZPzz9jxgydMGHCReuTkpI0LS1N//SnP+nkyZNVVXXfvn2akJCgqqqTJk3S1157TVVVjx49qk2aNNGTJ0/qK6+8orVq1dLDhw9f9J0bN27Uli1bakZGhh4/flwbNWqkTz31lKqqHjp0KHe/hx56SJ977jlVVR09erQOHTpUs7OzddmyZVqpUiXdunWrZmVladu2bXXz5s2qqgroggULVFX1scce03Hjxqmqavfu3XXnzp2qqrpu3Tr91a9+paqqffv21VdffVVVVWfNmqUVK1YswX/FixX05wps1AL+XYbqymYD0EREGohIOdzVy0VPlUTkWuAq3IR2OeuuEpHyvvdVga5AYMa8F9Ho0W5E+IwZXpzdBNOQIUNYunQpAG+++SaDBg0C4MMPP2TatGkkJSVx/fXXc/r0ab7//nsAbrjhBq6++uqLvmvVqlXcdNNNVKhQgSuuuIJ+/c4/0/jyyy+57rrraNWqFa+//voFV1N9+/ZFRGjVqhU1atSgVatWxMTE0KJFC7799lsAYmJiGDp0KOB6Ba9evZqTJ0+yZs0aBg8eTFJSEnfeeSf79+8H3BCJ4cPdtG3BroNzOaGapO6ciNyDmzo3Fpirql+JyB9wWTAn8QwDFvmyY45mwAsiko277Zumqp4km/h49xj82WchPR1q1/YiClMczZs3z00mOX788Ue+//57GjduTIUKFahSpQpbt25l8eLFuT2MVZW33nqLpk2bXnDs+vXrqVixYpHjSElJYdmyZSQmJjJv3rwLBmSWL18ecAkl533O58LahUSE7OxsKleuzJZCxoCEyxQvIWuzUdX3VDVBVRup6pO+dZPzJBpU9VFVfSDfcWtUtZWqJvpeXw5VzAW55x7XZvP8815GYYqqR48e/PTTT8yfPx9wRaJ++9vfkpKSQoUKFQAYOnQo06dP5/jx47lDBHr16sXMmTNzy1Fs3rz5suf6xS9+wbJlyzh16hQnTpzgnXfeyd124sQJatasSWZmJq8Xo9B1dnZ2btJcuHAh3bp144orrqBBgwYsWbIEcAkyLS0NgK5du7LIVyelOOcLpHBsIA5r9evDgAHw4ovga9szpYCI8Ne//pUlS5bQpEkTEhISiIuLY8qUKbn7DBo0iEWLFjFkyJDcdY888giZmZm0bt2aFi1a5Na3uZS2bdsydOhQEhMT6d27N8nJybnbHn/8cTp27EjXrl259tpri/w7KlasyGeffUbLli1JTU1l8uTJgEskL7/8MomJibRo0SK3IXvGjBk8//zztGrVKmB1aYrLxkYVw+rVcN118NxzcO+9QTtNRLGxUYERHx/PyTAqH2ljo4KsWze3PP00+Dno1pioZ8mmmCZNgu+/hwCV+jDGL+F0VVNUlmyKqXdvSEyEadMgO9vraIwJf5ZsikkEHnjAjQRftszraEqHSGwfjGZF/fO0ZFMCgwZBo0YwZYoNYbicuLg4Dh8+bAknQqgqhw8fJi4uzu9jrAZxCZQp465u7rgDVqyAYkxwGDVq165Neno6wRi3ZrwRFxdH7SL0bLVH3yWUmQnXXgtXXAGbNkGMXSuaKGePvoOkbFl49FE3W4CVnzCmcJZsAmDECGjWDCZPhqysy+9vTDSyZBMAsbHwhz+4J1PW78aYglmyCZCBA6FNG/j97610qDEFKXKyEZGKvgLmJo+YGJg6FfbsgVmzvI7GmPBz2WQjIjEiMkJEVojIQWAHsF9EtonIUyLSOPhhlg69ermexY8/DvaE15gL+XNl8wnQCFfK8+eqWkdVqwPdgHXAH0VkZBBjLFX++7/h5El47DGvIzEmvPiTbHqq6uPAj6qaOwpIVY+o6luqejOwOGgRljLNmsFdd8Hs2bDNk3qCxoSnyyYbVc0povCX/NtEpFO+fQyu3018PPz2tzaMwZgc/rTZDBGRaUAlEWkmInmPedHfE/kx/W6KiPyQZ5rd2/NsGy0iu3zLaH/P6ZWqVV3C+eAD+MtFKdqY6HTZ4QoiUgvoAfwJN0tCU+AYsA+opqodL3sS9/RqJ3ADboK6DcDwvIXLRSQFaK+q9+Q79mpgI9AeUGAT0E5VjxZ2vlAOVyjMuXOQnAwHD7r+N5UqeRqOMSFT7OEKqrpXVecD/VW1t6o2xCWN3wPd/Tx/UaffzasX8JGvjego8BFwo5/HeqZMGddus3+/61lsTLTz5zZKAFT1HznrVPWwqm5S1Yy8+1yCv9Pv3iwiW0VkqYjUKcqxwZ4Rszg6dnSNxc89B59/7nU0xnjLr0ffInKviNTNu1JEyolIdxF5FQhEO8o7QH1VbY27enm1KAer6ouq2l5V21erVi0A4QTGlClQrZorQ2H1ik008yfZ3AhkAW+IyD5fZ77dwC5gOPCsqs67zHfsBerk+Vzbty6X72opp6P/S0A7f48NZ5UruzmmPv/clRA1JloVqZ6NiJQFqgKnVPVYEY4rg2sg7oFLFBuAEar6VZ59aqrqft/7m4D7VbWTr4F4E9DWt+vnuAbiI4WdLxwaiPMbMQKWLIENGyApyetojAmeEtezEZEZqpqpqvuLkmjATb8L5Ey/ux14M2f6XRHJmQh5vIh8JSJpwHggxXfsEeBxXILaAPzhUokmXM2a5R6Jjx4NZ896HY0xoef3lY2IPAEkAsNUNUNEegGTVbVrMAMsjnC8sgF4913o29dNA5NnIkZjIkphVzZ+1yBW1YdFZATwqYicBU4CF3XOM4Xr0wfGjHFtN927Q8+eXkdkTOgU5TaqB3AHkIFrtxmvqquCFVikmjHD1SweORL+/W+vozEmdIpSz+Yh4BFVvR4YBCwWEX879RmfihXhzTfh+HEYNcomuDPRw+9ko6rdVXW17/0XQG/giWAFFslatnQd/T76CJ580utojAmNYpcF9T2m7hHAWKLK7bfDLbe4MqLvvON1NMYEX4lqEKvqqUAFEm1EYM4cV7f4llus9o2JfFbw3EM/+5mbJ7xCBejfH44WOo7dmNLPko3H6tRxk9t99x0MGWId/kzksmQTBrp2hRdfhJUr4bbb7AmViUx+d+ozwZWSAnv3wsMPwzXXwPTpXkdkTGBZsgkjDz4I+/bBU0+5hDNhgtcRGRM4lmzCiIjrf3PgAEyc6BqOx471OipjAsPabMJMbKybL7x3b7jzTnj5Za8jMiYwLNmEofLl3awMvXq5Cn+vvOJ1RMaUnCWbMBUX5/rg9OzpRor/z/94HZExJWPJJozFxcHbb7vSFOPGuSl9bdI7U1pZsglzP/uZu6UaPdpNfHfvvZCV5XVUxhRdyJKNHzNi/sZXTH2riHwsIvXybMvKM1Pm8lDFHC7KlIG5c910vs8/DwMHwokTXkdlTNGEJNn4ZsR8HleWojkwXESa59ttM25GzNbAUiBvt7ZTqprkW/oRhWJi4Omn3aPxFSugSxfYs8frqIzxX6iubC47I6aqfqKqP/k+rsNN2WLyufdeeP99SE+HDh3gf//X64iM8U+oko2/M2LmGAO8n+dznG+2y3UiMqCgA8JxRsxgueEGWL8eqlSBHj1g6lQbT2XCX9g1EIvISKA98FSe1fV81dpHAM+KSKP8x4XrjJjBkpAAn30Ggwa5YQ69e8PBg15HZUzhQpVs/JrVUkR64mod98szOyaqutf3uhv4FGgTzGBLiyuugDfegBdegL//HRIT3S2WMeEoVMlmA9BERBqISDlgGHDBUyURaQO8gEs0B/Osv0pEyvveVwW6AlbXzkfEjZ9avx6uvhp+/WvXCfDYMa8jM+ZCIUk2fs6I+RQQDyzJ94i7GbDRN1PmJ8A0VbVkk0/r1m4+8UmTYN48V1R9xQqvozLmvCLN9V1ahOuMmKGyYQPceit89RX06wfPPgsNGngdlYkWJZ7r25QeycnuKmfaNPj4Y2je3A11OGXl6Y2HLNlEqHLl4P77YccOV0z90UehSRM3o8O5c15HZ6KRJZsIV7s2LFoEn37qiquPHQstWrhZOa1vjgklSzZR4pe/hDVr3CjysmVh6FBISoIFCyAz0+voTDSwZBNFRFyDcVoavPaau7IZNcrdXs2cCRkZXkdoIpklmygUGwsjR8LWrbB8ubvVGj8eatWC++5z7TzGBJolmygWEwN9+8Lq1W759a/hz3+GZs3gV7+CxYvh9GmvozSRwpKNAdxEeQsXutHkU6fCt9/CsGFQo4abOC811Yp2mZKxZGMuUL06PPAAfPONm6Hz5pth6VI3urxuXXeblZpqjcqm6CzZmALFxroEM3cu/Pvf7lF5crIb9Nmjh7viGTnSrT9+3OtoTWlgwxVMkWRkwIcfukfo774Lhw+7tp/kZJeEevRwVQTj4ryO1HilsOEKlmxMsZ07B2vXuuTz8ceuvk5Wlks0XbpA585u6dTJFfoy0cGSjQm6H390ZUpXroRVq9yj9ZxG5YQEl3jat3d1d1q3hiuv9DZeExyWbEzIZWTAxo3u6mftWli37sJqgg0auMSTlORKYiQkuA6GdgtWuhWWbMp4EYyJDhUrumESv/yl+6wK+/a5Hsxbtpx/ffvt85PviUC9etC0qUs+TZtCo0ZuXb16UKGCV7/GlJQlGxMyIq6Xcq1argNhjowM+Prr88vOne519eqLh1BUrXo+8eQsNWvCz39+/jU+3p3LhBdLNsZzFStC27ZuySvnSmj3bvj+e/juu/PLtm2u3nJBNXoqVHBJJ2epUcOVTK1Sxb0WtJQtG5rfGs1ClmxE5EZgBhALvKSq0/JtLw/MB9oBh4Ghqvqtb9sk3PQuWcB4Vf1bqOI23sl7JVQQVffo/cABt+zff/59zrJ9u2u0Pnr00iU1KlWCypXdq79LhQpueuS4OPeaf4mLc/2VjBOSZJNnRswbcHNGbRCR5flqCY8BjqpqYxEZBvwRGOqbOXMY0AK4BlgpIgmqap3no5yIu62qWtU1MF9KdrZ7WnbkSMHL4cOuSPyJE+eXAwcu/FycXtNly16chMqVc+tzXvO+93dbmTIukV1uiYkp/n4xMW4Rca916rir0OIK1ZVN7oyYACKSMyNm3mTTH3jU934pMEtExLd+kW9qlz0i8o3v+9aGKHYTAWJi3JVL5crQsGHxvuPMGZewcpLPqVMXLqdPX7yuoPVnz7rElZnp3mdkuCuvnM95t+Vf5+X4tNRUN0C3uEKVbAqaEbNjYfuo6jkROQ5U8a1fl+/Yiy6sRWQsMBagbt26AQvcmBzly0O1am7xSnb2hYnnckt2dvH3UXXbsrPd++bNSxZ7xDQQq+qLwIvg+tl4HI4xQRET45Je+fJeR1J04TQjZu4+IlIGuBLXUOzXbJrGmPAWNjNi+j6P9r0fBKSq6968HBgmIuVFpAHQBPgsRHEbYwIkJLdRvjaYnBkxY4G5OTNiAhtVdTnwMvCarwH4CC4h4dvvTVxj8jlgnD2JMqb0icixUSLyA/Cdn7tXBQ4FMZxwYb8zsoTz76ynqhc1o0dksikKEdlY0KCxSGO/M7KUxt9plfqMMSFhycYYExKWbHx9c6KA/c7IUup+Z9S32RhjQsOubIwxIWHJxhgTElGbbETkRhH5WkS+EZEHvI4nGESkjoh8IiLbROQrEbnP65iCSURiRWSziLzrdSzBIiKVRWSpiOwQke0i0tnrmPwVlW02vvo6O8lTXwcYnq++TqknIjWBmqr6uYhUAjYBAyLtd+YQkd8A7YErVLWP1/EEg4i8CqxS1Zd8Q38qqOoxj8PyS7Re2eTW11HVs0BOfZ2Ioqr7VfVz3/sTwHYKKM8RCUSkNvD/gJe8jiVYRORK4Be4oT2o6tnSkmggepNNQfV1IvIfYQ4RqQ+0AdZ7HEqwPAv8F3CJ4p+lXgPgB+AV3+3iSyJSgtp5oRWtySaqiEg88BYwQVV/9DqeQBORPsBBVd3kdSxBVgZoC/xZVdsAGUCpaW+M1mQTNTVyRKQsLtG8rqp/8TqeIOkK9BORb3G3xN1FZIG3IQVFOpCuqjlXp0txyadUiNZk4099nVLPV8P5ZWC7qv7J63iCRVUnqWptVa2P+7NMVdWRHocVcKp6APiXiDT1rerBhXW8w1rElAUtisLq63gcVjB0BUYBX4jIFt+6B1X1Pe9CMiV0L/C673+Su4FbPY7Hb1H56NsYE3rRehtljAkxSzbGmJCwZGOMCQlLNsaYkLBkY4wJCUs2xpiQsGRjjAkJSzYmrIhIbREZ6nUcJvAs2Zhw04NSNN7H+M96EJuwISLdgLeBY8AJYKCq7vY0KBMwlmxMWBGRD4DfqeqXXsdiAstuo0y4aQrs8DoIE3iWbEzYEJGqwHFVPed1LCbwLNmYcFIf2Od1ECY4LNmYcLIDqCoiX4pIF6+DMYFlDcTGmJCwKxtjTEhYsjHGhIQlG2NMSFiyMcaEhCUbY0xIWLIxxoSEJRtjTEj8H4V+yMR0SNPCAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAABwCAYAAAD/jtB8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAfPElEQVR4nO3dd3hUddbA8e8vEEoCEQTiRoIJRZClg6EI8mIBxQLKuksR1lVsvLqAWyw8L00Re+HZdUUXEHelqKBiQRdZQARLBCQBAeklQYQEgSSSkJDz/nGSSEmZhJnMZOZ8nmcemMnce89M4NzfPb9ynYhgjDEmuIX5OwBjjDG+Z8neGGNCgCV7Y4wJAZbsjTEmBFiyN8aYEGDJ3hhjQkClJHvn3Czn3EHn3MbKOJ4xxpjTucoYZ++c6w1kAv8SkbaebNOwYUOJj4/3aVzGGBNM1q5dmyYijYr7WfXKCEBEVjrn4suzTXx8PGvWrCn3sXJzITy83JsZY0yV55zbU9LPgq5m37Ah1K0LnTvDo49CWpq/IzLGGP8LqGTvnLvbObfGObfm0KFD5d5eBP76Vxg5EiIjYdIkaNYMXn5Zf2aMMaGqUmr2AAVlnA89rdlfeumlUpEyzqk2bYIHHoAlS2DoUJg9G2rUOKddGmNMwHLOrRWRS4v7WaXU7L0lNzeXlJQUsrOzPXq/c/DCC3DsGBw5Al9+CY0a6evG/2rVqkVsbCzh1slijM9VSrJ3zs0D+gANnXMpwEQRmVne/aSkpFC3bl3i4+Nx5czYhw7Bnj1QuzbEx1vC9zcRIT09nZSUFJo2bervcIwJepU1GmeoN/aTnZ1doUQP2qLPzYX9+6FmTbjwQm9EZCrKOUeDBg2oSN+MMab8AqqD1hMVSfSFYmKgQQNN+MeOeTEoUyHn8rs0xpRPlUv258I5uOgiqFULdu2CvDx/R2SMMZUjpJI9QLVq0LSpJvq9e/0djTHGVI6QS/agY/BjYuDwYTh61Dv73LlzJ865oHgYY4JPlRp66U2/+pUm+717oU0bCDvH097nn39Obm4u1auH7FdqjAlgIdmyB03uF10EOTnwww/nvr+8vDxL9MaYgBWyyR4gKgrOPx8OHNCkX1FZWVnUqVPHe4EZY4yXhXSyB2jcWP/cv7/i+1i2bBlXXnmldwIyxhgfCPlkX7MmXHABpKdDVlbF9nHw4EEaNSp2CenTvPfee9x1110MHjyYJUuWVOxgxhhTASGf7EE7a6tXh5QUz97/xRdfkJGRUfT8zBEsK1asYMSIEWdtd9NNN/HPf/6T6dOn8+abb55TzCdPnqRTp07ccMMN5d72v//9b7HxlSQ/X8tcWVnw8886E7ms9fM++eQTWrVqRYsWLXjyySfLHaMxxrusRxFN9DExsG8fZGToevglyczMZO7cufTp04dbbrmF9evX07Fjx9Pek5SURKdOnUrcx5QpU7jvvvvOKeZp06bRunVrjlVgKnBZ8YEm+MOH9ZGZqc9PFR6u31NU1Alq1cqlTp3Iop+dPHmS++67j08//ZTY2FgSEhIYMGAAv/71r8sdqzHGO6xlX6BRI01gqamlt1rr1KnDhAkT+PjjjwH49ttv6dy582nvWb9+PampqXTr1o1mzZqxYsUKQBf/euihh+jfv/9Z25RHSkoKH330EXfeeedpr//2t7/l/vvvp1evXsTFxbFq1SpGjBhBy5YtGTlyZNH7CpN9Tk4Of/jDHxg3bhyFS12LwMGDkJwMu3dri75hQ108rkULaN4cmjSBH3/czMSJf6ZDh1Z8/PFWfvrpl+8tMTGRFi1a0KxZM2rUqMGQIUNYtGhRhT+vMebcWbIvEBamrfvMTG3dlyY6Opq0tDTy8/Mp7n4ASUlJ1K1bl6+//prp06czfvx4AP72t7+xdOlSFixYwPTp0ysc69ixY3n66acJO2NywIYNG2jWrBmrVq3innvuYeTIkTz99NNs2rSJjz76iJyCIUfJyclER0dzzTXXcPXVVzN16lScc2Rnw+bNOvegdm1o2RLattUhqg0bQnh4Fu+99xq/+U0vHn30Lnr3/jWrVyfTunUnduyArVv15JCamkqTJk2K4oqNjSU1NbXCn9cYc+6sjHOKhg11zP3+/VqiKG0yaUJCAosXLz6rYzY3N5e0tDTGjRsHQMeOHUkruDfi6NGjGT16dIn7vPrqqzlw4MBZrz/++OMMHDgQgA8//JDo6Gi6dOlSdMUAuiLokSNHGDt2LKD9CCNHjiQmJgaAatWqUaNGDXJzc9m5cydDhw7llVdeoUePHoCWa3bv1pNes2ZQv/7Znz8mJob27dszY8YMLrnkkqLXRXQJ6ZQU+O67sk+WxpjKZ8n+FIWt+717NWFFRZX83htvvJHhw4fz5Zdfnvb6li1baNGiBTUKbom1bt06OnTo4NHxly5dWuZ7Vq9ezfvvv8/ixYvJzs7m2LFjDB8+nAceeIDOnTsXtfaTkpIYNWoUoGWfCy+8EOccmzdvJiEhgcOHD1OtWjUAfvxR+ysiI7VMU9LdvBYsWMDMmTMZNGgQQ4YM4bbbbiMuLg7nIDoazjtPF5gTacy2bfvIz9fvNCUlhcaFY1yNMX5RZZP92LGwfr1399mxIzz/vE6ySk0tvXXfoUMHunXrdtZkqvXr17Nr1y5ycnLIzc1l8uTJvPDCC16L8YknnuCJJ54AdNTPs88+yxtvvMHs2bNPO6kkJyfTvn17QBP/qX+/7LLLGD58ODfffDNz5y4jN/cC6tXTFn1py0b069ePfv36kZ6ezhtvvMHAgQNp2LAhM2bMID4+npo1tfRTo0YC48dvY/nyXVx2WWPmz5/P3LlzvfYdGGPKr9w1e+dcpHOumi+CCQRhYToUMyur7HJEcXX3pKQkBg0axGWXXUbXrl0ZPXo03bt391G0v9iwYUPRqKDs7GyOHz9O/fr1gbMTf9u2bWnZsiUPP/wUt9/+O6Kicmne3PP1gRo0aMCYMWNYv349U6dOLbpCgMIyUHWeffbv3HHHNbRq1Zpbbvkdbdq08ernNcaUT5k3HHfOhQFDgFuBBCAHqAmkAR8Br4jIdm8HVtwNxzdv3kzr1q29faiz5OfDhg064eqU0nRQSUvTGn39+tqi98Vilz/9BDt36v0DWrbU0U5nqqzfqTGh4FxvOL4cWAo8AmwUkfyCnZ4PXAE85Zx7V0Te8FbA/lbYuvdk3H1VlJGh9+ONitK1/X21qnH9+nDxxbB9u47UadVK5zSEsvx8+PZb+OIL2LgRtm2DI0d0FFjt2vpvLS5Ov6suXeDyy0vvOzLGU57817taRHKdc/GFiR5ARA4DC4GFzrli2mxVW6NGWrv/4YfgSvY5ObBjh161lFWj94aoKO303b5dE9vFF4dewheBr7+GWbNg0SKdxwC6CF+rVno/5Dp1IDtb76+wejUUdnGEhUGPHjB0KPz2t9oRbkxFlPnfTkRyC/76DnDaTCDnXHcR+eqU9wSNsDBdMyclRVtdwbCoZX6+JnoRnSBVWUn3vPM04e/YoUn/4ov1jmHBLj8f3n0XHnsMkpIgIgIGDoTrroMrrtAkX9JVVVaWniCWL9cTxP33w5gxcNNNOjihZ0/fXZGZ4FRmu8459zvn3JNAXedc64IafqFXfRea/zVqpAmxcL373bt307Zt29PeM2nSJJ599tly7bdPnz6c2R9xLjxdXjklRde2adpU6+jeVtp3Ua+eHjczU+v4Zy6/EGwWL9bRXbfcoi32V17Rf0dz58Lw4braamnJOjISrrxSTxTJyVry+ctfNPlffjl07QoffVT2GkXGFPKkbbcaqAXcCTwPtHLOHQH2A8d9F5r/VaumrfvU1IqviOkNJ0+ePG3ES0X89JOWDy64QBOvP5x/Ppw8qf0Fe/dqbTrY7N6tLe9Fi7RTes4cGDz43K9k2rSBJ5+ECRPg3/+Gp5+GG26Abt1gyhS4+mpvRF/1HTmicz0OHNC+qcxMXbivVi19REXpiTY2tviJg8HMkzJOKvAv59wOEVkN4JxrAMQDW3wbnv9FR/9Suy+r7NGnTx+6devG8uXLOXLkCDNnzuTyyy/n+PHj3H777SQlJXHJJZdw/Pgv58glS5YwceJEcnJyaN68Oa+99hp16tQhPj6ewYMH8+mnn/Lggw8yZMiQom127drFsGHDyMzMLJpZCxQ9/+mnn8jNzWXKlCkMHDiQ77/fzbXXXkuHDt3ZtOkLEhISuP3225k4cSIHDx5kzpw5dO3alUmTJrFjxw62b99OWloaDz74IHfddRcAzzzzDG+99RY5OTncfPPNTJ48GdDZva+//jrR0dE0adKELl26lPodNWqk//n27y9+dE5VJQLTp8Of/6wJ5Mkn4YEHSp6gVlEREXDPPXDHHfD66/Doo9C3r5aGnn9e+wBCRWoqrFoFiYn6+O47bdR4qk4daNcOOnSA9u2he3f9M1hLjGUme+ecE7W68DURSQfSz3yPj2L0q8LW/f79emldlry8PBITE1m8eDGTJ09m6dKlvPzyy0RERLB582aSk5OLFkFLS0tjypQpLF26lMjISJ566imef/55JkyYAOh49nXr1p11jDFjxjBq1Ch+//vf89JLLxW9XqtWLd59912ioqJIS0uje/fu3HjjAFJSYN++7bz99tt07jyLhIQE5s6dy6pVq3j//feZOnUq7733HqBj8r/66iuysrLo1KkT119/PRs3bmTbtm0kJiYiIgwYMICVK1cSGRnJ/PnzWb9+PXl5eXTu3LnMZA86Szk3V0+gJ0968EsIcAcOwMiRWrq55hp49VVdT8iXwsPhzjthxAj4+9816bdtq7X9CRO01Rps8vN1FNP778PHH2tpC7TF3qmTXkE1a6aPCy/UgRV16+p3lZ2tjyNH9CSRkqJ9SBs2wLx5eqIGvert1Qv69NHfZZs2wdP692jopXNuIbBIRPYWvuicqwH0Am5Dh2fOLm0nzrlrgWlANWCGiFSZRc4LW/eHDhX/Wz91PftBgwYB0KVLF3bv3g3AypUri9bEad++fdEEp6+++opNmzbRs2dPAE6cOFG0Vg3A4MGDiz3e6tWrWbhwIQAjRozgoYceAnRVzXHjxrFy5UrCwsJITU3lu+9+JCsLLrqoKZde2g6ANm3acNVVV+Gco127dkVxAgwcOJDatWtTu3ZtrrjiChITE1m1ahVLliwpWhY5MzOTbdu2kZGRwc0330xERAQAAwYM8Oj7dE6TYW6udti+9Rb87ncebRpwli7VkTKZmfC3v8F991VucqhZU68mRoyA8eNh2jQt8zz2GNx9d3C0UpOTta9j3jwt/4WHa7/F00/DVVdp6/xcrhJFtLS4ahV89pk+PvxQ+0ji4rRcdsMNegLwRV9XZfEk2V8L3AHMc841BY6gNfxqwBLgRRH5trQdFMy4fQnoC6QA3zjn3heRTecQe6WpXl1b95mZDTh8+PTrxMOHD9O0adOi5zVr1gR04bG8vLxS9ysi9O3bl3nz5hX788hSLiXOvGEKwJw5czh06BBr164lPDycuLh49uzJpm5diIioWfS+sLCwojjDwsJOi/PM/TrnEBEeeeQR7rnnntN+9uKLL5b6+UrjnLbA9u3TRNWokY5QqSpE4Nln4eGHoXVrTRD+XK4/Olo7gUeN0j6D//1fba1Om6ZJqqr5+WdN7i+9pPMSqlXTlvbUqTBggHeHQzunS3jHx2vnOWjL/+OPNenPmqVxREZqyWzAALj++qo3DLbM0Tgiki0i/xCRnkAccBXQWUTiROSushJ9ga7AdhHZKSIngPnAwDK2CSjR0TrqpUGDGJYtWwZoov/kk0/o1atXqdv27t27aG2YjRs3kpycDED37t1ZvXo127frBOSsrCy2bt1aZiw9e/Zk/vz5gCb4QkePHiU6Oprw8HCWLVvO3r17cO6X++x6YtGiRWRnZ5Oens6KFStISEjgmmuuYdasWWRmZgK6hPHBgwfp3bs37733HsePHycjI4MPPvjA8wOhw1ujo3Uo5sCB+p+6KsjKgiFD4MEHYdAg+Oor/yb6U3XsqCN23n5bx+xfcYWOzz/l4i2g7dihLerYWC1T5ebqFdMPP+joo1tvrZx5L7GxcNdd2tGenq4lut//Htas0f6SX/0KLrtM+2Y2baoao6I8nlLjnJsmIrki8oOIHCnncRoD+055nlLw2pnHuNs5t8Y5t+bQoUPlPIRvhYdrYho//l9MnvwYHTt25Morr2TixIk0b9681G1HjRpFZmYmrVu3ZsKECUV17UaNGjF79myGDh1K+/bt6dGjB1u2lN3nPW3aNF566SXatWt32jrxt956K2vWrKFdu3a8+uq/iI+/hJiY8nUStm/fniuuuILu3bszfvx4LrzwQvr168ewYcPo0aMH7dq145ZbbiEjI4POnTszePBgOnToQP/+/UlISPD8QAXCwrQFVb8+9OsHHnx8v9q+XTvyFiyAp57SElSgzcFwTod8bt6s5ZzFi3XZj/Hj/TuqrCT5+ZrIr7tOT/zTpmkL+rPPtIRz//165ecvtWtD//7wj39oGWndOpg0CU6cgEce0bp+ixbaIb98uZ6gApKIePQApgAfAJEFz68BVnu47S1onb7w+Qjg76Vt06VLFznTpk2bznqtMp04IbJ2rcjOnX4No0zHj2ucW7eK5Od7vt3EiRPlmWee8V1gxSj8nX7/vUh0tEhsrMju3ZUagscWLxapV0/k/PNFlizxdzSe27dPZNgwERBp3Fjk9ddF8vL8HZVIerrIM8+INGumscXEiEycKJKa6u/IPJeSIjJ9ush114nUrKmf47zzRG64QeSpp0S+/FIkJ6fy4gHWSAk51eOWvYj8HzAPWOGcWw38CXjYw81TgSanPI8teK1KCQ/XG5ykp+uyA4FIRC/ZndPOpaoykqBlS/j0U+3ovPpq7RAPFPn58PjjWqeNi9NL+b59/R2V52Jjdbz/qlVafrjtNm2Nzp3rn9FQa9dqKaRxY/jrX/XPN9/UTtJJk3QkTVXRuLEOhf3oI80L776rgw22bYOHHtKlLurV0xnP996rVweffab/Ryv9CqCks8CZD7RWvxxYAXwPtCrHttWBnUBToAaQBLQpbZtAbNmL6Fl6zZrAbX0eOCDyzTcihw75OxLPnPk7/fJLkchIkXbtAuMzHD0qctNN2mK79VaRrCx/R3RuTp4UWbBApG1b/UyXXCLyyisimZm+Pe5PP4m8+qpIt2563IgIkXvuEUlO9u1x/enAAf2ux4wR6d1brwq1OaYP5/Rqpm1b/V6uukqvCEaMqPgxKaVlX+YSx4Wcc8uACSKyyjnXDvg38CcRWebh9tcBL6KjeGaJyOOlvd+fSxyXZc8eXSK4XTvvT5o5F9nZ2llUt67WEKtCq7643+l//6tD3Zo319Z+wZ0V/RAb3Hyz1umfew5Gj64a36kn8vPhnXd09m1Skq5fdPvtOjKqUyfvfM7MTFiyBObP17HxOTnad3DvvXp14a+Z3P4ioqN8Nm3SUWiFj6NH9bvKzITjx3WmuQc3rStWaUsce9yyP/MBxABfVHT7sh4ltezzy1OE9pHsbG3d79nj70h+kZ8vsmWLyLp1lVsjPBf5+fklXq0tW6Yt/BYt/PM9v/OOSJ062o+wYkXlH7+y5OeLrFolMmSISPXq2uJs3lzkz38W+eADkcOHPd/X8eMiX3wh8txzIv36idSooftr2FBk9Gi94gyA/75BDW+07Es4i9QWEZ+sj1Ncy37Xrl3UrVuXBg0aFDvOvDLt3q01ukBp3R88+Mt6M/4cueApESE9PZ2MjIzT5imc6osvdIRGnTrwwQfa4vS1nBz4v//TMfRdu8LChVrzDgVpaTrU8O23YdkyrSkXjkG/+GKdF1Gvnv4+nNOW6LFjeqVbuKJpYR26ZUu48Ua9QuvZM7iWxghkpbXszynZ+1JxyT43N5eUlBSys7P9FNWpsegSClFR/p+anpensdSsqZO/qopatWoRGxtLeCmZIClJk0Z6OrzxhpZVfGXLFhg2TMf7jxoFL7yg32koOn5c15v5/HNdc2bbNm3gZGTokEPQyYZ160KTJlpya9VKF2br1s1/pbdQFzTJPtDcdpu2grZu9V/rT0RHhiQm6lohvl6TxR8OHNBJV4mJMG6cjtjwZksxL09HSTz8sC40NnOmHs8U78QJrfnXrBk8fRjBorRk7+P7FAW3yZP1H/0jj/gvhn/+Uzs0n3kmOBM96HDBFSt0uN7UqTpzcZOXFtpITNRyzZgx8D//owtjWaIvXY0aukaMJfqqxZL9OYiPhz/9ScsLiYmVf/y9e3Vq+ZVX6qJXwax2bW1xL1yoNz9p315Hx6Snl71tcTZs0GUEunWDH3/UmbCLF1v5wQQvS/bn6JFHtE4+dmzlro9x8qQOkxOBGTNCp5U1aJDW1u++WxeniovT6fTr1pX9/f/8sw4D7NtXTxb/+Y92xm7erIk/VL5DE5qsZu8FM2fqok1z5mgHX2V44gmtX8+erX0Hoei777R8NXeudpjHxWmJp107XceoenUdLbJzp3b0rl6t9ea4OC0J3XcfNGjg709hjPdYB62PnTyp5YB9+7SVeP75vj3emjU6Dfs3v9FlYEO9RZqWppN2PvwQvvlGJ66cKiJClyHu00eHcvbpowuwGRNsLNlXgvXr4dJLtbTy2mu+O87Ro3qcnBxtrfp72Gcg+vlnPQHk5emY8IYNLbmb0GCjcSpBx4668NHs2TpF3Bfy87Vks3u3li4s0RcvIkJHJjVrpuUcS/TGWLL3qvHjde2PO+7QlqW3PfmkznB87jm9T6YxxnjKkr0X1aqlLe5Dh/SuNvn53tv3O+/oyJFhw+CPf/Tefo0xocGSvZd16gQvvqh3X3rsMe/sc+VKTfLdu+skqlDvkDXGlJ8nNxw35XTvvXpf0kmTdOLVuQyNXLtWb3DctKkuBhYR4a0ojTGhxJK9DzinLfD9+3X8fWSk3hO0vD7/XFcNrF8fPvnExoQbYyrOyjg+UqOGTu3v2lVvU/bKK+XbftYsvQF3TIzeTi4uzjdxGmNCgyV7H4qK0jst9e//y915Dh8ufZuDB3Ws/siRug7455+HznrqxhjfsWTvYxEROlxy4kRdMK1FC63lb936y1ou+fm6hvpf/qI/f/NNff9//lM1bkRijAl8NoO2EiUn63o2ixdroo+K0kdamt4/tlo1XZBr4kQdr2+MMeVR2gxa66CtRO3b6/ote/Zoq33DBr21W4MGunhX//4649MYY7zNkr0fxMUF//rzxpjAYjV7Y4wJAQFbs3fOHQL2VHDzhoAPVqfxiaoUK1SteKtSrGDx+lJVihUqHm+ciBQ7rCNgk/25cM6tKamTItBUpVihasVblWIFi9eXqlKs4Jt4rYxjjDEhwJK9McaEgGBN9q/6O4ByqEqxQtWKtyrFChavL1WlWMEH8QZlzd4YY8zpgrVlb4wx5hRBleydc9c65753zm13zj3s73hK45yb5Zw76Jzb6O9YyuKca+KcW+6c2+Sc+845N8bfMZXGOVfLOZfonEsqiHeyv2Mqi3OumnPuW+fch/6OpSzOud3OuQ3OufXOuYBf08Q5V885t8A5t8U5t9k518PfMRXHOdeq4DstfBxzzo312v6DpYzjnKsGbAX6AinAN8BQEdnk18BK4JzrDWQC/xKRtv6OpzTOuRggRkTWOefqAmuBmwL4u3VApIhkOufCgVXAGBH5ys+hlcg59yfgUiBKRG7wdzylcc7tBi4VkSoxbt059zrwuYjMcM7VACJE5IifwypVQT5LBbqJSEXnG50mmFr2XYHtIrJTRE4A84GBfo6pRCKyEihjwePAICI/iMi6gr9nAJuBxv6NqmSiMguehhc8ArZV45yLBa4HZvg7lmDjnDsP6A3MBBCRE4Ge6AtcBezwVqKH4Er2jYF9pzxPIYATUlXlnIsHOgFf+zmUUhWURdYDB4FPRSSQ430ReBDw4i3qfUqAJc65tc65QF/lqSlwCHitoEw2wzkX6e+gPDAEmOfNHQZTsjc+5pyrAywExorIMX/HUxoROSkiHYFYoKtzLiBLZc65G4CDIrLW37GUQy8R6Qz0B+4rKEkGqupAZ+BlEekEZAGB3p9XAxgAvO3N/QZTsk8FmpzyPLbgNeMFBbXvhcAcEXnH3/F4quCSfTlwrZ9DKUlPYEBBHXw+cKVz7g3/hlQ6EUkt+PMg8C5aQg1UKUDKKVd2C9DkH8j6A+tE5Edv7jSYkv03wMXOuaYFZ8YhwPt+jikoFHR4zgQ2i8jz/o6nLM65Rs65egV/r4122m/xa1AlEJFHRCRWROLRf7PLRGS4n8MqkXMusqCTnoJySD8gYEeUicgBYJ9zrlXBS1cBATmw4BRD8XIJB4JoPXsRyXPO3Q/8B6gGzBKR7/wcVomcc/OAPkBD51wKMFFEZvo3qhL1BEYAGwrq4ADjRGSx/0IqVQzwesGIhjDgLREJ+CGNVcQFwLt6/qc6MFdEPvFvSGX6IzCnoBG4E7jdz/GUqOAE2he4x+v7Dpahl8YYY0oWTGUcY4wxJbBkb4wxIcCSvTHGhABL9sYYEwIs2RtjTAiwZG+MMSHAkr0xxoQAS/bGlINzLtY5N9jfcRhTXpbsjSmfqwj8tVWMOYvNoDXGQ865XsAi4AiQAQwSkZ1+DcoYD1myN6YcnHOfAH8RkYBd/MuY4lgZx5jyaUWArqBpTGks2RvjIedcQ+CoiOT5OxZjysuSvTGeiwf2+zsIYyrCkr0xntuC3n9go3PuMn8HY0x5WAetMcaEAGvZG2NMCLBkb4wxIcCSvTHGhABL9sYYEwIs2RtjTAiwZG+MMSHAkr0xxoQAS/bGGBMC/h+rZdKEfgGHFAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# Helper functions\n", "\n", "def dx_dt(x, v, t):\n", " return v\n", "\n", "def dv_dt(x, v, t):\n", " return - (k/m)*x - (b/m)*v\n", "\n", "def euler(x, v, t):\n", " x += dt*dx_dt(x, v, t)\n", " v += dt*dv_dt(x, v, t)\n", " return [x, v]\n", "\n", "# Setting time range\n", "tmin = 0\n", "tmax = 7\n", "dt = 0.01\n", "t = np.arange(tmin, tmax, dt)\n", "x = np.zeros(len(t))\n", "v = np.copy(x)\n", "\n", "# Initialising distance and velocity\n", "x[0] = 1\n", "v[0] = 0\n", "\n", "# Plotting function for different values of damping coefficient\n", "def plot(dampCoeff):\n", " global b\n", " b = dampCoeff\n", " if int(b**2 - 4*m*k) > 0:\n", " p = ' > 0'\n", " q = 'Over damped'\n", " elif int(b**2 - 4*m*k) == 0 :\n", " p = ' = 0'\n", " q = ' Critically damped'\n", " else:\n", " p = ' < 0'\n", " q = 'Under damped'\n", " for i in range(len(t)-1):\n", " x[i+1] = euler(x[i], v[i], t[i])[0]\n", " v[i+1] = euler(x[i], v[i], t[i])[1]\n", "\n", " plt.plot(t, x, color='blue', label = '$\\sqrt{b^2 - 4mk}$ '+str(p)+'\\n'+str(q))\n", " plt.legend()\n", " plt.xlabel('$t$')\n", " plt.ylabel('$x(t)$')\n", "\n", "m = 1 # mass of the oscillator\n", "k = 10 # spring constant\n", "b = np.sqrt(4*m*k) # damping coefficient\n", "n = 1\n", "fig = plt.figure(figsize=(4,8))\n", "fig.subplots_adjust(hspace=0.4, wspace=0.4)\n", "for bval in [b+0.9*b, b, b-0.9*b]:\n", " plt.subplot(3,1,n)\n", " plot(bval)\n", " n += 1\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "9f31a5a1", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 5 }