{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"nbsphinx": "hidden"
},
"source": [
"# The Laplace Transform\n",
"\n",
"*This Jupyter notebook is part of a [collection of notebooks](../index.ipynb) in the bachelors module Signals and Systems, Communications Engineering, Universität Rostock. Please direct questions and suggestions to [Sascha.Spors@uni-rostock.de](mailto:Sascha.Spors@uni-rostock.de).*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Inverse Transform\n",
"\n",
"So far only the [(forward) Laplace transform](definition.ipynb) has been introduced. The Laplace transform features also an [inverse transform](https://en.wikipedia.org/wiki/Inverse_Laplace_transform). The inverse Laplace transform maps a complex-valued Laplace transform $X(s) \\in \\mathbb{C}$ with complex-valued independent variable $s \\in \\mathbb{C}$ into the complex-valued signal $x(t) \\in \\mathbb{C}$ with real-valued independent variable $t \\in \\mathbb{R}$. It can be shown that the inverse Laplace transform $x(t) = \\mathcal{L}^{-1} \\{ X(s) \\}$ is uniquely determined for most practically relevant signals. This section discusses two different techniques for the computation of the inverse Laplace transform."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Integral Formula\n",
"\n",
"Using results from complex analysis, the inverse Laplace transform is given by the following complex line integral\n",
"\n",
"\\begin{equation}\n",
"x(t) = \\frac{1}{2 \\pi j} \\int_{\\sigma - j \\infty}^{\\sigma + j \\infty} X(s) \\, e^{s t} \\; ds\n",
"\\end{equation}\n",
"\n",
"where $X(s) = \\mathcal{L} \\{ x(t) \\}$ is assumed to be analytic in its simply connected region of convergence (ROC). The notation $\\sigma \\mp j \\infty$ for the lower/upper integration limit denotes an arbitrary integration path which lies in the ROC and ranges from $\\Im \\{s\\} = - \\infty$ to $\\Im \\{s\\} = + \\infty$. The integration path can be chosen parallel to the imaginary axis but also all other paths in the ROC are possible. This results from [Cauchy's integral theorem](https://en.wikipedia.org/wiki/Cauchy's_integral_theorem). Two equivalent paths are shown in the following illustration\n",
"\n",
"![Possible integration paths for the inverse Laplace transform](integration_paths.png)\n",
"\n",
"where the blue line indicates the integration path and the gray area the ROC."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Rational Laplace Transforms\n",
"\n",
"Computing the inverse Laplace transform by above integral formula can be challenging. The [Cauchy residue theorem](https://en.wikipedia.org/wiki/Residue_theorem) provides a practically tractable solution for Laplace transforms $X(s) = \\mathcal{L} \\{ x(t) \\}$ which are given as rational functions. It states that the value of a line integral of an holomorphic function over a closed contour is given by summing up its [residues](https://en.wikipedia.org/wiki/Residue_theorem). The residue is the value of the line integral for a path enclosing a singularity. Consequently, the inverse Laplace transform of a rational Laplace transform can be computed by summing up the individual contributions from its poles. This procedure is detailed in the following."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Basic Procedure\n",
"\n",
"A rational Laplace transform $X(s)$ can be written in terms of its numerator and denominator polynomial\n",
"\n",
"\\begin{equation}\n",
"X(s) = \\frac{\\sum_{m=0}^{M} \\beta_m s^m}{\\sum_{n=0}^{N} \\alpha_n s^n}\n",
"\\end{equation}\n",
"\n",
"where $M$, $N$ denote the order of the numerator and denominator polynomial and $\\beta_m$, $\\alpha_n$ their coefficients, respectively. It is assumed that $\\alpha_N \\neq 0$ and that $M \\leq N$. If $M > N$, $X(s)$ can be decomposed by [polynomial division](https://en.wikipedia.org/wiki/Polynomial_long_division) into a sum of powers of $s$ and a rational function fulfilling $M \\leq N$. \n",
"\n",
"Now a [partial fraction decomposition](https://en.wikipedia.org/wiki/Partial_fraction_decomposition) of $X(s)$ is performed resulting in\n",
"\n",
"\\begin{equation}\n",
"X(s) = A_0 + \\sum_{\\mu = 1}^{L} \\sum_{\\nu = 1}^{R_\\mu} \\frac{A_{\\mu \\nu}}{(s - s_{\\infty \\mu})^\\nu}\n",
"\\end{equation}\n",
"\n",
"where $s_{\\infty \\mu}$ denotes the $\\mu$-th unique pole of $X(s)$, $R_\\mu$ its degree and $L$ the total number of different poles $\\mu = 1 \\dots L$. Using the known Laplace transforms (cf. [example for the modulation theorem](theorems.ipynb#Modulation-Theorem) or [table of selected transforms](table_theorems_transforms.ipynb#Selected-Transforms))\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{L} \\{ t^n e^{-s_0 t} \\epsilon(t) \\} = \\frac{n!}{(s + s_0)^{n+1}} \\qquad \\text{for } \\Re \\{ s \\} > \\Re \\{ - s_0 \\}\n",
"\\end{equation}\n",
"\n",
"and $\\mathcal{L} \\{ \\delta(t) \\} = 1$, together with the linearity of the Laplace transform yields a generic result for the inverse Laplace transform $x(t) = \\mathcal{L}^{-1} \\{ X(s) \\}$ of a right-sided signal\n",
"\n",
"\\begin{equation}\n",
"x(t) = A_0 \\cdot \\delta(t) + \\epsilon(t) \\sum_{\\mu = 1}^{L} e^{s_{\\infty \\mu} t} \\sum_{\\nu = 1}^{R_\\mu} \\frac{A_{\\mu \\nu} \\, t^{\\mu - 1}}{(\\nu -1)!}\n",
"\\end{equation}\n",
"\n",
"It remains to compute the coefficients $A_0$ and $A_{\\mu \\nu}$ of the partial fraction decomposition. The constant coefficient $A_0$ is given as\n",
"\n",
"\\begin{equation}\n",
"A_0 = \\lim_{s \\to \\infty} X(s)\n",
"\\end{equation}\n",
"\n",
"For a pole $s_{\\infty \\mu}$ with degree $R_\\mu = 1$, the coefficient $A_{\\mu 1}$ reads\n",
"\n",
"\\begin{equation}\n",
"A_{\\mu 1} = \\lim_{s \\to s_{\\infty \\mu}} \\left( X(s) \\cdot (s - s_{\\infty \\mu}) \\right)\n",
"\\end{equation}\n",
"\n",
"For a pole $s_{\\infty \\mu}$ of degree $R_\\mu > 1$, the coefficients $A_{\\mu \\nu}$ are given as\n",
"\n",
"\\begin{equation}\n",
"A_{\\mu \\nu} = \\frac{1}{(R_\\mu - \\nu)!} \\lim_{s \\to s_{\\infty \\mu}} \\frac{d^{R_\\mu - \\nu}}{d s^{R_\\mu - \\nu}} \\left( X(s) \\cdot (s - s_{\\infty \\mu})^{R_\\mu} \\right)\n",
"\\end{equation}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Example - Inverse transform of a rational Laplace transform\n",
"\n",
"The inverse transform $x(t) = \\mathcal{L}^{-1} \\{ X(s) \\}$ of \n",
"\n",
"\\begin{equation}\n",
"X(s) = \\frac{1}{(s+1) (s+2)^2} \\qquad \\text{for } \\Re \\{s \\} > -1\n",
"\\end{equation}\n",
"\n",
"is computed using the procedure outline above. First the function $X(s)$ is defined in `SymPy`"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\frac{1}{\\left(s + 1\\right) \\left(s + 2\\right)^{2}}$"
],
"text/plain": [
" 1 \n",
"────────────────\n",
" 2\n",
"(s + 1)⋅(s + 2) "
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import sympy as sym\n",
"sym.init_printing()\n",
"\n",
"s = sym.symbols('s', complex=True)\n",
"t = sym.symbols('t', real=True)\n",
"\n",
"X = 1/((s+1)*(s+2)**2)\n",
"X"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Since $X(s)$ has two real-values poles, $x_{\\infty 1} = -1$ with degree $R_1 = 1$ and $x_{\\infty 2} = -2$ with degree $R_2 = 2$, the following partial fraction decomposition is chosen as ansatz in accordance with above given formula"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle A_{0} + \\frac{A_{11}}{s + 1} + \\frac{A_{21}}{s + 2} + \\frac{A_{22}}{\\left(s + 2\\right)^{2}}$"
],
"text/plain": [
" A_{11} A_{21} A_{22} \n",
"A₀ + ────── + ────── + ────────\n",
" s + 1 s + 2 2\n",
" (s + 2) "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A0, A11, A21, A22 = sym.symbols('A_0 A_{11} A_{21} A_{22}', real=True)\n",
"Xp = A0 + A11/(s+1) + A21/(s+2) + A22/(s+2)**2\n",
"Xp"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The four real-valued constants $A_0$, $A_{11}$, $A_{21}$ and $A_{22}$ of the partial fraction decomposition will be determined later. First a look is taken at the inverse Laplace transforms of the individual summands composed from the constant and the individual poles. For the constant we get"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAADsAAAAVCAYAAAD4g5b1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADpklEQVRYCdWX7VEbMRCGD8YFeJIOnA4cUgG4g0AqSNyB+Wn+ZUgHkAoy0AGkAggd4A4gdOC8j6K96M4r6TzOj2RndPp6d7WfurtmvV43/1NbLpeTIfp6uFEzkM7OziaCXql/O5AlC4uyTgU4UEPuvdpc6yv1WdL+QptgirgoYCL8e7UvJnDfBgP6K2GmA3BDIBhGw3HHai9qzyVGFNf+a/XXJZztCXfLWP0nW9sjJWokBg7CWJj3avjavmQg66N6jKyScGOBvqt3syru/xBmpnEn6pqzfqj+ZWhkZ2IIHhUTabcr3UnA1y2EnAt7UcAfaQ+9vOyAD/6maqyMA0gzj+HlXelSAqgnMmYInQgLT44IxkqYjUyJfPCPi8YKgLee1GPoUzyJtZ1I8lCKmuLCKzpP+zjEHJ07l8iWahn+k9ptfKrD5vEEO/BV7sQh61H5D8KSXihJ/RKZHLEXLpsUIDnwohvOIgBTrSHrTn17A2sOwT/LGhuF3QTo74cZ+yZZ22oomdyMdgs3mhMN0nmstpGCUfiB+o16FR4DbtUT+SP1JYc9gskaq81jCbCoatqYMm4aCxsuAeFId14RvEdb0hw+lE6d9U1zlGXvQc0jIuddPIbFyByvYeCfuMZKMV7evJRTj1r6cniHhCNi1HZIH/V4+kYt9TbOIBKWIchIx8w94lxztLdPOpfqFR7OGW8YK2WCMT1FYWi0xkvZiyyGHIKBhMMojMVhZhARTDMlYCO+FpkWmw4kG13RJy23FGLj4LB9myX9uYT0C9y2UdwiHNYwSAMONaPCuh5EY8okKsXwnkdC1GPNUFIwBCDhsyFRRX57gSVnGYYe/ueOsQLCzBdHjjCgf3B/brwoGRwjufB5RKQ/exvJGk7EoR516lXnWP33seixao0VEIG890ovbwxoIpZhiTggdQTZEiIBk2SgGB8CtXoj8u/gcSgYwbrkcBZlA75PfGY+jCKI95OlRPstaRzCWL2ZsjiFuuTGzUWNw9vUBqtGiXD5QdzY/ATUiBsb/Tzi/AvJCR/76nPlh97zv/Ivq3/Hn2rT9D9T87XaoH/PlM8bS86jWke+h/PW0AF+9to09ty2xRp1Z1Fv5GHG1+rbyG4hy4Ny27s3uQfurRF9+JtBv3g9Zncqw4JAbfJRwYcDaZtLcVdGaVGyeL1Uf/BTGeLhHiLNw/t+lG7uMpbAzhfTLrIyvNR37Tu6z8pH0Z+M8PL8X12L9bcYop+wC/Ap9hfN6TcYhEeTawAAAABJRU5ErkJggg==\n",
"text/latex": [
"$\\displaystyle A_{0} \\delta\\left(t\\right)$"
],
"text/plain": [
"A₀⋅δ(t)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x0 = sym.inverse_laplace_transform(Xp.args[0], s, t)\n",
"x0"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the first pole $s_{\\infty 1}$ with degree zero we get"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAGIAAAAYCAYAAAABHCipAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAErklEQVRoBe2Z0VEbMRCGDUMBTujAdOAkFQQ6AFJB4g5geIK3TNIBdMBAB5AKGOgAOoC4A/J/svbmTifpZOObmBDNyHu32l2tdle7Onnt+fl58FbaycnJrda6J/iwamteeyuOkPGHMv5vwbVVcwL6rK+iUj3ptC25dz3JfrHYf94R2gEj9R+yFH3As/r4xZaLCJDcUQTdQkXpSE0l/fj4eKR+W0K7ijTorr7bl26SfVAqX3Tb0Nd1mWdHXMi1vURSK2T6QaD7dZdoReuBOrumeOeIdldyNwUvu+QzLjqnh+A3oy8q1mJgIhyBkL9a7DQ/BnVpBn0ybSJadzoSpD5cCL7L0A80fuXpzvRMcb8V3Orgge6X6D7E6EyOxnb03Dit6Z1T3GfB6UaMOYLbEQ5v74qJnNsQGKHvDaW5KbjoM0+rdoP4MRxraBRuvVsNOUOw3qfq0I3VG7TBxPCdBrj6K0FA7XiqI/0zfPBPOlOTlICQbsZnIa+tEdU3XukjQVuLQ2FsPRyos86wdRXgffE754WM/p2geRDNNBz3fPAPs44QAUo8CqL4oxfUpVg43yq8E3lbWgc5+VwwNIpzjvBVDdGzBdz71AJEQ8puODVCy47I1Q7497tS06Emm3jhNmFSsYgSc6O8ATCMOZ5oRo/QeMWyxUtqsXU0+Px8GPSwMTAYfPTvtu5g2L0S7ZXzjEAyMT7z4UwCl/RGjb0R/ClYb/DvJB3hhVG8rJlC2eJlxItAPyfRyzWEy8uCpA0cExpqkSliPHZyCQ3KvDRb9+yt+Yuz0LfRpDOyrgVx8LZgrqbdQ5N0hAYxRj2KLCKjqUm0eH9fndNK6wRRMI5cHA9/vTgSXfWA0OtS2xcv7Ujz1gVjRAp2zhGsOVaETQ4OqK/F8HUI/yjqCE1O4eLEUPe2pSQmbzTRET0YjDb3+Iytiqyhnx/0pvqV3sNo9SxLAehO9O6ZND2zBhzx3XAJiE2miTHQ2CRXH6DB0cOWI7wSA8HWdhKOq9rWjhAer98JonyrdY17Bqe0aMMc2pK3LITmsqAJdxw7m5Y7Dc0oEr9etu3yBJVDO2euRyj4okwZA+/B2FezI2Zf8lNyw/RBPeKjLhftyCKtmDN5rzeXISSj2s3eOXUanuF/ajhChDDztZdqKJaaOMVTisfJpKJWk17RndYinBMhuayn0fxcBFvJ4QCdWxnCC2zUBy83RstcD5UjRAgR1wC57UgEDDwtj8tsfEy5KDKhmod6QZ0KI9ZIlgHJ4S64mE/P6OGuHQqEo9enBJ0zMGNebutr3vNxsLnb8ESccW0rVfcfnhBBRCQnKDMUDqPAlUSNiclCyXL3O4IYgiMdDUfUT24z7HJ/v0oc6ZhA5GjeuhPKTHeuMWwXa9jmVHLd8Vgwle6x6aToCrx+XZt75hpY/T5F0zWe4ltlPOtVHy+io/j4a8HZq0pNMZf+xxVZgB286K5l18A/KLoGhzDX/La21DUWLduQOyq3HbvGc7Jfw5jWZx+iFO+i5m1C6nKfCRtFXB1EEoYCyXrRNd4h/jUM8zFIrWh9e2WU5xBS7aSl7IjMZG9myEc4/9ekinJlC9Fwc3HpA9Th/wA/XdWRrDU6FwAAAABJRU5ErkJggg==\n",
"text/latex": [
"$\\displaystyle A_{11} e^{- t} \\theta\\left(t\\right)$"
],
"text/plain": [
" -t \n",
"A_{11}⋅ℯ ⋅θ(t)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x1 = sym.inverse_laplace_transform(Xp.args[1], s, t)\n",
"x1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the second pole $s_{\\infty 2}$ with degree two we get two contributions"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAGoAAAAYCAYAAAASy2hdAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFZUlEQVRoBe2Z7XETMRCGL0wKCNCB6cBABZAOQqggdgcw+ZX8Y6CDpINM0kGgAiAdJB0A7iC8j9g9dLqTfL5xHOOwM+eVVrvSar+kO2/d3t5Wmw7Hx8c72uOh7XNk+ED0Wbx39b+r/0b4JqavQ3t7HZRYgQ4fZfypr6P2ido45VlEw5njdXQSOj5yRTccT+SA19EeP6o9Em0c0Ri/ivpr1XwojiKbvnVZXs7CYTiOp6KtJ3Zgl9ggmub1sluU7+LrXfpM+Fz4eXGVNRyUzqeJWjjuRnTPoPdqk1EfhC8S3qV0Ne871rRn3pwEz56eT864SEadS+hOIs2VWQXW5tnDnp404KB/nqcDBtdD1vXOPPGy3lPhXkEgvqCH8MT12epz67OFcFSl9pYL3wfW+hg0lKk560/F27i9qU/p4SLBza6+8alNNlEtHpfm1Pil8Z2qzeXju3B9IemSNb4vwmlgBHafR51dtVN9ufC8En3Wt/TtSoBoIB1Jy8aEoq8MtDblCn0WAvSWACUuyFq/EmYvdTapjwPYo5fFsI76foaFMqr+TA983BQbvEHg7w9yBEcOCBJ0+9nBgBzy07mlT0rAyOPOYSP/FGBQKcymT8ywOOa9HjcOWfFVD3Cox/caCMiowRmDHVJg7hLsSz49I2N+Aofzss5wHzQ55HeKjhIDSvwQRvEfNsE8xXyddcKUECIX7M9E+3Lj4MRn6nMmnEV0dQME54len2Fqe8A+caYUi4ezqeH0lEd99CqdXcjvzyt9lAp/UfQFs4p1KLEwyQyAYTwwiHb0cKMOmXPe2UPp8n025jd9MDgZGMML67hd4jFvky21c52oOXEO6+FsAp/yyR3gq3B901MfQH436yibjMPTwRUqHp7OPATbmkQ3h32o+8KUHRyXGmrIEkNk/OaVGhy9ALfLn17zF2eynwZoT8z1WZgAeC1cOnOv4ck6SoMYK44yj+hW6RMfkYExAR9vfEsznn2Ncxtr3YBEQ47AYDw4SW2A6IsDJhBX+PPW1jqUXvGyGJkLRclR2MXPwVjW2zgo3qvTY4z8qNNRWpyDkxtNHA1e8lg8Bd4paqeaHGdByD71iT4MDnTJQ/e1dsTP+sBTPZfqp9EcBlf0g+5E/xtfT232gKM+OC2DsdksMwYZm5TOJ3gIhJ2Wo0yJSriVjqLxqd0zhkkcJhrjPcQNyu0IWri6ChM1V8JsLgdBafGkNTrHf+d06eJBlWY0lQEo3eb+cGR+bW6vIhmuQA7OftTBQXbkjIV3EUyBbPqWEgf0/Yo8QPRORdLyxHnJS28pW1CIsuXOph9DqDCaw4O7UruLF9rPhqPEiDAlKwco1ppMcqnSOC7+lpabL6YTBJS6Fmj+Uia2+JdF0LrstwGmC8Ha53LDnroqEHM2ziebt4uXtW5qR4kRJspXKZ2JkMp4abZAY2MRMWzrwtBibhIolyHKnKy5OK84u9KIdpZVYM6QEJzoozZ6hs86PRZH75cZvuAAxmze1tcQk8OOV9vGxB3eU5GMaigiHgxPlrghw3kkeiOq1MfZbOS52q1oFD0L4g/fz4SR50oK4CjWvU840OIcB+yNy1Hrm1xBuTONYdsuwHZ8KQnXf+HccYPNpxUfZZfxHB0djfSc+FzWH3kfLNqenuuYtult9qtnPGSfksOmwV7bXa5elGbRRoniCwKlDyATGhkXqA/vhwqBLYZUBuyHfNXrbw4YSyDn/NJ4qOMxn+jhLxFzJIqSxjiSNOcbYi7dNbw5oH36izyXi15gNqM0htekZWXUvG9pKPiQs4uXZc6q1rtpwWtUqDoLl5JRhcX+D5kFLEMaf6/njCNevsxcCNcZ+BsSmiwTx14u7wAAAABJRU5ErkJggg==\n",
"text/latex": [
"$\\displaystyle A_{21} e^{- 2 t} \\theta\\left(t\\right)$"
],
"text/plain": [
" -2⋅t \n",
"A_{21}⋅ℯ ⋅θ(t)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x2 = sym.inverse_laplace_transform(Xp.args[2], s, t)\n",
"x2"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle A_{22} t e^{- 2 t} \\theta\\left(t\\right)$"
],
"text/plain": [
" -2⋅t \n",
"A_{22}⋅t⋅ℯ ⋅θ(t)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x3 = sym.inverse_laplace_transform(Xp.args[3], s, t)\n",
"x3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The inverse Laplace transform of $X(s)$ is now composed from the superposition of the four individual parts"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle A_{0} \\delta\\left(t\\right) + A_{11} e^{- t} \\theta\\left(t\\right) + A_{21} e^{- 2 t} \\theta\\left(t\\right) + A_{22} t e^{- 2 t} \\theta\\left(t\\right)$"
],
"text/plain": [
" -t -2⋅t -2⋅t \n",
"A₀⋅δ(t) + A_{11}⋅ℯ ⋅θ(t) + A_{21}⋅ℯ ⋅θ(t) + A_{22}⋅t⋅ℯ ⋅θ(t)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = x0 + x1 + x2 + x3\n",
"x"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the final solution the four coefficients are determined using the given limit formulas for the coefficients of a partial fraction decomposition"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left\\{ A_{0} : 0, \\ A_{11} : 1, \\ A_{21} : -1, \\ A_{22} : -1\\right\\}$"
],
"text/plain": [
"{A₀: 0, A_{11}: 1, A_{21}: -1, A_{22}: -1}"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"coeffs = {A0: sym.limit(X, s, sym.oo)}\n",
"coeffs.update({A11: sym.limit(X*(s+1), s, -1)})\n",
"coeffs.update({A21: sym.limit(sym.diff(X*(s+2)**2, s), s, -2)})\n",
"coeffs.update({A22: sym.limit(X*(s+2)**2, s, -2)})\n",
"coeffs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Substitution into the inverse Laplace transform yields the final solution $x(t) = \\mathcal{L}^{-1}\\{ X(s) \\}$"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle - t e^{- 2 t} \\theta\\left(t\\right) + e^{- t} \\theta\\left(t\\right) - e^{- 2 t} \\theta\\left(t\\right)$"
],
"text/plain": [
" -2⋅t -t -2⋅t \n",
"- t⋅ℯ ⋅θ(t) + ℯ ⋅θ(t) - ℯ ⋅θ(t)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = x.subs(coeffs)\n",
"x"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The solution is plotted for illustration"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"application/pdf": "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L0ZpcnN0Q2hhciAwCi9Gb250QkJveCBbIC0xMDE2IC0zNTEgMTY2MCAxMDY4IF0gL0ZvbnREZXNjcmlwdG9yIDEzIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTIgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgOTYKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM1MCA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDI4IDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxNyA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjE3IDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDgKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk5NSA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMTUgMCBvYmoKPDwgL3QgMTYgMCBSIC94IDE3IDAgUiA+PgplbmRvYmoKMjIgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzOTIgPj4Kc3RyZWFtCnicPVJLbgUxCNvPKbhApfBNcp6p3u7df1ubzFSqCi8DtjGUlwypJT/qkogzTH71cl3iUfK9bGpn5iHuLjam+FhyX7qG2HLRmmKxTxzJL8i0VFihVt2jQ/GFKBMPAC3ggQXhvhz/8ReowdewhXLDe2QCYErUbkDGQ9EZSFlBEWH7kRXopFCvbOHvKCBX1KyFoXRiiA2WACm+qw2JmKjZoIeElZKqHdLxjKTwW8FdiWFQW1vbBHhm0BDZ3pGNETPt0RlxWRFrPz3po1EytVEZD01nfPHdMlLz0RXopNLI3cpDZ89CJ2Ak5kmY53Aj4Z7bQQsx9HGvlk9s95gpVpHwBTvKAQO9/d6Sjc974CyMXNvsTCfw0WmnHBOtvh5i/YM/bEubXMcrh0UUqLwoCH7XQRNxfFjF92SjRHe0AdYjE9VoJRAMEsLO7TDyeMZ52d4VtOb0RGijRB7UjhE9KLLF5ZwVsKf8rM2xHJ4PJntvtI+UzMyohBXUdnqots9jHdR3nvv6/AEuAKEZCmVuZHN0cmVhbQplbmRvYmoKMjMgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA5MCA+PgpzdHJlYW0KeJxNjUESwCAIA++8Ik9QRND/dHrS/1+r1A69wE4CiRZFgvQ1aksw7rgyFWtQKZiUl8BVMFwL2u6iyv4ySUydhtN7twODsvFxg9JJ+/ZxegCr/XoG3Q/SHCJYCmVuZHN0cmVhbQplbmRvYmoKMjQgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA4MCA+PgpzdHJlYW0KeJxFjLsNwDAIRHumYAR+JmafKJWzfxsgStxwT7p7uDoSMlPeYYaHBJ4MLIZT8QaZo2A1uEZSjZ3so7BuX3WB5npTq/X3BypPdnZxPc3LGfQKZW5kc3RyZWFtCmVuZG9iagoyNSAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDE0NyA+PgpzdHJlYW0KeJw9T7kNAzEM6z0FFzjAeixb81yQ6rJ/G8pGUggiQPGRZUfHClxiApOOORIvaT/4aRqBWAY1R/SEimFY4G6SAg+DLEpXni1eDJHaQl1I+NYQ3q1MZKI8rxE7cCcXowc+VBtZHnpAO0QVWa5Jw1jVVl1qnbACHLLOwnU9zKoE5dEnaykfUFRCvXT/n3va+wsAby/rCmVuZHN0cmVhbQplbmRvYmoKMjYgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxNDkgPj4Kc3RyZWFtCnicNY9LDgMhDEP3OYUvMFJ+hHAeqq6m9982YVoJCQvbL8EWg5GMS0xg7Jhj4SVUT60+JCOPukk5EKlQNwRPaEwMM2zSJfDKdN8ynlu8nFbqgk5I5OmsNhqijGZew9FTzgqb/svcJGplRpkDMutUtxOysmAF5gW1PPcz7qhc6ISHncqw6E4xotxmRhp+/9v0/gJ7MjBjCmVuZHN0cmVhbQplbmRvYmoKMjcgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA0OSA+PgpzdHJlYW0KeJwzNrRQMFAwNDAHkkaGQJaRiUKKIRdIAMTM5YIJ5oBZBkAaojgHriaHKw0AxugNJgplbmRzdHJlYW0KZW5kb2JqCjI4IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMzE3ID4+CnN0cmVhbQp4nDVSS3JDMQjbv1Nwgc6Yv32edLJq7r+thCcrsC1AQi4vWdJLftQl26XD5Fcf9yWxQj6P7ZrMUsX3FrMUzy2vR88Rty0KBFETPfgyJxUi1M/U6Dp4YZc+A68QTikWeAeTAAav4V94lE6DwDsbMt4Rk5EaECTBmkuLTUiUPUn8K+X1pJU0dH4mK3P5e3KpFGqjyQgVIFi52AekKykeJBM9iUiycr03VojekFeSx2clJhkQ3SaxTbTA49yVtISZmEIF5liA1XSzuvocTFjjsITxKmEW1YNNnjWphGa0jmNkw3j3wkyJhYbDElCbfZUJqpeP09wJI6ZHTXbtwrJbNu8hRKP5MyyUwccoJAGHTmMkCtKwgBGBOb2wir3mCzkWwIhlnZosDG1oJbt6joXA0JyzpWHG157X8/4HRVt7owplbmRzdHJlYW0KZW5kb2JqCjI5IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTMxID4+CnN0cmVhbQp4nEWPyw0EIQxD71ThEvIZPqmH1Z7Y/q/rMJpBQvhBIjvxMAis8/I20MXw0aLDN/421atjlSwfunpSVg/pkIe88hVQaTBRxIVZTB1DYc6YysiWMrcb4bZNg6xslVStg3Y8Bg+2p2WrCH6pbWHqLPEMwlVeuMcNP5BLrXe9Vb5/QlMwlwplbmRzdHJlYW0KZW5kb2JqCjMwIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjQ4ID4+CnN0cmVhbQp4nC1ROZIDQQjL5xV6QnPT77HLkff/6QrKAYOGQyA6LXFQxk8Qlive8shVtOHvmRjBd8Gh38p1GxY5EBVI0hhUTahdvB69B3YcZgLzpDUsgxnrAz9jCjd6cXhMxtntdRk1BHvXa09mUDIrF3HJxAVTddjImcNPpowL7VzPDci5EdZlGKSblcaMhCNNIVJIoeomqTNBkASjq1GjjRzFfunLI51hVSNqDPtcS9vXcxPOGjQ7Fqs8OaVHV5zLycULKwf9vM3ARVQaqzwQEnC/20P9nOzkN97SubPF9Phec7K8MBVY8ea1G5BNtfg3L+L4PePr+fwDqKVbFgplbmRzdHJlYW0KZW5kb2JqCjMxIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjEwID4+CnN0cmVhbQp4nDVQyw1DMQi7ZwoWqBQCgWSeVr11/2tt0DthEf9CWMiUCHmpyc4p6Us+OkwPti6/sSILrXUl7MqaIJ4r76GZsrHR2OJgcBomXoAWN2DoaY0aNXThgqYulUKBxSXwmXx1e+i+Txl4ahlydgQRQ8lgCWq6Fk1YtDyfkE4B4v9+w+4t5KGS88qeG/kbnO3wO7Nu4SdqdiLRchUy1LM0xxgIE0UePHlFpnDis9Z31TQS1GYLTpYBrk4/jA4AYCJeWYDsrkQ5S9KOpZ9vvMf3D0AAU7QKZW5kc3RyZWFtCmVuZG9iagoyMCAwIG9iago8PCAvQmFzZUZvbnQgL0RlamFWdVNhbnMgL0NoYXJQcm9jcyAyMSAwIFIKL0VuY29kaW5nIDw8Ci9EaWZmZXJlbmNlcyBbIDQwIC9wYXJlbmxlZnQgL3BhcmVucmlnaHQgNDYgL3BlcmlvZCA0OCAvemVybyAvb25lIC90d28gNTIgL2ZvdXIgNTQgL3NpeAo1NiAvZWlnaHQgMTE2IC90IF0KL1R5cGUgL0VuY29kaW5nID4+Ci9GaXJzdENoYXIgMCAvRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250RGVzY3JpcHRvciAxOSAwIFIKL0ZvbnRNYXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2FucwovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxOCAwIFIgPj4KZW5kb2JqCjE5IDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTggMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjEgMCBvYmoKPDwgL2VpZ2h0IDIyIDAgUiAvZm91ciAyMyAwIFIgL29uZSAyNCAwIFIgL3BhcmVubGVmdCAyNSAwIFIKL3BhcmVucmlnaHQgMjYgMCBSIC9wZXJpb2QgMjcgMCBSIC9zaXggMjggMCBSIC90IDI5IDAgUiAvdHdvIDMwIDAgUgovemVybyAzMSAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIwIDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8ID4+CmVuZG9iagoyIDAgb2JqCjw8IC9Db3VudCAxIC9LaWRzIFsgMTAgMCBSIF0gL1R5cGUgL1BhZ2VzID4+CmVuZG9iagozMiAwIG9iago8PCAvQ3JlYXRpb25EYXRlIChEOjIwMjEwNDI3MTYzMzIyKzAyJzAwJykKL0NyZWF0b3IgKE1hdHBsb3RsaWIgdjMuMy40LCBodHRwczovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKE1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgdjMuMy40KSA+PgplbmRvYmoKeHJlZgowIDMzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDA4NzQ0IDAwMDAwIG4gCjAwMDAwMDg1MzkgMDAwMDAgbiAKMDAwMDAwODU4MiAwMDAwMCBuIAowMDAwMDA4NjgxIDAwMDAwIG4gCjAwMDAwMDg3MDIgMDAwMDAgbiAKMDAwMDAwODcyMyAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDAzOTkgMDAwMDAgbiAKMDAwMDAwMDIwOCAwMDAwMCBuIAowMDAwMDAyMTQxIDAwMDAwIG4gCjAwMDAwMDMxMDggMDAwMDAgbiAKMDAwMDAwMjkwMCAwMDAwMCBuIAowMDAwMDAyNTc3IDAwMDAwIG4gCjAwMDAwMDQxNjEgMDAwMDAgbiAKMDAwMDAwMjE2MiAwMDAwMCBuIAowMDAwMDAyNDEzIDAwMDAwIG4gCjAwMDAwMDczMjYgMDAwMDAgbiAKMDAwMDAwNzEyNiAwMDAwMCBuIAowMDAwMDA2NzQzIDAwMDAwIG4gCjAwMDAwMDgzNzkgMDAwMDAgbiAKMDAwMDAwNDIwMyAwMDAwMCBuIAowMDAwMDA0NjY4IDAwMDAwIG4gCjAwMDAwMDQ4MzAgMDAwMDAgbiAKMDAwMDAwNDk4MiAwMDAwMCBuIAowMDAwMDA1MjAyIDAwMDAwIG4gCjAwMDAwMDU0MjQgMDAwMDAgbiAKMDAwMDAwNTU0NSAwMDAwMCBuIAowMDAwMDA1OTM1IDAwMDAwIG4gCjAwMDAwMDYxMzkgMDAwMDAgbiAKMDAwMDAwNjQ2MCAwMDAwMCBuIAowMDAwMDA4ODA0IDAwMDAwIG4gCnRyYWlsZXIKPDwgL0luZm8gMzIgMCBSIC9Sb290IDEgMCBSIC9TaXplIDMzID4+CnN0YXJ0eHJlZgo4OTYxCiUlRU9GCg==\n",
"image/svg+xml": [
"\n",
"\n",
"\n",
"\n"
],
"text/plain": [
"