commit 55310709ec36a3d19aa1942a629a4d7661e3854d Author: Gerardo Marx Date: Tue Mar 18 23:59:50 2025 -0600 ode examples diff --git a/main.ipynb b/main.ipynb new file mode 100644 index 0000000..cd71bb5 --- /dev/null +++ b/main.ipynb @@ -0,0 +1,206 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Excersices\n", + " Find a numerical solution to the following differential equations with the associated initial conditions. Expand the requested time horizon until the solution reaches a steady state. Show a plot of the states ($x(t)$ and/or $y(t)$). Report the final value of each state as $t \\rightarrow \\infty$.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Problem 1:\n", + "\n", + "$$\\frac{dy(t)}{dt} = -y(t)+1 $$\n", + "with, \n", + "$$ y(0)=0$$\n", + "\n", + "This equation can be solved using the separation of variables method:\n", + "\n", + "$$y(t) = 1-e^{-t}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAABCQklEQVR4nO3dCXxU1d3/8e8QWZVN2ZNoVEBFFFQEEamgKO5YwPKAj2zuj1AQ1EJrcamKu6QFFbSi7VOElkWtIMpDBdGiKNT+wRVkS9gR2UtAcv+v38lMHEISAszkztz5vF+vcXLv3Jkchsh8c87vnBPyPM8TAABAQFTwuwEAAACxRLgBAACBQrgBAACBQrgBAACBQrgBAACBQrgBAACBQrgBAACBcoxSTH5+vtauXavq1asrFAr53RwAAFAGtizfjh071KhRI1WoUHrfTMqFGws2mZmZfjcDAAAcgZycHGVkZJR6TcqFG+uxibw5NWrU8Ls5AACgDLZv3+46JyKf46VJuXATGYqyYEO4AQAguZSlpISCYgAAECiEGwAAECiEGwAAECgpV3NTVvv379e+ffv8bkZSqVixotLS0vxuBgAgxRFuiplHv379em3dutXvpiSlWrVqqUGDBqwhBADwDeGmiEiwqVevnqpVq8aH9GGEwt27d2vjxo3uuGHDhn43CQCQogg3RYaiIsHmhBNO8Ls5Sadq1aru3gKOvYcMUQEA/EBBcZRIjY312ODIRN476pUAACkZbj744ANde+21bp8IG/554403DvmcOXPm6Nxzz1XlypXVuHFjvfrqqzFvF0NRR473DgCQ0uFm165datGihcaMGVOm61esWKGrr75aHTt21Oeff67Bgwfrlltu0bvvvhv3tgIAENSSjDlz5uj1119393Z8pNeV9bUCXXNz5ZVXultZvfjiizr55JP1zDPPuOMzzjhDH374oZ577jl17tw5ji0FAKD8WCiYN2+e1q1b5yZotG/f/qA6xlhcM3XqVA0aNEi5ubmF52xTyuzsbHXt2vWwrivra5ULL0FYU6ZNm1bqNe3bt/cGDRp0wLlXXnnFq1GjRonP2bNnj7dt27bCW05Ojvte9nVR//nPf7wvv/zS3R+tH3/80Xv//fe9CRMmuHs7TgWxfA8BIJmU9d/9Q103ZcoULyMjw31WRW52bOdjec2UKVO8UCjkzqdLXofwvZ2z2+FcV9bXOhr2uV3S53dRSRVumjRp4j322GMHnJs+fbp77u7du4t9zgMPPHDAX2zkFs9wU5YfunhYvXq1169fP69hw4ZexYoVvRNPPNH75S9/6W3evLnwmosvvriwTZUqVfIaNWrkXXPNNcW2rbj3zW6vv/56iW0g3AAIYiiJRSApy3WxChJTDnHNX//618J29Je8H62vI3xvx3ZNZmaml5eXd8jrMtLTC6+5tZTXOtpf8gk3PvbcRP9ARd9imV6L891333n16tXzLrroIm/OnDneqlWrvBkzZnhnnnmme9++//77wnBz6623euvWrXPvxfz587377rvPhSE7H83aPX78eHdt9K2094dwAyCRlEcvSax6QMoSOOzxkq65Lfx65zVseMjXOf/4471fS96voh6P3PZL3jXhP+dzzz3nnSt5X0hefjHX7ZO8G8PXphfzWvvC5+1xe/+PRmDDzZEMSx3Om3O0H8z2P03R/wGKBpxYpNfiXHHFFe57Fw15FkaqVavm3XHHHYXhpuh7GHkfrY2zZs06rL+Togg3AJJleMevHpABJVw3oHp17z7JO6eEwBEJCXb7sJiwEXnOh2UIG53Cx0uLPB65PRh+jQEDBngXlHBN5NY/fG2HEh6/OPy4/T0djcCGG+thaN68+QHnevbs6XXu3Dkhwo39z1VSsIm+HW16Lcp6Zex/jKK9WhHWI1O7dm0vPz+/xHCzf/9+d82dd95ZeI5wAyDWEmV4p6y9JKemp3vHFrnGgsYfJa+G5NWtW9e9xi+KCRsWJL6UvB2S96d77y1sy/4SAse34eMBhwgJdvumhGusjfPKEDaaSt44yXuimABkxxdF9dzYn7NHCUHJenWq0HNzoB07dnj/+te/3M0a/Oyzz7qvbUjFDBs2zLvpppsKr1++fLnrhbj33nu9r776yhszZoyXlpbmzZw5MyHCjf3PWpZwc7TptaiPP/641CBi76s9vmHDhhLDjWnTpo135ZVXFh7bc6pUqeIde+yxB9wifz/FIdwAqas8elLKcl10cLm5SHAZJnk3SN7VtWod8gP57vDx5GKusVvHqD/HEyUEidzw/dPduh0ycDxppQDhr4sLHNE9NxcfIkioDGHDgpm9X/3D5yOPF9fjVNp1kaGyQ71WytTclNTT0adPH/e43duHcdHntGzZ0hXDnnLKKa4m5HAEsecmEm6mTp16VOGmdevW3lVXXVV4bM954YUXvKVLlx5w27dvX4ltIdwAwRTv4FKm4Z2MDC9v7Vrv4vr1vQrF9KaMDV8X6U1ZX0KdiN3/qQy9GzdHDfMUd02k1kThoFNcj0x7yTtF8n7/1FMxCRxlCRIZZQwbf/vb3wrf//Twn7m0MFnadWW55mglTbjxQ3nU3BRXUBzPmhubDWWv/eijjx7xsJS1ya656667Cs8xLAUEX1nqW+IdXLIk74patVxgKe3DP2QBIhRy58pSl/JDCaHkc8n7TRl6N6qGh54yyqkHpKyBI5ZhY0oxf7fWjrIMAxa9rqyvdaQINz6FGxP9A1Wes6Uuv/xyLz09/YgLiv/4xz+6dv7jH/8oPEe4AYKtrDOFjjS42GyctKi6lL4l1KVEntOwDEWp26pWdaGldxnqUi4qh16SWPeAxDJITClj2IhVAffhvNaRINz4GG7KI70W59tvv/Xq1KnjZpTNnTvXrXnzzjvvuALssk4Fjy4mNiVNBd+5c2eJ7SDcAImjtA+astS3RM8ALWmoyGpXHpG8O0qoSzk36t/BMSUEkrWStzJc5HqoYZtRTz8ds3qSWPWSxLoH5FB/d7G+JlkQbnwON379QK1cudLVKdWvX9+FFfsfZuDAgaUu4mcL/tkifsXV65RUMzRy5MgS20C4ARK/BuZQoeUEyetWr5738QsvlLno9v9KCC59o77/ZaXMFPJjeCeRe0BwMMJNAoSbVMV7CCR+8e5DDz1U+FhxYeOh8Nf/btbskEW3F0reH4qs3RLPnpToP1+selNSrQckWRFuSkG4iS/eQ+DoxKp49/giS+FbiFkuec9L3vHHH19qaLFamWWSN79Vq3IdAvJreAfJgXBTCsJNfPEeAvGrgynLdGkLGkuizhcNLguLrINS2jDR//3f/5X7ENCh3qMjuQ7BQLgpBeEmvngPgZIdTR1MM+uJqV7da1CGnpQ5JfTI2O2m8DXWe1OWRdf8GAICikO4KQXhJr54D5GqylInU5Y6mGYl9KZ8Fv76F2WYLm2v2/gQAci+X1kXXSO4IBEQbkpBuIkv3kOkokPVyZTWK/Oq5J0VVQdzRwnBZZLkfSR518WoBibSK1PWZSsILkimcBOy/yiFbN++XTVr1tS2bdtUo0aNAx7bs2ePVqxYoZNPPllVqlTxrY3JjPcQQbR//37NmzdP69atU8OGDdW+fXulpaW5x6ZOnaru3bvbL4pKl9RE0lJJa0Mh9/jkyZN1QvXqGn755Woj6WlJBc/8yeOShoe/bizpW0kFzy7wo6QsSWsk1a1bV5s3b1Y/z9NYSceEH79d0vhQSBkZGXr22Wf1i1/8wj23kee511xWpE1du3Y95J8NSJbP74N4KYaem/jiPUTQHGmdzP3RBbfPP19iDYzdfncYdTCxLt4FgthzU6G8EhcAJCLruZgzZ45ef/11d2/HEZFemdzcXNcr00Fy92vWrHHnH330Uf2Ym6tMSeOiemTs/qFwr0lOTo5y8/L0saRZ9v2KfH/rdXkx/PWgQYPcvfXAZIW/X1b42IwaNcp9X+t5SU9Pdz05c8M9OtZjE90jY/crV67U+++/rwkTJrh761WNPA4Empdi6LnxjmrH8x9++KHU63gPkSqzl2wTx8Vpae5c/0MU+P7v//5vmaZUH04dDDUwSDXbDqPnxoZrEXD2m+hTTz2lV199VatWrVLVqlXVpEkT3Xrrrbrlllv8bh7gi5JqZSK9Mg8++GBhj03RXhmrdXlX0rr9+9VMUuVwj0xakR4Zq3Mx1suSnZ3tXtd6Yd4tpg7GemWs1sV6Vrp06XLIOhg77tDB+nYAFEW4SQEPPfSQxo4dq9GjR6tVq1auKOuzzz7TDz/84HfTgLgqqVjWztsQkAWb/lHhxQLK7zxPeyTNe+YZ9xoWetKK+YfTwslt9mtk7dpavXWr8oop8LXgkpmRUfh9bdjIvq+FJhtKMva4BZvo4SKCC3B0CDfxlJsrLV0qNWliA+Jx+zZ/+tOfdPfdd2vt2rWqXNl+hyxw/fXXq3r16lq8eLH+53/+RzfccEPhYy1atDjgNfLy8nTvvfdq4sSJLvxYCHruued0/vnnx63dQLx7ZiJBIsLqUqwH5fjjjy+xV2aEJCtGfGr7dv1fuDenpF4ZCygPDR7senkO1SNjytorA+DoUFBcVrt2FdyiZ87v3VtwLi/v4Guff1466STpkksK7seNKzi/Z0/xr5uf/9O5ffsOq2kWWuw30bfeeqvw3MaNGzV9+nT1799fDRo00D/+8Q9t2rSpxNe47777NGXKFL322mtatGiRGjdurM6dO2vLli2H1RYgERyqEPjNN990Q0kLi+mVsX8U50n6VHIhyELKbeFAo6K9MpmZ+s1vflOmAt+ivTI9e/Z09wQbIA68FHPEBcWRIsGNG38698gjBeduueXAa6tUObi4MBQquO/V68Br69QpOL9kyU/nxo077D/XnXfe6V155ZWFx88884x3yimnePn5+d4XX3zhnXHGGV6FChW8s846y7v99tu9GTNmFF67c+dOr2LFit5f/vKXwnN79+71GjVq5D355JPumIJiJJqSCmpLKgS2VX+nRe2/ZI8vkrz8GK3iS4EvEF8UFPutuHUR47xWohUH2xCS/WZqv0Fa8XDfvn0VCoXUrFkzLVmyRAsXLtRHH32kDz74QNdee617/OWXX9Z3332nffv2qV27doWvV7FiRbVu3VpfffVVXNsNxGPIaWturk4vMuRkPTJdrAfH85S7aZNbDK/7pk26TNLoEmplrFemefPm1MkAycZLMUfcc7NzZ8EtP/+nc3l5Bef27Dnw2m++8bwKFQ7subEpo3a+6GtHXnf//p/O7d17RH+2c88913vssce8zz77zPXSrF69usRr//znP7v3Yfny5d6///1v9/XKlSsPuOb666/3+vXr576m5waJ4lB7NM1s08bbI3kvljA9+9Jwr8zgwYPplQGSCIv4xcOxxxbcwkWCTqVKBeeiinidpk0LamwiY+l2P3ZswfmiWxJEXrdC1F9FxYpH1ESb1m09NuPHj1enTp1cPUBJrDfH7Nq1S6eeeqoqVarkenUirCfn008/LbwOSIRF9YrOclol6f3wvW1HYGZ/8YWrp2lYwoJ5X4e/tsLestbKUCcDJBkvxZTrIn45OdblUXBfDrZu3epVq1bNq1Spkjdx4sTC8926dfOeffZZ7+OPP3a9M/ab5wUXXOA1bdrU27dvn7tm0KBBrsbmnXfecTU6ffr08WrXru1t2bLFPU7PDRJhA8rIz2FpG0fWlrwLa9d2i+wdasE8Q68MkByouUkUNv07jlPAi7INxbp16+ZmSdk08Aib9WS/BY8cOdJtOGazpy655BI3ffWYYwp+BB5//HHl5+frpptu0o4dO9xU8HfffVe1a9cut/YjtZW2qN4t3bqp6Y036uTlyw+59oz1wLTu00fzs7M13hbbO8T0bGplgOBhV/CA7Wh96aWX6swzz9Tvf/97X75/EN5D+LOoXlZWlivaLbqonk3DfkPSehuxlXSGpB3hoai0EnbOtn2UbBmDokXHNlRbtBAYQPB2BafnJiBstWGrT7Db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J1q1apV2796tunXr6pxzztHJJ58cnxYi4U2dOlWDBg1yG2RaV+DC8L5R/69vX509frzfzQMApJgyh5uPPvrIrTT797//Xfv27XNzzatWraotW7a4wHPKKafotttu0x133KHq1avHt9VIqGDTvXt32XJJtvN3s/AiffUlXfrqqxp77bUs0gcASLyam+uuu049evRQVlaW3nvvPe3YsUPff/+9+03dem+WLl2q+++/X7Nnz1bTpk01a9as+LccCTEUZT02Fmz6S1ol6T1JAyQ9JOn7UEiDBw921wEAkFA9N1dffbWmTJmiihVt+8ODWa+N3fr06aMvv/zS1V0g+KzGxgKu9diMCw9FKXw/WtLbnqecnBx3HYv3AQASKtzcfrvt31w2zZo1czcEXyTENokKNtE/WI3De0gRdgEACT0V3HpobEiqqK1bt7rHkDpsfyizVFJ+kcd+lLSsyHUAACRkuFm5cmWxNRRWVLxmjf2ejlRhG1/azt5rQyE9EhVwLNhYX5+dz8zMdNcBAJBws6Xeeuutwq/fffddN1sqwsKOFRNbwTFSh22EaTPobLbUg6GQxnmeG4paFg42ZtSoUez8DQAoVyHPprqUQYUKBZ08oVDIzY6JZoXGFmyeeeYZXXPNNQrKluk4/HVuIqzHxoIN08ABAOX9+V3mnpv8/IJBB1us79NPP1WdOnWOvqVIfnfdpa4nnaQuX3yheYsWueJhq7GxoSh6bAAACd1zExT03MSQbYp51lkFX3/+udSihd8tAgAE1OF8fpepoHjixIll/ua2romtZowUcPrp0quvSkOGEGwAAAmjTOHmhRde0BlnnKEnn3xSX3311UGPW4qaMWOGevXqpXPPPbfYqeIIoGOOkfr0kZ55xu+WAABweDU3c+fOdbOl/vCHP2j48OE69thjVb9+fVWpUkU//PCD1q9f72pw+vbtqyVLlrjHEHA2msmO3wCAINTcbN68WR9++KHbFfw///mPCzW2K7jdIjOqEhk1NzEwd650zz3SY49Jl13md2sAAClgezxmS0UMHTpUN998s66//vqjaSOS2ciR0mef2Rxwwg0AIOEcdleLJaZOnTqpSZMmeuyxx7R27dr4tAyJ609/spQr3X+/3y0BACA2U8E3bdqkP//5z3rttdfcLuAWdqw3p0uXLiXuHJ4oGJY6fLYCte3szRo2AIDATAUv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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "from scipy.integrate import odeint\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# function that returns dy/dt\n", + "def model(y,t):\n", + " dydt = -y + 1.0\n", + " return dydt\n", + "\n", + "# initial condition\n", + "y0 = 0\n", + "\n", + "# time points\n", + "t = np.linspace(0,5)\n", + "\n", + "# solve ODE\n", + "y = odeint(model,y0,t)\n", + "ySol = 1-np.exp(-t)\n", + "# plot results\n", + "plt.plot(t,y,'ok', label='ODE')\n", + "plt.plot(t,ySol, '.:r', label='ySol')\n", + "plt.legend()\n", + "plt.xlabel('time')\n", + "plt.ylabel('y(t)')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problem 2\n", + "$$5\\frac{dy}{dt}=-y(t)+u(t)$$\n", + "\n", + "with, \n", + "$$y(0)=1$$\n", + "\n", + "and $u$ step at $t=2$" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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IsGdTB6RY+npMfsaMgDy0ItcXuC//fabXZe13LYd7/UnsbGx6pOKfGrxNzIsJP9Bba/nlStX1Gwwf72eJ0+eVDlAvnI9JbdbAgMZUvj999/VNbMl/x9DQkLsrqEML0jemq9cw3s9R0ekt0H4ynVMSf5uJiYm+sX1u9vz84dr99hjj6khPmm3UR555BGVH2ocm34NPZJqTZZ58+apWUIzZ8607N+/39KjRw9LRESE5cyZMxZ/MGDAAMvq1astR48etaxfv97SuHFjS548edTMFF+dubBz505V5L/JuHHj1PHx48fV98eMGaOu3w8//GDZvXu3mjFVokQJS0JCgsXXn598b+DAgWomhlzPX3/91VK1alU1k+PatWsWX9CzZ09LeHi4ek1GR0dbS3x8vPWcV155xVK0aFHL77//btm2bZuldu3aqviKez3Hw4cPW0aOHKmem1xHea2WLFnSUr9+fYsvePPNN9WMNmm7/B+T20FBQZYVK1b4xfW72/Pz9WuXmpQz28y+hgyAPOizzz5TFzs0NFRNi9+0aZPFX7Rt29ZSsGBB9dwKFSqkbst/Yl+1atUqFRikLDI93JgKP3ToUEv+/PlVYPvYY49ZDh48aPGH5ydvoE2aNLHkzZtXTVMtVqyYpXv37j4VrDt6blK+/vpr6zkSrL766qtq6nGWLFksrVu3VgGEvzzHqKgo9YaZK1cu9RotVaqUZdCgQZaYmBiLL3jppZfUa0/+pshrUf6PGcGPP1y/uz0/X792zgZAZl/DIPnHM31NRERERN6BOUBEREQUcBgAERERUcBhAEREREQBhwEQERERBRwGQERERBRwGAARERFRwGEARERERAGHARAREREFHAZAROQ3ZLf6oKCgOzZYJCJKiStBE5HPatiwIapUqYLx48er27K79MWLF9VO0xIIERGlJmOq3yEi8jGhoaEoUKCA2c0gIh/AITAi8kmdO3fGmjVrMGHCBNXbI2XmzJl2Q2ByOyIiAkuWLEHZsmWRJUsWPPvss4iPj8esWbNQvHhx5MyZE6+//jpu3bplve/ExEQMHDgQhQoVQtasWVGzZk01vEZE/oM9QETkkyTw+fvvv1GxYkWMHDlS1e3bt++O8yTYmThxIubNm4erV6/i6aefRuvWrVVgtHTpUvzzzz945plnUKdOHbRt21b9TO/evbF//371M5GRkVi0aBGeeOIJ7NmzB6VLl/b4cyUi92MAREQ+KTw8XA15Sa+OMez1119/3XHejRs3MGXKFDzwwAPqtvQAffPNNzh79iyyZcuG8uXLo1GjRli1apUKgKKiovD111+rrxL8COkNWr58uaofNWqUh58pEaUHBkBE5NckQDKCHyEJ0jL0JcGPbd25c+fUsfTyyHBYmTJl7O5HhsVy587twZYTUXpiAEREfi0kJMTutuQIOapLSkpSx7GxsQgODsb27dvVV1u2QRMR+TYGQETks2QIzDZ52R0efvhhdZ/SI1SvXj233jcReQ/OAiMinyVDWZs3b8axY8dw4cIFay/O/ZChrw4dOqBjx474/vvvcfToUWzZsgWjR4/Gzz//7JZ2E5H5GAARkc+S5GQZppJE5rx586rEZXeQZGcJgAYMGKCmz7dq1Qpbt25F0aJF3XL/RGQ+rgRNREREAYc9QERERBRwGAARERFRwGEARERERAGHARAREREFHAZAREREFHAYABEREVHAYQBEREREAYcBEBEREQUcBkBEREQUcBgAERERUcBhAEREREQINP8PO6oJttpHKHoAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# function that returns dy/dt\n", + "def model(y,t):\n", + " # u steps from 0 to 2 at t=10\n", + " if t<10.0:\n", + " u = 0\n", + " else:\n", + " u = 2\n", + " dydt = (-y + u)/5.0\n", + " return dydt\n", + "\n", + "# initial condition\n", + "y0 = 1\n", + "\n", + "# time points\n", + "n = 40\n", + "t = np.linspace(0,n-1,n)\n", + "# solve ODE\n", + "y = odeint(model,y0,t)\n", + "\n", + "# plot results\n", + "plt.plot(t,y,'r-',label='Output (y(t))')\n", + "plt.plot([0,10,10,40],[0,0,2,2],'b:',label='Input (u(t))')\n", + "plt.ylabel('values')\n", + "plt.xlabel('time')\n", + "plt.legend(loc='best')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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iIhMSQKf//u//0PDhg3x8ssvq2N79+695jwJdqZPn44lS5bgypUruPvuu9GrVy8VGK1atQp///037rnnHtx8883o3bu3us6TTz6Jffv2qetERkZi2bJl6Ny5M3bv3o3atWsX+mMlIs9jAEREphQWFqaGvKRXRx/2+uuvv645LyUlBTNnzkTNmjXVZekBWrx4Mc6cOYMSJUqgfv36aN++PdavX68CoGPHjmHBggXqpwQ/QnqDVq9erY5PmjSpkB8pEXkDAyAisjQJkPTgR0iCtAx9SfDjeuzs2bNqX3p5ZDisTp06brcjw2KlS5cuxJYTkTcxACIiSytatKjbZckRyuxYWlqa2o+NjUVAQAB27NihfrpyDZqIyNwYABGRackQmGvysic0a9ZM3ab0CLVp08ajt01EvoOzwIjItGQoa+vWrThy5AjOnz/v7MUpCBn6evDBB9GvXz98+eWXOHz4MLZt24bJkydj5cqVHmk3ERmPARARmZYkJ8swlSQylylTRiUue4IkO0sANGLECDV9vmfPnvj1119RpUoVj9w+ERmPK0ETERGR7bAHiIiIiGyHARARERHZDgMgIiIish0GQERERGQ7DICIiIjIdhgAERERke0wACIiIiLbYQBEREREtsMAiIiIiGyHARARERHZDgMgIiIigt38P5Y+F6gLAC+0AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Define the step function u(t)\n", + "def u(t):\n", + " return 0 if t < 10.0 else 2 # Step from 0 to 2 at t = 10\n", + "\n", + "# function that returns dy/dt\n", + "def model(y,t):\n", + " dydt = (-y + u(t))/5.0\n", + " return dydt\n", + "\n", + "# initial condition\n", + "y0 = 1\n", + "\n", + "# time points\n", + "n = 20\n", + "t = np.linspace(0,n-1,n)\n", + "\n", + "# solve ODE\n", + "y = odeint(model,y0,t)\n", + "# Compute u(t) for all values in t\n", + "u_values = np.array([u(ti) for ti in t]) # Evaluate u at each time point\n", + "\n", + "\n", + "# plot results\n", + "plt.plot(t,y,'.:r',label='Output (y(t))')\n", + "plt.plot(t, u_values, 'g-', linewidth=2, label=\"u(t)\")\n", + "plt.axvline(x=10, color='r', linestyle='--', label=\"Step at t=10\")\n", + "plt.ylabel('values')\n", + "plt.xlabel('time')\n", + "plt.legend(loc='best')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/main.md b/main.md new file mode 100644 index 0000000..90aa5b7 --- /dev/null +++ b/main.md @@ -0,0 +1,138 @@ +# Excersices + Find a numerical solution to the following differential equations with the associated initial conditions. Expand the requested time horizon until the solution reaches a steady state. Show a plot of the states ($x(t)$ and/or $y(t)$). Report the final value of each state as $t \rightarrow \infty$. + + +## Problem 1: + +$$\frac{dy(t)}{dt} = -y(t)+1 $$ +with, +$$ y(0)=0$$ + +This equation can be solved using the separation of variables method: + +$$y(t) = 1-e^{-t}$$ + + +```python +import numpy as np +from scipy.integrate import odeint +import matplotlib.pyplot as plt + +# function that returns dy/dt +def model(y,t): + dydt = -y + 1.0 + return dydt + +# initial condition +y0 = 0 + +# time points +t = np.linspace(0,5) + +# solve ODE +y = odeint(model,y0,t) +ySol = 1-np.exp(-t) +# plot results +plt.plot(t,y,'ok', label='ODE') +plt.plot(t,ySol, '.:r', label='ySol') +plt.legend() +plt.xlabel('time') +plt.ylabel('y(t)') +plt.show() +``` + + + +![png](main_files/main_2_0.png) + + + +# Problem 2 +$$5\frac{dy}{dt}=-y(t)+u(t)$$ + +with, +$$y(0)=1$$ + +and $u$ step at $t=2$ + + +```python +# function that returns dy/dt +def model(y,t): + # u steps from 0 to 2 at t=10 + if t<10.0: + u = 0 + else: + u = 2 + dydt = (-y + u)/5.0 + return dydt + +# initial condition +y0 = 1 + +# time points +n = 40 +t = np.linspace(0,n-1,n) +# solve ODE +y = odeint(model,y0,t) + +# plot results +plt.plot(t,y,'r-',label='Output (y(t))') +plt.plot([0,10,10,40],[0,0,2,2],'b:',label='Input (u(t))') +plt.ylabel('values') +plt.xlabel('time') +plt.legend(loc='best') +plt.show() +``` + + + +![png](main_files/main_4_0.png) + + + + +```python +# Define the step function u(t) +def u(t): + return 0 if t < 10.0 else 2 # Step from 0 to 2 at t = 10 + +# function that returns dy/dt +def model(y,t): + dydt = (-y + u(t))/5.0 + return dydt + +# initial condition +y0 = 1 + +# time points +n = 20 +t = np.linspace(0,n-1,n) + +# solve ODE +y = odeint(model,y0,t) +# Compute u(t) for all values in t +u_values = np.array([u(ti) for ti in t]) # Evaluate u at each time point + + +# plot results +plt.plot(t,y,'.:r',label='Output (y(t))') +plt.plot(t, u_values, 'g-', linewidth=2, label="u(t)") +plt.axvline(x=10, color='r', linestyle='--', label="Step at t=10") +plt.ylabel('values') +plt.xlabel('time') +plt.legend(loc='best') +plt.show() + +``` + + + +![png](main_files/main_5_0.png) + + + + +```python + +``` diff --git a/main_files/main_2_0.png b/main_files/main_2_0.png new file mode 100644 index 0000000..083f1a6 Binary files /dev/null and b/main_files/main_2_0.png differ diff --git a/main_files/main_4_0.png b/main_files/main_4_0.png new file mode 100644 index 0000000..0ff07cc Binary files /dev/null and b/main_files/main_4_0.png differ diff --git a/main_files/main_5_0.png b/main_files/main_5_0.png new file mode 100644 index 0000000..e87ed47 Binary files /dev/null and b/main_files/main_5_0.png differ