{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from sympy import *\n", "import numpy as np\n", "from scipy.integrate import odeint\n", "import matplotlib.pyplot as plt\n", "init_printing()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from sympy.abc import x,t" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACYAAAAVCAYAAAAq05ytAAAABHNCSVQICAgIfAhkiAAAAkFJREFUSIntll9ojmEYxn8+i62tljiSHeHbKLIscUCK0g6ciJW1M7UTfw6W1JzMATXD4UqKtJTUarSSllLaDraWPzkQcYDNRCGSYczBfb16vZ77eb9vOeOut7f3vq77vq/nfv698A9YH/AaqC4jZj0wC+yLkfaK1FtCwrPi9ui7CfgBdDj8DvFbA9gAMAXUeMVWK/h2jqhG4DswkUo2BLwHqpyYS8pdH8A2CDvqFZwPfAbe5QgbVqIWfRexbp2LxDwEPgKFCP5MGoI2rqLLHLxN+M2Ur1u+bQH+SWGhpy3F65JvhyfsvAjNAawGmAS+Ag2ZwcwQXvQtwEXlHAGOpZ66FG+7OKc9YYdEOBLAktF3p3zVEvXASwi0K649wqkVZ8wjbBWhL+MvAl+AF/zemaL4Q5GiyQ5uinDA1vcrD1ykJHcz/uvy7874N8l/JVJwDJv+hTnCJrHuu/YcmAYq9L0TvyvrhF1zclVgnbiXIwrgLbZzXRtUsVXYKJ9g01gMcJeKO+zkWiv8Qo6oAnbkPE07snZf7zXAYWA5cAZ4HOBOAW8IH5xgHYU/l0bW6oF5pDobE9YMdGJTe9xJmNwUS4AVAXyx3h9yhG3U+1aMlOy05NmVkzS5Y/cHsC3CJoBT2Pm1J8C7jC38ugD2ywrAJyW8kSMKYAG2zUcd/ADwCNtQs8CJDF6LbZCrJdQq2zpVtHEOsQcVu/mvKpJVYpfwYJlxVcBLoD8LuLd5mTYD3MGOl3HgW4lxK7GjqAf7bfpvc7afOyyXQtKHdjQAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle V{\\left(t \\right)}$" ], "text/plain": [ "V(t)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f = Function(\"V\")(t);f" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADcAAAAhCAYAAAB9VDPAAAAABHNCSVQICAgIfAhkiAAAA1hJREFUWIXtmE1IFVEUx3+pWKJhUVBIQlA8M7A0TWqRBgUhUUSUUbYL3GQtJArblFFkZYuCoIwkJJAgqJA+sOjTFolR5kKKgjLNKOiTsqR8Le4ZHaeZe2f0PQ15fxhGz/98Xe+dc+4RYuhHGdA+2kn4RVxA/fnAk2gkEg2M6cXpkAHcAn4CbUA+8ANYMZpJRQIh4AtwDJgNrAReA2FgWhTj1gHvgeQANrmovLb4NbgB1DtktUC3xmajBDnhw/9J0T1sk+UBfUC5h0252Gxy4S5KbimmwOniZKFDXgNc09jNFbt7Bv85wB+g05FMI/AZSPKwOyf+M1y4fOF2G2KzGvgNJDrkj4CDGrt4oAf4ZPDfJIkU22Qh1K7VaOzagW94F8F21KcTrwu+SoJPtMkKRbZBZwi0iN4MD36z8Dcd8iqRL3OxOSSc27PZprdHZNqCl4aqkKeAWQwuJm5Hwo4zolfkwqUAXUAvMMfBtaBOi1shKQbOit8HwF7bk27TWy461YYcKQE6UEfsDrAP+I65L26XADtdOGsHqhzyZNTC2jR+S8W2VKOTKjrNhhyHjKUSoM4hDwG/gDf8uzshsWnU+LWqa54hfg/wzmeugTFZknjskF8V+ToXm8XCndf4bUYd5/GG+F2oUxA1dKC+2QT53SpQXjuTLfxlDz4BtSN+rn0fURV1ELyqkd/HjgaRZaL+0i9QRzLkkVCa6Dd58POErzUsLA7VTl7aBQDjhvnY0SrvLGAHquIeBZ57JNUNfMC7EmfL23nUnciQXPp32M9UEHSGsxZXBFSgjul+jb51q5mKusc6MUXeXw1xF8n7tr80FU4zcM+sBq4Y9K3qZz1rfcSw7qVbXbgC4TqBI6j+tt5Frx5VTNJdOE80A7vk57tApUE/DtUTw8B1nzESUSX8oQdfBjxDFaowcMDBp6KKziVdEN0M18vgHdE13aGgQvzmDMF2m9gu8VIwzXDWzTsfmI7qaZHEBInXENAuCXgLXNApmWa4NaiP2lkdI4kC1AU4yLCaifoOZ3op+JnhKoH7AYKOOqxWYA2QrQ4+l4G+kY251/xXsBYXRg159rtbIbCAgcVlAU9HLrXIwc8M9wo4LrqTRj7F4cE0w5WgGmkf/v4JFEMMMcQwdvAXryzy32/XVwcAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\frac{d}{d t} V{\\left(t \\right)}$" ], "text/plain": [ "d \n", "──(V(t))\n", "dt " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd = Derivative(f,t); fd\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACgAAAAWCAYAAACyjt6wAAAABHNCSVQICAgIfAhkiAAAAgdJREFUSInt1s2LjVEcB/CPl6FhEjszsaEGg9wpZiw02czCQpGXEgsL/4CSbJBZCouJUhJN2bIQRTakRIqJvDXdvG4syDujmbE4547nnnlm5pa5t9R86+np9z3f5/y+5+V3zsN/hB0YwqkKtKej9mhVHSVoiUlvjaNrxQDeoqHaprKYhh/4OI7utjCQ7VV3lIP7MfmCUdp3xfYbNXOU4Gw0sCGnrQHv0I+ltTI0NYl743tljvYgmnACz6ppaiysF2awJ+Gb8QtvMLvGnsowTzD4IOGvRn5rFXMfw5VKhK/xE9NjvFEwd706voZxE0cqEV4WDC3DTPQJy9s8ir4lfvMJ73ES9Zn2TqGw6jLcwphjceT7Y1x6HpWEaZFQXij7YifH8SJHuwp38BirsUWY8a6MpoAn+J1wX1AUDv11kW9HIzpycg1jWxzFOXzFK8waRXsXZxJuP55n4gs4n2gOCQd+CZvwGVPSBGPN4G6hYvfie45uCdrQnfD9mJGJWzN9llBIuJJmqBKDfRlD13AxRwMrhOV5mvDLM8nrhb37MNGsSbiCkSfHP6MTg8qXvxHfhG1CGMRQ5EvoiFxbhitiz0QbnCNUbTcWCYd8Ly75u5fmC4PYHON24RYaUF7pL2M/TZg7kSbX4p6wJYrCdViXaA7gg3CP9+Cwkdtip/D7Nqiy/9FJTKJm+AM3Q3VxOrDl3gAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle V_{out}$" ], "text/plain": [ "Vₒᵤₜ" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vo, r, c = symbols('V_out R C'); vo" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle C R \\frac{d}{d t} V{\\left(t \\right)} - V_{out} + V{\\left(t \\right)}$" ], "text/plain": [ " d \n", "C⋅R⋅──(V(t)) - Vₒᵤₜ + V(t)\n", " dt " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eqn = f+r*c*fd-vo; eqn" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "from sympy.solvers.ode import dsolve" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle V{\\left(t \\right)} = V_{out} + e^{\\frac{C_{1} - t}{C R}}$" ], "text/plain": [ " C₁ - t\n", " ──────\n", " C⋅R \n", "V(t) = Vₒᵤₜ + ℯ " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dsolve (eqn, f)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# function that returns dy/dt\n", "def model(y,t,k):\n", " dydt = -k * y\n", " return dydt" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# initial condition\n", "y0 = 5\n", "\n", "# time points\n", "t = np.linspace(0,20)\n", "\n", "# solve ODEs\n", "k = 0.1\n", "y1 = odeint(model,y0,t,args=(k,))\n", "k = 0.2\n", "y2 = odeint(model,y0,t,args=(k,))\n", "k = 0.5\n", "y3 = odeint(model,y0,t,args=(k,))\n", "\n", "# plot results\n", "plt.plot(t,y1,'r-',linewidth=2,label='k=0.1')\n", "plt.plot(t,y2,'b--',linewidth=2,label='k=0.2')\n", "plt.plot(t,y3,'g:',linewidth=2,label='k=0.5')\n", "plt.xlabel('time')\n", "plt.ylabel('y(t)')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" } }, "nbformat": 4, "nbformat_minor": 2 }