Skip to content

Instantly share code, notes, and snippets.

@neftlon
Created March 7, 2024 23:25
Show Gist options
  • Save neftlon/5baeb8b144fa023c9fbbbb4e79e1b65f to your computer and use it in GitHub Desktop.
Save neftlon/5baeb8b144fa023c9fbbbb4e79e1b65f to your computer and use it in GitHub Desktop.
Experiments with Monte-Carlo approximations, Taylor series, and Fourier transforms of distributions
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "13296d72",
"metadata": {},
"source": [
"### Faculty and exponential function"
]
},
{
"cell_type": "code",
"execution_count": 205,
"id": "812d5581",
"metadata": {},
"outputs": [],
"source": [
"def fac(n):\n",
" assert n >= 0\n",
" res = 1\n",
" for i in range(1,n+1):\n",
" res *= i\n",
" return res"
]
},
{
"cell_type": "code",
"execution_count": 206,
"id": "f36bbc71",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(1, 1, 2, 6, 720)"
]
},
"execution_count": 206,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fac(0), fac(1), fac(2), fac(3), fac(6)"
]
},
{
"cell_type": "code",
"execution_count": 207,
"id": "81e4b0eb",
"metadata": {},
"outputs": [],
"source": [
"def genfac(n):\n",
" assert n >= 0\n",
" res = 1\n",
" for i in range(1,n+2):\n",
" yield res\n",
" res *= i"
]
},
{
"cell_type": "code",
"execution_count": 208,
"id": "904d321d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n",
"1\n",
"2\n",
"6\n",
"24\n",
"120\n",
"720\n"
]
}
],
"source": [
"for i in genfac(6):\n",
" print(i)"
]
},
{
"cell_type": "code",
"execution_count": 209,
"id": "62891a82",
"metadata": {},
"outputs": [],
"source": [
"def approx_exp(x, num_iter=10):\n",
" assert num_iter > 0\n",
" res = 0.\n",
" n = num_iter - 1\n",
" for i, f in enumerate(genfac(n)):\n",
" res += x ** i / f\n",
" return res"
]
},
{
"cell_type": "code",
"execution_count": 210,
"id": "ec22c6a6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1.0, 2.7182815255731922)"
]
},
"execution_count": 210,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"approx_exp(0), approx_exp(1)"
]
},
{
"cell_type": "code",
"execution_count": 211,
"id": "a8325cb0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"9.897255526631649e-05"
]
},
"execution_count": 211,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import math\n",
"(math.e - approx_exp(1, num_iter=5)) ** 2"
]
},
{
"cell_type": "code",
"execution_count": 213,
"id": "1052bd0e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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bJnS6/Xq7bffVrt371YPP/ywio2NVYcOHWo2/YEDB1RMTIx6+OGH1e7du9Xbb7+t9Hq9+uSTT/yc8+ZNmDBBLV68WO3atUt9//336vrrr1fdu3dXtbW1Le6zbt06Bah9+/a5nROr1erHnLds7ty5qn///m55Ky8vbzG9N89RyAahl156qd3p7Xa7SktLU88++6xrXUNDg0pISFBvvPGGD3J4fp5//nnVs2fPVtNMmzZN3Xjjjf7JUBt+/etfq/vvv99tXb9+/dRjjz3WbPpHH31U9evXz23dfffdp4YPH+6zPJ6P8vJyBaj169e3mMYZhE6dOuW/jHlg7ty5atCgQe1O781zFJLNMYDnnnuOLl268Ktf/Ypnnnmm1eZLSUkJZWVlZGdnu9YZDAZGjx5NYWGhP7LrkaqqKpKSktpMV1BQQEpKCn369OHee++lvLzcD7lzZzab2bZtm9vfFiA7O7vFv+2mTZuapJ8wYQJbt27FYrH4LK/nqqqqCqBd52Tw4MGkp6czbtw41q1b5+useaS4uJiMjAx69uzJlClTOHDgQItpvXmOQjIIPfzwwyxbtox169bx0EMP8fLLLzNjxowW05eVlQGQmprqtj41NdW1LVD89NNPLFq0iPvvv7/VdDk5OXz00UesXbuWF198kS1btnD11VdjMpn8lFOHiooKbDabR3/bsrKyZtNbrVYqKip8ltdzoZRi9uzZjBo1igEDBrSYLj09nbfeeotPP/2UFStW0LdvX8aNG8eGDRv8mNuWDRs2jA8++IDVq1fz9ttvU1ZWxsiRI6msrGw2vVfPkcd1J43MnTtXAa3+bNmypdl9P/nkEwWoioqKZrd/9913ClDHjx93W3/PPfeoCRMmeL0sSp1beY4dO6Yuuugidffdd3v8fsePH1d6vV59+umn3ipCuxw7dkwBqrCw0G39008/rfr27dvsPr1791bz5893W7dx40YFqNLSUp/l9VzMmDFDZWVlqSNHjni87w033KAmTpzog1ydv9raWpWamqpefPHFZrd78xwFzXxCDz30EFOmTGk1TY8ePZpd77wqtH//frp06dJku/MqQFlZGenp6a715eXlTaK9t3hanuPHjzN27FhGjBjBW2+95fH7paenk5WVRXFxscf7no/k5GTCw8Ob1Hpa+9umpaU1mz4iIqLZ86eVmTNn8vnnn7NhwwaP57cCx+dyyZIlPsjZ+YuNjWXgwIEtfl68eY6CJgglJyeTnJx8Tvvu2LEDwC3ANNazZ0/S0tLIz89n8ODBgKMvY/369Tz33HPnluE2eFKeY8eOMXbsWIYMGcLixYvPaQ7myspKjhw50uLfwFciIyMZMmQI+fn53Hzzza71+fn53Hjjjc3uM2LECL744gu3dWvWrGHo0KEBMV+zUoqZM2eycuVKCgoK6Nmz5zkdZ8eOHX4/H+1lMpnYs2cPV155ZbPbvXqOzrW6FqgKCwvVwoUL1Y4dO9SBAwfU8uXLVUZGhpo0aZJbur59+6oVK1a4Xj/77LMqISFBrVixQu3cuVP95je/CYhL9M4m2NVXX62OHj3qdgm1scblqampUXPmzFGFhYWqpKRErVu3To0YMUJdcMEFmpTHeYn+3XffVbt371azZs1SsbGx6uDBg0oppR577DF15513utI7L//+4Q9/ULt371bvvvtuQF2if+CBB1RCQoIqKChwOx91dXWuNGeX6aWXXlIrV65UP/74o9q1a5d67LHHFOD35nFL5syZowoKCtSBAwfU5s2b1Q033KDi4uL8co5CLght27ZNDRs2TCUkJKioqCjVt29fNXfuXGU0Gt3SAWrx4sWu13a7Xc2dO1elpaUpg8GgrrrqKrVz504/576pxYsXt9hn1Fjj8tTV1ans7GzVtWtXpdfrVffu3dW0adPU4cOHNSiBwz/+8Q+VlZWlIiMj1WWXXeZ2OXvatGlq9OjRbukLCgrU4MGDVWRkpOrRo4d6/fXX/ZzjlrV0Php/ns4u03PPPad69eqloqKiVOfOndWoUaPUl19+6f/Mt8B5X5xer1cZGRlq8uTJqqioyLXdl+dI5hMSQmgqJC/RCyGChwQhIYSmJAgJITQlQUgIoSkJQkIITUkQEkJoSoKQEEJTEoSEEJqSICSE0JQEISGEpiQICSE09f8DD6+ssJf0UOcAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 300x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"xs = range(-5,6)\n",
"plt.figure(figsize=(3,3))\n",
"plt.grid(True)\n",
"plt.axhline(0,ls=\"--\",c=\"k\")\n",
"plt.axvline(0,ls=\"--\",c=\"k\")\n",
"plt.plot(xs, [approx_exp(x, num_iter=6) for x in xs])\n",
"plt.plot(xs, [math.exp(x) for x in xs]);"
]
},
{
"cell_type": "markdown",
"id": "ebb594a8",
"metadata": {},
"source": [
"### Numerical derivatives"
]
},
{
"cell_type": "code",
"execution_count": 214,
"id": "35e1effe",
"metadata": {},
"outputs": [],
"source": [
"def numgrad(f, h=1e-3):\n",
" return lambda x: (f(x+h) - f(x)) / h"
]
},
{
"cell_type": "code",
"execution_count": 215,
"id": "90414856",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6.000999999999479"
]
},
"execution_count": 215,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"numgrad(lambda x: x ** 2)(3.)"
]
},
{
"cell_type": "code",
"execution_count": 216,
"id": "43b71c32",
"metadata": {},
"outputs": [],
"source": [
"def gennumgrad(f, n, h=1e-3):\n",
" for i in range(n):\n",
" yield f\n",
" f = numgrad(f, h=h)"
]
},
{
"cell_type": "code",
"execution_count": 217,
"id": "bc34df2f",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 300x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f = lambda x: x ** 3 - x ** 2\n",
"\n",
"plt.figure(figsize=(3,3))\n",
"plt.grid(True)\n",
"plt.axhline(0,ls=\"--\",c=\"k\")\n",
"plt.axvline(0,ls=\"--\",c=\"k\")\n",
"for i, di_f in enumerate(gennumgrad(f, 4)):\n",
" plt.plot(xs, [di_f(x) for x in xs], label=r\"$f^{(%d)}$\" % i)\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"id": "75822a41",
"metadata": {},
"source": [
"### Taylor approximations of functions"
]
},
{
"cell_type": "code",
"execution_count": 249,
"id": "b8a9c545",
"metadata": {},
"outputs": [],
"source": [
"def T(f, a, n):\n",
" \"approximate function f at point a with n derivatives\"\n",
" # compute coefficients from derivatives\n",
" coeffs = [di_f(a) / fac for di_f, fac in zip(gennumgrad(f, n), genfac(n - 1))]\n",
" assert len(coeffs) == n\n",
" \n",
" # return function that approximates f(x) using coefficients\n",
" def approx(x):\n",
" res = 0\n",
" for i, c in enumerate(coeffs):\n",
" res += c * (x - a) ** i\n",
" return res\n",
" return approx"
]
},
{
"cell_type": "code",
"execution_count": 254,
"id": "9f65288c",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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dNrG7clbL+7sHeAJWvp+Hk3t27Jp0yZhMBjEJ598IhwOh/RtaSLflnPJzc0VQI0NgZrSt8V88KDI7NlLZPZIFsYdO1w+7kTpCZHycYrovbS3+HDvh0KIptnPw+2ex4kTJ7jzzjuJjo4mJCSEvn37kpGR4WFJq0AIsJZ756eRcyjc9W1ZsmQJixcvZt++fTz22GPceeedpKWlATh9W+bOnUt6ejplZWXcddddPPTQQ4wfP97Zzocffoher2fLli289tprvPrqq7xX8YDNVcRZvi2ZmZksXbqUL7/8ss52XnrpJcLCwur9OTcdqfRDGTt2bLXyxvq2PP300+zatYuOHTvW8FhpbIx1UVxcDFBjN/aUlBS2bt2KxWJxqR13yF24EBSFsCtGE1zHXrLnIoRg7q9zMdqN9Ivrxx097/B4XJW4tbalqKiIYcOGcfnll7N69Wri4uL4448/iIqKapro7Ca0/+zZNG03xJMnIcD1sfRKmsO3Zd68eVitVmdb0rfFs74t5yKEYNasWQwfPrzGzvVN5dti3LGDsv/9AFotcY+57nJfma4E6YL4+7C/N026UoFb4vHyyy/ToUMHlixZ4ixr7Q//zqWpfVu2bt1KeXk5JpPJuXu69G1pGt+WSh555BF2797NL7/8UuO1pvBtEUKQN18dxYmcNJHACy5w6biTZSd5ZZs6uvJo/0fpFNG0JlRuice3337LlVdeyU033URaWhpJSUk8/PDD9X7DWSyWal26yifTNpsNm81Wra7NZkMIgaIo6tRrfTCO2dnNvr0aALogaMTK1e3bt3PffffVWPUaHR1NYWGhs9xutwPw3Xff1erbcvbxhw4dcvq2HD161Hlsu3btAJzXrJLK/yuK4tK1q/Rtueyyy3jllVecvi0pKSn06dOn1hW88+bNq1NYKlm1alU1T5S2bdui0+mc76WS06dPEx8f79JK4V27dvHXv/61Wt3KB6+iItWsvB6NifFcHn30Ub799lvWr19PYmJijRjz89VZm9HR0bXGX3kv22w2l4W8/OefMaanowkIIGrq1Bqfk9oQQvDsxmcx2o30je3LTRfcVO24yv831JYr56rELfE4fPgwixcvZtasWTz55JNs3bqVRx99lMDAQO6+++5aj5k3b1617nAla9euJSQkpHowej0JCQmUlZWp3XKNhlKLl5aem0vdPqSwsJDs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",
"text/plain": [
"<Figure size 300x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"xs = range(-1,3)\n",
"plt.figure(figsize=(3,3))\n",
"plt.grid(True)\n",
"plt.axhline(0,ls=\"--\",c=\"k\")\n",
"plt.axvline(0,ls=\"--\",c=\"k\")\n",
"for n in range(0,7,2):\n",
" approx = T(math.exp, 0., n) # generate function to compute n'th Taylor approximation\n",
" plt.plot(xs, [approx(x) for x in xs], label=r\"$T(\\exp,a=0,n=%d)$\" % n)\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 263,
"id": "9f45b814",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 300x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"xs = range(-3,4)\n",
"plt.figure(figsize=(3,3))\n",
"plt.grid(True)\n",
"plt.axhline(0,ls=\"--\",c=\"k\")\n",
"plt.axvline(0,ls=\"--\",c=\"k\")\n",
"for n in range(2,7,2):\n",
" approx = T(math.sin, 0., n) # generate function to compute n'th Taylor approximation\n",
" plt.plot(xs, [approx(x) for x in xs], label=r\"$T(\\sin,0,%d)$\" % n)\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"id": "3d47061c",
"metadata": {},
"source": [
"### Approximate expectation value with Monte-Carlo"
]
},
{
"cell_type": "code",
"execution_count": 266,
"id": "5ee00178",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.2232003711973056"
]
},
"execution_count": 266,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import random\n",
"random.uniform(1., 2.)"
]
},
{
"cell_type": "code",
"execution_count": 272,
"id": "1308dd0b",
"metadata": {},
"outputs": [],
"source": [
"import typing\n",
"\n",
"class Uniform(typing.NamedTuple):\n",
" a: float\n",
" b: float\n",
"\n",
" def __call__(self, x):\n",
" assert self.a <= self.b\n",
" return 1 / (self.b - self.a) if self.a <= x <= self.b else 0.\n",
" \n",
" def sample(self):\n",
" return random.uniform(self.a, self.b)"
]
},
{
"cell_type": "code",
"execution_count": 384,
"id": "31383e3a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.0"
]
},
"execution_count": 384,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p = Uniform(0.,1.)\n",
"p(1.5)"
]
},
{
"cell_type": "code",
"execution_count": 414,
"id": "dcaf40df",
"metadata": {},
"outputs": [],
"source": [
"def montecarlo(p, f, num_samples=10000):\n",
" res = 0.\n",
" for _ in range(num_samples):\n",
" x = p.sample()\n",
" res += f(x)\n",
" return res / num_samples"
]
},
{
"cell_type": "code",
"execution_count": 415,
"id": "efb39bdf",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.4996063275348646, 0.3320561748380228)"
]
},
"execution_count": 415,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"montecarlo(p, lambda x: x), montecarlo(p, lambda x: x ** 2)"
]
},
{
"cell_type": "markdown",
"id": "9122dd1f",
"metadata": {},
"source": [
"### Fourier transform of distributions as Monte-Carlo problem"
]
},
{
"cell_type": "code",
"execution_count": 402,
"id": "04a2dffa",
"metadata": {},
"outputs": [],
"source": [
"import cmath\n",
"def fourier(p):\n",
" return lambda omega: montecarlo(p, lambda x: cmath.exp(-2.j * cmath.pi * omega * x))"
]
},
{
"cell_type": "code",
"execution_count": 403,
"id": "13e45a78",
"metadata": {},
"outputs": [],
"source": [
"q = fourier(p)"
]
},
{
"cell_type": "code",
"execution_count": 404,
"id": "d514fe56",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.06097703946740421-0.02432468102248608j)"
]
},
"execution_count": 404,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"q(1.)"
]
},
{
"cell_type": "code",
"execution_count": 433,
"id": "d3ba84d8",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"xs = np.linspace(-5,5,100)\n",
"re, im = zip(*[(w.real, w.imag) for w in map(q, xs)])"
]
},
{
"cell_type": "code",
"execution_count": 434,
"id": "8833abe5",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 600x300 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(6,3))\n",
"\n",
"plt.subplot(1,2,1)\n",
"plt.grid(True)\n",
"plt.axhline(0,ls=\"--\",c=\"k\")\n",
"plt.axvline(0,ls=\"--\",c=\"k\")\n",
"plt.xlabel(r\"$x$\")\n",
"plt.plot(xs, [p(x) for x in xs], label=r\"$p(x)$\")\n",
"plt.legend()\n",
"\n",
"plt.subplot(1,2,2)\n",
"plt.grid(True)\n",
"plt.axhline(0,ls=\"--\",c=\"k\")\n",
"plt.axvline(0,ls=\"--\",c=\"k\")\n",
"plt.xlabel(r\"$\\omega$\")\n",
"plt.plot(xs, re, label=r\"$\\Re\\left(q(\\omega)\\right)$\")\n",
"plt.plot(xs, im, label=r\"$\\Im\\left(q(\\omega)\\right)$\")\n",
"plt.legend()\n",
"\n",
"plt.tight_layout();"
]
},
{
"cell_type": "code",
"execution_count": 409,
"id": "654a7c51",
"metadata": {},
"outputs": [],
"source": [
"class Gaussian(typing.NamedTuple):\n",
" mu: float\n",
" sig: float\n",
"\n",
" def __call__(self, x):\n",
" return 1 / (self.sig * math.sqrt(2 * math.pi)) * math.exp(-1/2 * ((x - self.mu) / self.sig) ** 2)\n",
"\n",
" def sample(self):\n",
" return random.gauss(mu=self.mu, sigma=self.sig)"
]
},
{
"cell_type": "code",
"execution_count": 435,
"id": "e6125999",
"metadata": {},
"outputs": [],
"source": [
"r = Gaussian(3.,.2)\n",
"s = fourier(r)\n",
"xs = np.linspace(-2,5,100)\n",
"re, im = zip(*[(w.real, w.imag) for w in map(s, xs)])"
]
},
{
"cell_type": "code",
"execution_count": 436,
"id": "cee4838a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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mAAmTJjA4sWLWbp0KYcddhjf//73+fnPfy7LeIU+zdJ1u9heH3dvb6uLtzJa6G5WrFjB9OnTmT59OgDz589n+vTp3HrrrYDMU92KnrT+T8t3ROj7dDg81xaPPvpozrYTTjiBt99+uyNPJQi9mifetH5wyyIBGuJptovT1Ks48cQTW52vZJ7qRmynSUST0B8YOIFVoV9SW1vLgQceyMaNG9u9z/nnn88999yz18+5pznJ/62rBuDS4/YDYLs4TYKQH9tpSidaqLroHkoOa6PoaDsuzoXeQ21tLcOGDWv3HNzR8fnIN4fv67zeXkQ0CX2aH/7wh5x22mmMHz++3fvceuutLFiwYK9XdW2rj2GaMKw0zNEHWCurttaJ0yQIebFFU0tLC+GREyk5ZE7hsR//A340HuO953h+9VY21/aNchX9iZ/85CcMHz6ccePG8fTTT1NfX89Pf/pTpk+fTlFRET/60Y8yxi9cuJAzzjij3XNwR8fnI98cvq/zensR0dQPiEQivP7669x1111EIpGePpxuo7Gxkd/85jdcdNFFHdrvkEMOYfz48fz+97/fq+fd02yFGwYXhxhRbi0p3tkQd1fSCYLgww7PaYaVCD5s1LjC89QnyyBex653X+aaP6zmO8+/111HKQD/+te/eP/999m4cSP//d//zX/9139xySWXcOihh/LGG28wY8aMjHkzFouxaNEiLrnkknY9fkfHFyLfHL6v83p7EdHUD9A0jZkzZ3LggQd2uLeOaZq0JNPd/q89+XF+Nm7ciKIo/OlPf+L4448nHA6zePFiAoEARxxxRMbYJ598kkgkwtatW91tl1xyCYcccojb+ufMM8/kySef7NAxOOxusa6cK4qCDCsNoyqQNkxqmmR1kCDkYDtNql16QFdb6QGWspylRMLap6axf3ynnHk2ltR79Vz71ltvMX/+fKLRKNdffz2pVIoLL7zQrWs0fvz4jHZDf/3rXwkEAsyaNcvdZhgGd955JwceeCCRSIQRI0Zw2WWXFRzvcNVVV3HsscfmPa7x48ezYMGCjG355vB9mdfbyz71nhP6PrGUzkG3vtztz7vmjlMpCrX/4+csHf/Rj37EnXfeyYQJE1iwYAEzZszIGXvhhRfywx/+kIULF/KLX/yC22+/nZdffpk33niD8vJyAI444ggWLlxIIpHIW2unNfY0WxP64OIQ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",
"text/plain": [
"<Figure size 600x300 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(6,3))\n",
"\n",
"plt.subplot(1,2,1)\n",
"plt.grid(True)\n",
"plt.axhline(0,ls=\"--\",c=\"k\")\n",
"plt.axvline(0,ls=\"--\",c=\"k\")\n",
"plt.xlabel(r\"$x$\")\n",
"plt.plot(xs, [r(x) for x in xs], label=r\"$r(x)$\")\n",
"plt.legend()\n",
"\n",
"plt.subplot(1,2,2)\n",
"plt.grid(True)\n",
"plt.axhline(0,ls=\"--\",c=\"k\")\n",
"plt.axvline(0,ls=\"--\",c=\"k\")\n",
"plt.xlabel(r\"$\\omega$\")\n",
"plt.plot(xs, re, label=r\"$\\Re\\left(s(\\omega)\\right)$\")\n",
"plt.plot(xs, im, label=r\"$\\Im\\left(s(\\omega)\\right)$\")\n",
"plt.legend()\n",
"\n",
"plt.tight_layout();"
]
}
],
"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.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment