diff --git a/stopy/Ćwiczenia_5.ipynb b/stopy/Ćwiczenia_5.ipynb new file mode 100644 index 0000000..ee0d6e0 --- /dev/null +++ b/stopy/Ćwiczenia_5.ipynb @@ -0,0 +1,378 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4cc6c96f", + "metadata": {}, + "source": [ + "# Ćwiczenia 5" + ] + }, + { + "cell_type": "markdown", + "id": "1276423e", + "metadata": {}, + "source": [ + "***TEMAT:*** transformata Fouriera" + ] + }, + { + "cell_type": "markdown", + "id": "4c010a18", + "metadata": {}, + "source": [ + "## Od szeregów Fouriera do transformaty Fouriera: idea" + ] + }, + { + "cell_type": "markdown", + "id": "4e550b81", + "metadata": {}, + "source": [ + "***Przypomnienie:***\n", + "\n", + "Szereg Fouriera dla funkcji $2\\pi$ okresowej $f$ to szereg\n", + "\n", + "$$\n", + "\\sum_{n=-\\infty}^\\infty c_ne^{inx},\n", + "$$\n", + "\n", + "gdzie dla każdego $n\\in\\mathbb{Z}$ mamy:\n", + "\n", + "$$\n", + "c_n=\\frac{1}{2\\pi}\\int_{-\\pi}^\\pi f(x)e^{-inx}dx.\n", + "$$\n", + "\n", + "***Idea:*** przedstawiamy funkcję $f$ jako sumę funkcji o okresach $2\\pi/n$ (odwrotnością okresu w fizyce jest częstotliwość, zatem te funkcje mają częstotliwość $\\frac{n}{2\\pi}$). Wielkość $|c_n|$ mierzy zatem \"jaki udział\" w rozkładzie $f$ na prostsze kawałki ma ten o częstotliwości $\\frac{n}{2\\pi}$. " + ] + }, + { + "cell_type": "markdown", + "id": "9bb9900d", + "metadata": {}, + "source": [ + "***Zmiana okresu:***\n", + "\n", + "Szereg Fouriera dla funkcji $T$ okresowej $f$ to szereg\n", + "\n", + "$$\n", + "\\sum_{n=-\\infty}^\\infty c_ne^{2\\pi inx/T},\n", + "$$\n", + "\n", + "gdzie \n", + "dla każdego $n\\in\\mathbb{Z}$ mamy:\n", + "\n", + "$$\n", + "c_n=\\frac{1}{T}\\int_{-T/2}^{T/2} f(x)e^{-2\\pi inx/T}dx.\n", + "$$\n", + "***Idea:*** przedstawiamy funkcję $f$ jako sumę funkcji o okresach $T/n$. Wielkość $|c_n|$ mierzy zatem \"jaki udział\" w rozkładzie $f$ na prostsze kawałki ma ten o częstotliwości $n/T$. \n" + ] + }, + { + "cell_type": "markdown", + "id": "f4bef5ac-3cbc-4d67-8775-0b88c4a8f8b0", + "metadata": {}, + "source": [ + "### Przykład\n", + "\n", + "Niech $f$ będzie funkcją taką, że $f(x)=1$ dla $|x|\\leq 1/2$ i $0$ dla $|x|>1/2$.\n", + "\n", + "Dla dużych $T$ niech $g$ będzie taką funkcją określoną wzorem\n", + "\n", + "$$\n", + "g(x)=\\begin{cases}\n", + "1, & x\\in [nT-1/2,nT+1/2],\\quad n\\in \\mathbb{Z}\\\\\n", + "0, & \\text{ w przeciwnym przypadku}.\n", + "\\end{cases}\n", + "$$\n", + "Jest jasne, że $g$ jest $T$ okresowa i pokrywa się z $f$ na przedziale $(-1/2,1/2)$." + ] + }, + { + "cell_type": "markdown", + "id": "63c5b2b6-4a71-4ac9-bc43-c4cfdab73971", + "metadata": {}, + "source": [ + "Policzymy współczynniki Fouriera dla funkcji $g$.\n", + "Mamy\n", + "\n", + "$$\n", + "c_0=\\frac{1}{T}\\int_{-T/2}^{T/2}g(x)dx=\\frac{1}{T}\\int_{-1/2}^{1/2}1dx=\\frac{1}{T}\n", + "$$\n", + "\n", + "oraz dla $n\\not=0$ \n", + "\n", + "$$\n", + "c_n=\\frac{1}{T}\\int_{-T/2}^{T/2} g(x)e^{-2\\pi inx/T}dx=\\frac{1}{T}\\int_{-1/2}^{1/2}e^{-2\\pi inx/T}dx=\n", + "-\\frac{1}{2\\pi in}e^{-2\\pi inx/T}\\bigg|_{-1/2}^{1/2}=\\frac{1}{2\\pi in}(e^{\\pi i n/T}-e^{-\\pi i n/T})=\\frac{1}{\\pi n}\\sin\\left(\\frac{\\pi n}{T}\\right).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "b6ef623a-1338-413c-af6f-493394847b4f", + "metadata": {}, + "source": [ + "Przypomnijmy, że idea jest następująca: wielkość $|c_n|$ mierzy zatem \"jaki udział\" w rozkładzie $f$ na prostsze kawałki ma ten o częstotliwości $n/T$.\n", + "Poniżej zobaczymy zbiór punktów o współrzędnych \n", + "\n", + "$$\n", + "\\left(\\frac{n}{T}, T c_n\\right).\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b5e26fa7-efbc-4093-9e97-2dbdfabccf08", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/sd/yf84dc5d32vcg5xdf0mng9xw0000gn/T/ipykernel_1001/2269295719.py:12: RuntimeWarning: divide by zero encountered in divide\n", + " y_values = np.where(n_values != 0, (T / (np.pi * n_values)) * np.sin(np.pi * n_values / T), 0)\n", + "/var/folders/sd/yf84dc5d32vcg5xdf0mng9xw0000gn/T/ipykernel_1001/2269295719.py:12: RuntimeWarning: invalid value encountered in multiply\n", + " y_values = np.where(n_values != 0, (T / (np.pi * n_values)) * np.sin(np.pi * n_values / T), 0)\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3IAAAIhCAYAAAALuogMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABv20lEQVR4nO3deXwTdf7H8XcopVDEytkW5FIRuVQEuVygVTnKURQFdLWCgoqoCHgBrj9Bl0NUKLJerEjFA9AtSF1RLNoCLoeCwKogonKJrQhCQZASwvz+6BJ7t2knmU7m9Xw8+oBMJpN3vt9MMp/Md2ZchmEYAgAAAADYRiWrAwAAAAAAfEMhBwAAAAA2QyEHAAAAADZDIQcAAAAANkMhBwAAAAA2QyEHAAAAADZDIQcAAAAANkMhBwAAAAA2QyEHAAAAADZDIQcAKJOkpCS5XC7vX+XKlXX++efr9ttv1/79+73zpaeny+VyKT093efnWLt2rSZNmqQjR46YF/x/Fi9erFatWqlatWpyuVzasmVLofNt27ZNkyZN0u7duwvcFxMTo9atW5ueLb9hw4blaeuwsDA1b95cTzzxhE6ePOnz8lwulyZNmlSmLC+++KKSkpLK9FgAgHko5AAA5TJ//nytW7dOqampuvPOO7Vw4UJ17dpVx48fL/ey165dq8mTJ5teyP36669KSEjQhRdeqI8++kjr1q3TxRdfXOi827Zt0+TJkwst5AKpWrVqWrdundatW6f33ntPHTt21JNPPqmhQ4f6vKx169ZpxIgRZcpBIQcAFUNlqwMAAOytdevWat++vSQpNjZWHo9HTz31lN577z3dcsstFqcr3HfffSe3261bb71V3bt3tzpOqVSqVEmdOnXy3o6Li9Pu3bv1zjvvaObMmWrQoEGpl5V7OQAAe2KPHADAVGeLhD179hQ7X0pKijp37qzw8HDVqFFDPXr00Lp167z3T5o0SQ8//LAkqWnTpt5hhSUN0SxpucOGDdNf/vIXSdKQIUPkcrkUExNT6LKSkpI0aNAgSTlF6tkM+fdIffHFF+ratavCw8N1wQUXaPr06Tpz5kyeeY4ePaqHHnpITZs2VZUqVdSgQQONGTOmXHsu87f13r17deutt6pevXoKCwtTixYt9NxzzxXIkn9o5dlhsmlpabrnnntUp04d1a5dWwMHDtTPP//sna9Jkyb65ptvtGrVKm9bNGnSRJJ05swZ/f3vf1fz5s1VrVo1nXfeebr00ks1e/bsMr8+AEDRKOQAAKb6/vvvJUl169Ytcp63335bAwYM0LnnnquFCxdq3rx5Onz4sGJiYvTZZ59JkkaMGKH7779fkrRkyRLvsMIrrriiXMt9/PHH9cILL0iSpk6dqnXr1unFF18sdHl9+/bV1KlTJUkvvPCCN0Pfvn2982RmZuqWW27RrbfeqpSUFMXFxWnChAl68803vfOcOHFC3bt31+uvv67Ro0frww8/1KOPPqqkpCTFx8fLMIwS27Uwudv6119/VZcuXfTxxx/rqaeeUkpKiq699lo99NBDuu+++0q1vBEjRig0NFRvv/22ZsyYofT0dN16663e+5cuXaoLLrhAbdu29bbF0qVLJUkzZszQpEmTdPPNN+uDDz7Q4sWLNXz4cL8c3wgAkGQAAFAG8+fPNyQZ69evN9xut3Hs2DHj3//+t1G3bl2jRo0aRmZmpmEYhpGWlmZIMtLS0gzDMAyPx2PUr1/faNOmjeHxeLzLO3bsmFGvXj2jS5cu3mnPPPOMIcnYtWtXiXl8We7ZTO+++26Jy3333Xfz5M+te/fuhiRjw4YNeaa3bNnS6NWrl/f2tGnTjEqVKhlffPFFnvn+9a9/GZKM5cuXF5th6NChRvXq1Q2322243W7j119/NWbPnm24XC7jyiuvNAzDMMaPH19olnvuucdwuVzGjh07vNMkGU888YT39tm+HDVqVJ7Hzpgxw5BkZGRkeKe1atXK6N69e4GM/fr1My6//PJiXwcAwDzskQMAlEunTp0UGhqqGjVqqF+/foqKitKHH36oyMjIQuffsWOHfv75ZyUkJKhSpT+/hs455xzdcMMNWr9+vU6cOOFzDn8ttyRRUVHq0KFDnmmXXnppnqGl//73v9W6dWtdfvnlOn36tPevV69epT6j5/HjxxUaGqrQ0FDVrVtXY8aMUVxcnHeP2KeffqqWLVsWyDJs2DAZhqFPP/20xOeIj48v8DqkkofJSlKHDh20detWjRo1SitWrNDRo0dLfAwAoOw42QkAoFwWLFigFi1aqHLlyoqMjFR0dHSx8x86dEiSCp2vfv36OnPmjA4fPqzw8HCfcvhruSWpXbt2gWlhYWH6448/vLd/+eUXff/99woNDS10GQcPHizxeapVq6bVq1d7l9+4cWOde+653vsPHTrkPV4tt/r163vvL0n+1xIWFiZJeV5LUSZMmKDq1avrzTff1Msvv6yQkBB169ZNTz/9tPdkOAAA81DIAQDKpUWLFj5tqJ8tFjIyMgrc9/PPP6tSpUqqWbOmzzn8tVwz1KlTR9WqVdNrr71W5P0lqVSpUrHtXLt27SJfe2mfozwqV66scePGady4cTpy5IhWrlypiRMnqlevXtq3b5/pBTQAOB1DKwEAAdW8eXM1aNBAb7/9dp6TfBw/flzJycneM05Kvu0R8mW5vvAlQ1H69eunH374QbVr11b79u0L/BW2J81X11xzjbZt26Yvv/wyz/QFCxbI5XIpNja23M8hFdzbWJjzzjtPN954o+6991799ttvll+DDwCCEXvkAAABValSJc2YMUO33HKL+vXrp7vvvlvZ2dl65plndOTIEU2fPt07b5s2bSRJs2fP1tChQxUaGqrmzZurRo0a5VquL1q3bi1Jmjt3rmrUqKGqVauqadOmhQ6pLMqYMWOUnJysbt26aezYsbr00kt15swZ7d27Vx9//LEefPBBdezYsUz5zho7dqwWLFigvn376sknn1Tjxo31wQcf6MUXX9Q999xT5AXPfdWmTRstWrRIixcv1gUXXKCqVauqTZs26t+/v/eagnXr1tWePXuUmJioxo0bq1mzZqY8NwDgTxRyAICA++tf/6rq1atr2rRpGjJkiEJCQtSpUyelpaWpS5cu3vliYmI0YcIEvf766/rnP/+pM2fOKC0trcjrvpV2ub5o2rSpEhMTNXv2bMXExMjj8Wj+/PkaNmxYqZdRvXp1rVmzRtOnT9fcuXO1a9cuVatWTY0aNdK1115ryh65unXrau3atZowYYImTJigo0eP6oILLtCMGTM0bty4ci//rMmTJysjI0N33nmnjh07psaNG2v37t2KjY1VcnKyXn31VR09elRRUVHq0aOHHn/88SKPDQQAlJ3LMMp48RoAAAAAgCU4Rg4AAAAAbIZCDgAAAABshkIOAAAAAGzGVoXc6tWr1b9/f9WvX18ul0vvvfdesfOnp6fL5XIV+Pv222/zzJecnKyWLVsqLCxMLVu21NKlS/34KgAAAACgfGxVyB0/flyXXXaZ/vGPf/j0uB07digjI8P7l/s0yOvWrdOQIUOUkJCgrVu3KiEhQYMHD9aGDRvMjg8AAAAAprDt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OnDggD/zAgAAAIDjlelkJy6XS126dNH06dO1bds2bdmyRd26dVNSUpIaNmyoF154weycAABUePfcc4/VEQAADmHKWSubNWumBx98UKtXr9bPP/+snj17mrFYAABs5YMPPrA6AgDAIXy6jtxZ3333ndLT03XgwAGdOXPGO93lcunxxx9X7dq1TQsIAIBd7N271+oIAACH8LmQ++c//6l77rlHderUUVRUlFwul/e+s4UcAABOVLduXasjAAAcwudC7u9//7umTJmiRx991B95AACwrYSEBKsjAAAcwudj5A4fPqxBgwb5IwsAALY2c+ZMqyMAABzC50Ju0KBB+vjjj/2RBQAAAABQCj4Prbzooov0+OOPa/369WrTpo1CQ0Pz3D969GjTwgEA4E8pKVJamhQbK8XHl395Xbt2Lf9C/sfsbACA4OJzITd37lydc845WrVqlVatWpXnPpfLRSEHALCFlBRpwAApJERKTJSWLSt/wVSjRo0Kmw0AEFx8LuR27drljxwAAARUWlpOoeTx5Pybnl7+Ymn58uV67LHHKmQ2AEBw8fkYudWrV+v06dMFph8/fpyDvAEAthEb+2eh5PFIMTFWJ/pTRc4GAKgYfN4jFxsbq6SkJEVEROSZvnnzZk2dOlXjxo0zLRwAAP4SH58zZDE9PadQMmOP14gRI8q/EPknGwAguPhcyBmGoaFDhxaYXqNGDQ0fPtyUUAAABEJ8vLlFUnp6um6//XZTlmV2NgBAcPG5kJOkzMxM1atXz+wsAADY2vfff291BACAQ/h8jBwAAChczZo1rY4AAHCIMu2RW7duXZFfVt26dStXIAAA7Oquu+6yOgIAwCHKVMgNHDhQhmEUmO5yueTxeModCgAAO3r66acVz4FtAIAAKFMh9+2333KMHAAAAABYxOdC7syZM/7IAQCA7XXq1MnqCAAAhyjVyU727t3r00L3799fpjAAANhZVFSU1REAAA5RqkLuyiuv1J133qnPP/+8yHmysrL0z3/+U61bt9aSJUtMCwgAgF289957VkcAADhEqYZWbt++XVOnTlXv3r0VGhqq9u3bq379+qpataoOHz6sbdu26ZtvvlH79u31zDPPKC4uzt+5AQAAAMCxSrVHrlatWnr22Wf1888/66WXXtLFF1+sgwcPaufOnZKkW265RZs2bdJ//vMfijgAgGMNHTrU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JPnbzarvqcK2LSrqelBRtokK24atSOtBfm+8cciQZGRlZfn1eVyGYRhWF5OlcerUKYWHh+vdd9/V9ddf753+wAMPaMuWLVq1alWBx3Tr1k1t27bV7NmzvdOWLl2qwYMH68SJEwoNDVWjRo00duxYjR071jvPrFmzlJiYqD179hSaJTs7W9nZ2d7bR48eVcOGDSVlKTk5XP37V4wmff99l264obJCQgx5PC6NH+/R9Okh3tvJyacDmvX9911avdqlatVkeg63263U1FT16NFDoaGh5cqYu82Sk09LklavdqlbN8PSvi0sW0V7r1WqdEZnzlSqMNns0GZ2WQ+Cud3MzOVy7ZZhNKkwuaSK22aS+dnMWgf8kc0sFTWXVHG/C6SK125nt4m6dcvJUBHXg4q0TVTRtmmLk5P1hKQIZWVl6dxzz/Xbc9nmZCcHDx6Ux+NRZGRknumRkZHKzMws9DGZmZmFzn/69GkdPHhQ0dHRRc5T1DIladq0aZo8eXIh9wzWqFFunTp1p9544w39+uuvatSokfr27auXXnpJktSjRw95PB59+umnkqT7779fS5Ys0f79+xUdHa1Bgwbp+eeflyTFxMQoLCxMK1askCTdfffdWrFihXbv3q06depo2LBhevbZZyVJV111lWrWrKl///vfkqQ77rhDiYnfSdopjydSLtdLmj+/t5o1O6Xw8D669NJamj59nqZPl2677TZt3LhR27ZtU3h4uMaOHavp06fL4/Gobdu2atasmd555x1J0k033aTt27dr69atCg0N1SOPPKLnnntOJ0+eVKtWrXT55ZfrrbfekiTdcMMN2rNnjzZu3ChJeuyxx/TVV8/rm28kl+saeTyDJI3TqFEntG1brA4ePOg9dffDDz+s1157TYcOHdIFF1yga6+9VnPnzpUkxcXF6cSJE97ifcyYMVq4cKF++eUXvf766xowYIBeeOEFSdI111wjSfrkk08kSffee6+WLVumn376SZGRkbr55puVmJgoSerevbvWrGkhaak8Hpdcruc1YcJziojYoNq1a+uqq+7QVVc9I0nq0qWL6tSpo5T/7du//fbbtXbtWu3YsUM1atTQ6NGjNWXKFElS+/bt1bhxY++Q3ltuuUVbtmzRN998o6pVq+rBBx/UjBkz5Ha7ddlll6lFixZatGhRzjtq8GDt3LlTmzdv1r59NVWp0ofyeG6TlKXHH2+pn39uqAULFkiSrr/+eu3fv1+ff/65JGn8+PF66aWXlJWVpWbNmqlr167e43f69eunw4cP6z//+Y8k6aGHHlJSUpIOHjyoJk2aqFevXnrllVckSb169VJ2drbS/zf2Y/To0Xr33XeVkZGhBg0aaODAgXr44SRJ4Tpz5na5XCEaNep5TZ9+TPfcc48++OAD7d27V3Xr1lVCQoJmzpwpSeratatq1Kih5cuXS5JGjBih9PR0ff/996pZs6buuusuPf3005KkTp06KSoqSu+9954kaejQofr888+1fft2nXPOOXrggQc0depUGYahdu3a6YILLtC7776rvXtryOV6Rh7Pakmf6P77zygk5C4988wzOnXqlNq0aaPWrVtr4cKFkqRBgwbpxx9/1KZNm+RyuTRx4kTNnj1bv//+u1q0aKEOHTro9ddflyRdd911yszM1Pr16yVJjz76qObOnavDhw/roosuUkxMjF599VVJUp8+fXTs2DHvMb3jxo3ThAnLJR2Wx9NGLtcojRo1VNOnHzPlM2LKlCml+oxYs2aNdu7cqYiICN1zzz2aPn26JOnUqevlcl0lj+dZSYb+8Y9RSklZHJDPiOeff17Hjh1T8+bN1aVLF82fP19SzoW2Dx48qEWLvpIULo/nXUljNGrUTr3zTt1Sf0acf/755fqMCA8P14cffihJuuuuu7Ry5Ur9+OOPOnCgmVyuf8owOkm6Un//ezdt25Yd0M+IkJAQjR8/XrNmzdKJEyfUsmVLtW/fXn//+9L/tdmjcrm2a9SoRZo+/VhAPyPmzJkjSbr66qsVEhKi1NRUSdJ55yVKel8ezzeSGmnevBGaPv2ucn9G/PTTT6X6jJCkm2++WV9//bW++uorValSRQ8//LCeeeYZff99mFyufvJ4YiU9rlGjTuiHH3oH7DOiqO0IaYRcrlryeBZIMjR37uN6441pftmOKOozokOHDmrQoIH3nAJntyM++mifpCidOfOWpOs1atRRrVhxUUA/I4rajjh48F5JM/73/T5SU6fu1PTpbwXsM6J27dq644479Mwzebcjpk9P+d931YvyeJZIWqsxY6ooJOS2cn9GTJkypVSfEUVtR0RGvinpaXk8v8rlulIvvthFR49OkCTVqtVPa9b4/zMi93ZEu3aNFRn5mHbuvF/z51eRy3WHPJ66kuZo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+QLnS9waZ9ud9rcOfWA9+sBabrdbl112Ge1vIdYB69EH1qMPrBeotrdFIZeZmal69eoVmF6vXj1lZmaWahknT57U+PHj9de//lXnnnuud/ott9yipk2bKioqSl9//bUmTJigrVu3Ftibl9u0adM0efLkAtPT0tIUHh5eqjzwj+L6DYFBH1iPPrBOixYtaP8KgD6wHn1gPfrAOidOnAjI81hayE2aNKnQgii3L774QpLkcrkK3GcYRqHT83O73brpppt05swZvfjii3nuu/POO73/b926tZo1a6b27dvryy+/1BVXXFHo8iZMmKBx48Z5bx89elQNGzZUbGysateuXWIemM/tdis1NVU9evRQaGio1XEciT6wHn1gLbfbrSlTpig9PZ32twjrgPXoA+vRB9Y7dOhQQJ7H0kLuvvvuK/EMkU2aNNF///tf/fLLLwXu+/XXXxUZGVns491utwYPHqxdu3bp008/zbM3rjBXXHGFQkNDtXPnziILubCwMIWFhRWYHhoaygpjMfrAevSB9egDa9H+1qMPrEcfWI8+sE6g2t3SQq5OnTqqU6dOifN17txZWVlZ+vzzz9WhQwdJ0oYNG5SVlaUuXboU+bizRdzOnTuVlpZWqr1l33zzjdxut6Kjo0v/QgAAkDR48GCrIwAAHMIWlx9o0aKFevfurTvvvFPr16/X+vXrdeedd6pfv355TnRyySWXaOnSpZKk06dP68Ybb9TGjRv11ltvyePxKDMzU5mZmTp16pQk6YcfftCTTz6pjRs3avfu3Vq+fLkGDRqktm3b6qqrrrLktQIA7Gvnzp1WRwAAOIQtCjkp58ySbdq0Uc+ePdWzZ09deumleuONN/LMs2PHDmVlZUmSfvrpJ6WkpOinn37S5ZdfrujoaO/f2rVrJUlVqlTRJ598ol69eql58+YaPXq0evbsqZUrVyokJCTgrxEAYG+bN2+2OgIAwCFscdZKSapVq5befPPNYucxDMP7/yZNmuS5XZiGDRtq1apVpuQDAIAfAQEAgWKbPXIAAFR048ePtzoCAMAhKOQAADDJrFmzrI4AAHAICjkAAEwSqIvAAgBAIQcAgElatmxpdQQAgENQyAEAYJL27dtbHQEA4BAUcgAAmGTBggVWRwAAOASFHAAAAADYDIUcAAAmuf76662OAABwCAo5AABMsn//fqsjAAAcgkIOAACTfP7551ZHAAA4BIUcAAAAANgMhRwAACYZP3681REAAA5BIQcAgEleeuklqyMAAByCQg4AAJNkZWVZHQEA4BAUcgAAmKRZs2ZWRwAAOASFHAAAJunatavVEQAADkEhBwCASV577TWrIwAAHIJCDgAAAABshkIOAACT9OvXz+oIAACHoJADAMAkhw8ftjoCAMAhKOQAADDJf/7zH6sjAAAcgkIOAAAAAGyGQg4AAJM89NBDVkcAADgEhRwAACZJSkqyOgIAwCEo5AAAMMnBgwetjgAAcAgKOQAATNKkSROrIwAAHIJCDgAAk/Tq1cvqCAAAh6CQAwDAJK+88orVEQAADkEhBwAAAAA2QyEHAIBJGFoJAAgUCjkAAEySnZ1tdQQAgENQyAEAYJL09HSrIwAAHIJCDgAAAABshkIOAACTjB492uoIAACHoJADAMAk7777rtURAAAOQSEHAIBJMjIyrI4AAHAICjkAAEzSoEEDqyMAAByCQg4AAJMMHDjQ6ggAAIegkAMAwCRz5syxOgIAwCEo5AAAAADAZijkAAAwydVXX211BACAQ1DIAQBgkpCQEKsjAAAcgkIOAACTpKamWh0BAOAQFHIAAAAAYDMUcgAAmOSee+6xOgIAwCEo5AAAMMkHH3xgdQQAgENQyAEAYJK9e/daHQEA4BC2KeQOHz6shIQERUREKCIiQgkJCTpy5Eixjxk2bJhcLleev06dOuWZJzs7W/fff7/q1Kmj6tWrKz4+Xj/99JMfXwkAIFjVrVvX6ggAAIewTSH317/+VVu2bNFHH32kjz76SFu2bFFCQkKJj+vdu7cyMjK8f8uXL89z/5gxY7R06VItWrRIn332mX7//Xf169dPHo/HXy8FABCkSvO9BACAGSpbHaA0tm/fro8++kjr169Xx44dJUn//Oc/1blzZ+3YsUPNmzcv8rFhYWGKiooq9L6srCzNmzdPb7zxhq699lpJ0ptvvqmGDRtq5cqV6tWrl/kvBgAQtGbOnKkbbrjB6hgAAAewRSG3bt06RUREeIs4SerUqZMiIiK0du3aYgu59PR01atXT+edd566d++uKVOmqF69epKkTZs2ye12q2fPnt7569evr9atW2vt2rVFFnLZ2dnKzs723s7KypIk/fbbb+V6nSg7t9utEydO6NChQwoNDbU6jiPRB9ajD6zldrvl8XhofwuxDliPPrAefWC9szWBYRh+fR5bFHKZmZne4iu3evXqKTMzs8jHxcXFadCgQWrcuLF27dqlxx9/XFdffbU2bdqksLAwZWZmqkqVKqpZs2aex0VGRha73GnTpmny5MkFpl988cU+vCoAQDCKjo62OgIAoAI4dOiQIiIi/LZ8Swu5SZMmFVoQ5fbFF19IklwuV4H7DMModPpZQ4YM8f6/devWat++vRo3bqwPPvhAAwcOLPJxJS13woQJGjdunPf2kSNH1LhxY+3du9evnYWiHT16VA0bNtS+fft07rnnWh3HkegD69EH1qL9rUcfWI8+sB59YL2srCw1atRItWrV8uvzWFrI3XfffbrpppuKnadJkyb673//q19++aXAfb/++qsiIyNL/XzR0dFq3Lixdu7cKUmKiorSqVOndPjw4Tx75Q4cOKAuXboUuZywsDCFhYUVmB4REcEKY7Fzzz2XPrAYfWA9+sBatL/16APr0QfWow+sV6mSf88raWkhV6dOHdWpU6fE+Tp37qysrCx9/vnn6tChgyRpw4YNysrKKrbgyu/QoUPat2+fd9hLu3btFBoaqtTUVA0ePFiSlJGRoa+//lozZswowysCAAAAAP+zxeUHWrRood69e+vOO+/U+vXrtX79et15553q169fnhOdXHLJJVq6dKkk6ffff9dDDz2kdevWaffu3UpPT1f//v1Vp04dXX/99ZJy9qANHz5cDz74oD755BNt3rxZt956q9q0aeM9iyUAAAAAVDS2ONmJJL311lsaPXq09wyT8fHx+sc//pFnnh07dnjPIBkSEqKvvvpKCxYs0JEjRxQdHa3Y2FgtXrxYNWrU8D5m1qxZqly5sgYPHqw//vhD11xzjZKSkhQSElLqbGFhYXriiScKHW6JwKAPrEcfWI8+sBbtbz36wHr0gfXoA+sFqg9chr/PiwkAAAAAMJUthlYCAAAAAP5EIQcAAAAANkMhBwAAAAA2QyEHAAAAADZDIVcKU6ZMUZcuXRQeHq7zzjuv0Hn27t2r/v37q3r16qpTp45Gjx6tU6dOFbvc7Oxs3X///apTp46qV6+u+Ph4/fTTT354BcElPT1dLper0L8vvviiyMcNGzaswPydOnUKYPLg0qRJkwLtOX78+GIfYxiGJk2apPr166tatWqKiYnRN998E6DEwWX37t0aPny4mjZtqmrVqunCCy/UE088UeLnDutB+bz44otq2rSpqlatqnbt2mnNmjXFzr9q1Sq1a9dOVatW1QUXXKCXX345QEmDz7Rp03TllVeqRo0aqlevnq677jrt2LGj2McU9X3x7bffBih1cJk0aVKBtoyKiir2MawD5irsu9flcunee+8tdH7WgfJbvXq1+vfvr/r168vlcum9997Lc39Zt22Sk5PVsmVLhYWFqWXLlt5LqPmCQq4UTp06pUGDBumee+4p9H6Px6O+ffvq+PHj+uyzz7Ro0SIlJyfrwQcfLHa5Y8aM0dKlS7Vo0SJ99tln+v3339WvXz95PB5/vIyg0aVLF2VkZOT5GzFihJo0aaL27dsX+9jevXvnedzy5csDlDo4Pfnkk3na829/+1ux88+YMUMzZ87UP/7xD33xxReKiopSjx49dOzYsQAlDh7ffvutzpw5o1deeUXffPONZs2apZdfflkTJ04s8bGsB2WzePFijRkzRo899pg2b96srl27Ki4uTnv37i10/l27dqlPnz7q2rWrNm/erIkTJ2r06NFKTk4OcPLgsGrVKt17771av369UlNTdfr0afXs2VPHjx8v8bE7duzI855v1qxZABIHp1atWuVpy6+++qrIeVkHzPfFF1/kaf/U1FRJ0qBBg4p9HOtA2R0/flyXXXZZgcuenVWWbZt169ZpyJAhSkhI0NatW5WQkKDBgwdrw4YNvoUzUGrz5883IiIiCkxfvny5UalSJWP//v3eaQsXLjTCwsKMrKysQpd15MgRIzQ01Fi0aJF32v79+41KlSoZH330kenZg9mpU6eMevXqGU8++WSx8w0dOtQYMGBAYEI5QOPGjY1Zs2aVev4zZ84YUVFRxvTp073TTp48aURERBgvv/yyHxI6z4wZM4ymTZsWOw/rQdl16NDBGDlyZJ5pl1xyiTF+/PhC53/kkUeMSy65JM+0u+++2+jUqZPfMjrJgQMHDEnGqlWripwnLS3NkGQcPnw4cMGC2BNPPGFcdtllpZ6fdcD/HnjgAePCCy80zpw5U+j9rAPmkmQsXbrUe7us2zaDBw82evfunWdar169jJtuusmnPOyRM8G6devUunVr1a9f3zutV69eys7O1qZNmwp9zKZNm+R2u70XOJek+vXrq3Xr1lq7dq3fMweTlJQUHTx4UMOGDStx3vT0dNWrV08XX3yx7rzzTh04cMD/AYPY008/rdq1a+vyyy/XlClTih3Wt2vXLmVmZuZ5z4eFhal79+68502SlZWlWrVqlTgf64HvTp06pU2bNuV5/0pSz549i3z/rlu3rsD8vXr10saNG+V2u/2W1SmysrIkqVTv+bZt2yo6OlrXXHON0tLS/B0tqO3cuVP169dX06ZNddNNN+nHH38scl7WAf86deqU3nzzTd1xxx1yuVzFzss64B9l3bYpat3wdXuIQs4EmZmZioyMzDOtZs2aqlKlijIzM4t8TJUqVVSzZs080yMjI4t8DAo3b9489erVSw0bNix2vri4OL311lv69NNP9dxzz+mLL77Q1Vdfrezs7AAlDS4PPPCAFi1apLS0NN13331KTEzUqFGjipz/7Ps6/7rCe94cP/zwg+bMmaORI0cWOx/rQdkcPHhQHo/Hp/dvYd8NkZGROn36tA4ePOi3rE5gGIbGjRunv/zlL2rdunWR80VHR2vu3LlKTk7WkiVL1Lx5c11zzTVavXp1ANMGj44dO2rBggVasWKF/vnPfyozM1NdunTRoUOHCp2fdcC/3nvvPR05cqTYH7JZB/yrrNs2Ra0bvm4PVfZp7iAyadIkTZ48udh5vvjiixKPuTqrsF9CDMMo8RcSMx4TLMrSJz/99JNWrFihd955p8TlDxkyxPv/1q1bq3379mrcuLE++OADDRw4sOzBg4gvfTB27FjvtEsvvVQ1a9bUjTfe6N1LV5T8728nv+cLU5b14Oeff1bv3r01aNAgjRgxotjHsh6Uj6/v38LmL2w6fHPffffpv//9rz777LNi52vevLmaN2/uvd25c2ft27dPzz77rLp16+bvmEEnLi7O+/82bdqoc+fOuvDCC/X6669r3LhxhT6GdcB/5s2bp7i4uDwjwvJjHQiMsmzbmLE95NhC7r777tNNN91U7DxNmjQp1bKioqIKHJx4+PBhud3uAtV27secOnVKhw8fzrNX7sCBA+rSpUupnjfYlKVP5s+fr9q1ays+Pt7n54uOjlbjxo21c+dOnx8brMqzXpw98+H3339faCF39sxmmZmZio6O9k4/cOBAkeuJE/naBz///LNiY2PVuXNnzZ071+fnYz0onTp16igkJKTAr6XFvX+joqIKnb9y5crF/tiB4t1///1KSUnR6tWrdf755/v8+E6dOunNN9/0QzLnqV69utq0aVPk5wfrgP/s2bNHK1eu1JIlS3x+LOuAecq6bVPUuuHr9pBjC7k6deqoTp06piyrc+fOmjJlijIyMryd+PHHHyssLEzt2rUr9DHt2rVTaGioUlNTNXjwYElSRkaGvv76a82YMcOUXHbja58YhqH58+frtttuU2hoqM/Pd+jQIe3bty/Piud05VkvNm/eLElFtmfTpk0VFRWl1NRUtW3bVlLO+P5Vq1bp6aefLlvgIORLH+zfv1+xsbFq166d5s+fr0qVfB8tz3pQOlWqVFG7du2Umpqq66+/3js9NTVVAwYMKPQxnTt31vvvv59n2scff6z27duX6TPL6QzD0P3336+lS5cqPT1dTZs2LdNyNm/ezPvdJNnZ2dq+fbu6du1a6P2sA/4zf/581atXT3379vX5sawD5inrtk3nzp2VmpqaZ3TTxx9/7PvOHJ9OjeJQe/bsMTZv3mxMnjzZOOecc4zNmzcbmzdvNo4dO2YYhmGcPn3aaN26tXHNNdcYX375pbFy5Urj/PPPN+677z7vMn766SejefPmxoYNG7zTRo4caZx//vnGypUrjS+//NK4+uqrjcsuu8w4ffp0wF+jHa1cudKQZGzbtq3Q+5s3b24sWbLEMAzDOHbsmPHggw8aa9euNXbt2mWkpaUZnTt3Nho0aGAcPXo0kLGDwtq1a42ZM2camzdvNn788Udj8eLFRv369Y34+Pg88+XuA8MwjOnTpxsRERHGkiVLjK+++sq4+eabjejoaPqgDPbv329cdNFFxtVXX2389NNPRkZGhvcvN9YD8yxatMgIDQ015s2bZ2zbts0YM2aMUb16dWP37t2GYRjG+PHjjYSEBO/8P/74oxEeHm6MHTvW2LZtmzFv3jwjNDTU+Ne//mXVS7C1e+65x4iIiDDS09PzvN9PnDjhnSd/H8yaNctYunSp8d133xlff/21MX78eEOSkZycbMVLsL0HH3zQSE9PN3788Udj/fr1Rr9+/YwaNWqwDgSYx+MxGjVqZDz66KMF7mMdMN+xY8e82/6SvNs/e/bsMQyjdNs2CQkJec5w/J///McICQkxpk+fbmzfvt2YPn26UblyZWP9+vU+ZaOQK4WhQ4cakgr8paWleefZs2eP0bdvX6NatWpGrVq1jPvuu884efKk9/5du3YVeMwff/xh3HfffUatWrWMatWqGf369TP27t0bwFdmbzfffLPRpUuXIu+XZMyfP98wDMM4ceKE0bNnT6Nu3bpGaGio0ahRI2Po0KG0dxlt2rTJ6NixoxEREWFUrVrVaN68ufHEE08Yx48fzzNf7j4wjJzT9D7xxBNGVFSUERYWZnTr1s346quvApw+OMyfP7/Qz6X8v8+xHpjrhRdeMBo3bmxUqVLFuOKKK/Kc+n7o0KFG9+7d88yfnp5utG3b1qhSpYrRpEkT46WXXgpw4uBR1Ps992dM/j54+umnjQsvvNCoWrWqUbNmTeMvf/mL8cEHHwQ+fJAYMmSIER0dbYSGhhr169c3Bg4caHzzzTfe+1kHAmPFihWGJGPHjh0F7mMdMN/ZSzjk/xs6dKhhGKXbtunevbt3/rPeffddo3nz5kZoaKhxySWXlKm4dhnG/446BQAAAADYApcfAAAAAACboZADAAAAAJuhkAMAAAAAm6GQAwAAAACboZADAAAAAJuhkAMAAAAAm6GQAwAAAACboZADAAAAAJuhkAMAAAAAm6GQAwDARE2bNlVUVJRcLlexfwAAlEdlqwMAABAs/vvf/+rQoUPat2+f/vjjD+/06OhozZ8/X71797YwHQAgmFDIAQBQCjExMbr00ktVtWpVvfrqq6pSpYpGjhypSZMmeedZtmyZevXqpYiICEVEROR5/HnnnaeoqKgApwYABCuGVgIAUEqvv/66qlevrg0bNmjGjBl68sknlZqa6r0/JSVFAwYMsDAhAMApKOQAACilSy+9VE888YSaNWum2267Te3bt9cnn3wiSdq/f7+2bt2qPn36WJwSAOAEFHIAAJTSpZdemud2dHS0Dhw4IClnb9xVV12lWrVqWRENAOAwFHIAAJRSaGhontsul0tnzpyRxLBKAEBgUcgBAFBOv//+u9LS0hQfH291FACAQ1DIAQBQTh999JGaNWumCy64wOooAACHoJADAKCcli1bxrBKAEBAuQzDMKwOAQCAXXk8HtWrV08ffvihOnToYHUcAIBDsEcOAIByOHTokMaOHasrr7zS6igAAAdhjxwAAAAA2Ax75AAAAADAZijkAAAAAMBmKOQAAAAAwGYo5AAAAADAZijkAAAAAMBmKOQAAAAAwGYo5AAAAADAZijkAAAAAMBmKOQAAAAAwGb+H+6VIBobW5gPAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Set the value of T\n", + "T = 10 # You can change this to any other positive value you want\n", + "\n", + "# Create a range for n from -10*T to T\n", + "n_values = np.arange(-10*T, 10*T + 1, 1) # Use np.arange to include T\n", + "\n", + "# Calculate x and y coordinates\n", + "x_values = n_values / T\n", + "y_values = np.where(n_values != 0, (T / (np.pi * n_values)) * np.sin(np.pi * n_values / T), 0)\n", + "\n", + "# Create the plot\n", + "plt.figure(figsize=(10, 6))\n", + "plt.plot(x_values, y_values, 'bo', markersize=2) # 'bo' for blue circles only\n", + "plt.title('Plot of the Points')\n", + "plt.xlabel('n/T')\n", + "plt.ylabel('1/(πn) * sin(πn/T)')\n", + "plt.axhline(0, color='black', linewidth=0.5, ls='--')\n", + "plt.axvline(0, color='black', linewidth=0.5, ls='--')\n", + "plt.grid()\n", + "plt.ylim([-0.5, 1.5]) # Set limits for better visualization\n", + "plt.xlim([-10, 10]) # Adjust according to your needs\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "225fac2e", + "metadata": {}, + "source": [ + "## Transformata Fouriera" + ] + }, + { + "cell_type": "markdown", + "id": "82d6b948", + "metadata": {}, + "source": [ + "***Transformatą Fouriera*** funkcji $f$ nazywamy funkcję $F$ określoną wzorem:\n", + "\n", + "$$\n", + "F(x) = \\int_{-\\infty}^{\\infty} f(t) e^{-i x t} \\, dt .\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "bb1286ff", + "metadata": {}, + "source": [ + "***Uwaga:*** Jeżeli \n", + "$$\\int\\limits_{-\\infty}^{\\infty}|f(x)|dx<\\infty,$$ to\n", + "funkcja $F(x)$ jest poprawnie określona i jest jednostajnie ciągła." + ] + }, + { + "cell_type": "markdown", + "id": "c6792098-e423-4eda-803a-5ea25b8dc098", + "metadata": {}, + "source": [ + "## Zadanie 1\n", + "\n", + "Niech $f$ będzie funkcją taką, że $f(x)=1$ dla $|x|\\leq 1/2$ i $0$ dla $|x|>1/2$. Policzymy jej transformatę Fouriera." + ] + }, + { + "cell_type": "markdown", + "id": "c1de9622-d10e-4cc5-878b-57da84fc4880", + "metadata": {}, + "source": [ + "***Rozwiązanie:***\n", + "\n", + "Mamy:\n", + "\n", + "$$\n", + "F(0)=\\int_{-\\infty}^{\\infty} f(t)\\, dt=\\int_{-1/2}^{1/2}1dt=1\n", + "$$\n", + "a dla $x\\not =0$\n", + "mamy\n", + "\n", + "$$\n", + "F(x)=\\int_{-\\infty}^{\\infty} f(t)e^{-ixt}\\, dt=\\int_{-1/2}^{1/2}e^{-ixt}dt=\\frac{1}{-ix}e^{-ixt}\\bigg|_{-1/2}^{1/2}\n", + "=\\frac{1}{-ix}\\left(e^{-ix/2}-e^{ix/2} \\right)=\\frac{2\\sin(x/2)}{x}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "4c010520-1fd7-4cfa-9cdd-82d4e6584d16", + "metadata": {}, + "source": [ + "***Uwaga:*** porównaj poniższy wykres z tym co było poprzednio. Zmiana skali na osi \"x\" wzięła się z przyjętej przez nas definicji transformaty Fouriera." + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "45863f7e-df74-4736-a49b-adb8af3e2092", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3AAAAIpCAYAAADjHNpcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB8cElEQVR4nO3dd3gU1RrH8d+m0osESOggVUCqNEVARQQBFcWCIogVBQRE7AIqFmzYFUVAEEQUkStYwAuKdBCQJuClQ+gQerJJzv1jTDZLCrvJbIZsvp/n2Sezk5kz787s7M6758w5LmOMEQAAAADgghfidAAAAAAAAN+QwAEAAABAHkECBwAAAAB5BAkcAAAAAOQRJHAAAAAAkEeQwAEAAABAHkECBwAAAAB5BAkcAAAAAOQRJHAAAAAAkEeQwAEAAABAHkECBwDIFfHx8brnnntUsWJFFStWTC1atNCiRYvOu17dunW1ePFin7fz6KOPauLEidmOMzExUfXr19f+/fuzXQYAAIFCAgcAyBWJiYmqWrWqFi5cqGPHjqlv377q2rWrTp8+neV669evV8uWLX3axr59+/TDDz/ojjvuyHacYWFhuvfeezVq1KhslwEAQKCQwAEAckXhwoX1/PPPq1KlSgoJCVGvXr2UnJysLVu2KDk5WQMGDFBUVJSKFSumxo0b69ChQ5KkKlWq6I8//pAkuVwuffLJJ6pWrZpKlSqlF1980WsbX3zxhbp27aqwsDCdOnVKhQsXVlhYmIoUKaIiRYooJCREhQsX1tGjR/XII4/o3nvvlSQlJyfrhhtu0IABAyRJt99+uyZOnCi3252LewgAgPMjgQMAOOLvv//WmTNndPHFF+uXX37RokWLtHXrVh07dkyfffaZChQokOF6//3vf/XXX39pwYIFeuWVV7R58+bU//3000+68sorJVkJ42uvvabu3bvr5MmTOnLkiMLCwrRnzx6VLFlSTz31lL7++mvt3LlTTz75pJKSkvT2229LkqKjo1WyZEmtWLEi8DsCAAA/kMABAHLd6dOn1bNnTz377LMqUqSIwsPDdeLECf39999yuVxq3LixihQpkuG6TzzxhIoUKaJLLrlEDRs21F9//ZX6v7Vr16pGjRqpz9etW6d69epJshLGMmXKqESJEpKkChUq6O6771bXrl31yy+/6KuvvlJoaGjqurVr1/YqGwCACwEJHAAgV7ndbt1666265JJL9PTTT0uSrr76aj300EN64IEHFBMToyFDhmTafLFMmTKp04UKFdLJkydTnx87dswr8Vu3bp3q168vSfrrr79Ut25dr7IaNmyoNWvW6KOPPkqXMBYtWlRxcXE5e7EAANiMBA4ALgDjx4+Xy+VKfYSFhalChQq65557tGfPnnTLbd++3a/yFy1apOHDh+vYsWP2Bi5p6tSpqlu3rgoWLCiXy6XVq1dnumxycrLuvvtuhYaGauzYsXK5XKn/GzRokFavXq1ly5bpp59+0pdfful3LMWLF/dK6NavX59aA7d27VqvBG7ZsmUaMWKEunfvrgkTJqQr68SJEypevLjP2/ZnP1zITpw4oaFDh+raa69V6dKl5XK5NHz48AyXPXnypAYOHKhy5cqpQIECatiwob766iufthOo96Q/8Us5ew0A4AQSOAC4gIwbN06LFy/WnDlzdP/992vKlClq3bq1Tp06laNyFy1apBEjRth+sXzw4EH17NlTF198sX766SctXrxYNWvWzHT5Bx98ULGxsZo6darCwsJS569YsULLly9XYmKiihUrpoiICK/mjL6qX7++tmzZIknas2eP3G63qlatKknatGlTavPKnTt36pZbbtGkSZP0zjvvaPLkydqxY4dXWZs2bUqtvTsff/fDhezw4cMaM2aM4uPjdeONN2a5bLdu3TRhwgQNGzZMP/74oy677DLdcccdmjx58nm3E6j3pD/xSzl7DQDghLDzLwIAyC316tVT06ZNJUnt2rVTUlKSXnzxRc2YMUN33nmnw9Glt3nzZrndbt11111q06ZNlsvu2LEjtXOSqKio1Pk//vijEhISNHDgQG3btk2FCxfWrbfeqh49evgdz3XXXacFCxbopptu0vr163XJJZek1vKVL19eb731ljp16qQuXbpo2LBhatu2rSTprrvu0ksvvaRPP/1UkrR//34dPnw49VjYuR9Onz6tQoUK+f3ackvlypV19OhRuVwuHTp0SJ999lmGy82ePVtz5szR5MmTU4dtaNeunXbs2KHHH39ct912W7aS8JzyNX7pwn0NAJAlAwBw3Lhx44wks3z5cq/5s2bNMpLMyJEjvZbbtm1b6jILFiwwV111lSlSpIgpWLCgadmypfnhhx9S/z9s2DAjKd1j3rx5WcZ0vnJ79eqVrsw2bdrkeF/kxN69e021atVMYmJijsoZPXq0GTRokE/LZrUfUvb9ypUrzc0332xKlChhoqOjU9c93z5OW8aaNWvMLbfcYooVK2ZKlixpBg0aZNxut/n7779Nhw4dTJEiRUzlypXNa6+9lqPXntbBgweNJDNs2LB0/7vvvvtMkSJFjNvt9po/efJkI8ksXLgw03J9eU/6sm9yEn9OXwMAOIUmlABwAfvnn38kSaVLl87w/7/99puuuuoqxcXFaezYsZoyZYqKFi2qLl26aOrUqZKk++67T/3795ckTZ8+XYsXL9bixYvVuHHjTLfrS7nPPfecPvjgA0nSyy+/rMWLF+vDDz+07bVnR0xMjDp37pyj5m+JiYn67LPPNHToUJ+W92U/dOvWTdWrV9e0adP08ccfS/JtH6d16623qkGDBvr22291//336+2339agQYN044036vrrr9d3332nq666Sk888YSmT5+e7dfvq3Xr1qlOnTpeTWEl6dJLL039f2bO9570d9848RoAwDFOZ5AAAE/N2pIlS4zb7TYnTpwwP/zwgyldurQpWrSo2bdvn9dyKTVwLVq0MGXKlDEnTpxILSsxMdHUq1fPVKhQwSQnJxtjjHn99dfT1dxlxddy582bZySZadOm2bAX8q7M9kNKTdPzzz+fbh1f93FKGW+++abX+g0bNjSSzPTp01Pnud1uU7p0adOtWzdbXldWNVg1atQwHTp0SDd/7969RpJ5+eWXsyw7q/ekr/smJ/Hb8RoAwAnUwAHABaRFixYKDw9X0aJF1blzZ0VHR+vHH39U2bJl0y176tQpLV26VLfccotXF/ihoaHq2bOndu/erU2bNvkdQ6DKzc9uvvlmr+fZ2cedO3f2el6nTh25XC517NgxdV5YWJiqV6+erkOWjCQmJno9jDF+v660vYj687+s5Pb7LxCvAQACiU5MAOAC8sUXX6Q26SpbtqxiYmIyXfbo0aMyxmS4TLly5SRZPfL5K1Dl5mfn7svs7OOLLrrI63lERIQKFSqkAgUKpJt//PjxLOPZvn17au+cKebNm5faqYsvSpUqleH74MiRIxnG66vcfP8F6jUAQCCRwAHABaROnTo+93xYsmRJhYSEKDY2Nt3/9u7dK0levT36KlDlBkNtRnZqqaT0rz1Q+9hX5cqV0/Lly73m1apVy68y6tevrylTpigxMdHrHrK1a9dKUur4e/7KzX0TqNcAAIFEE0oAyKMKFy6s5s2ba/r06Tpz5kzq/OTkZE2aNEkVKlRIHYssMjJSkryWs6NcfxhjbH88/PDD6tOnj4wxSkpKUteuXdW/f/+AbCu7yVtu7mNfRUREqGnTpl6PokWL+lXGTTfdpJMnT+rbb7/1mj9hwgSVK1dOzZs3z3L9zN6TublvcvoaAMAJ1MABQB72yiuvqH379mrXrp2GDBmiiIgIffjhh1q3bp2mTJmSWvOTMiD1O++8o169eik8PFy1atXK9KLd13Kd9tRTT6lOnToaNmyY3n//fSUlJentt992OiyfXMj7+Mcff9SpU6d04sQJSdKGDRv0zTffSJI6deqkQoUKqWPHjmrfvr369u2r48ePq3r16poyZYp++uknTZo06bzjp2X1nszpvvElfkk5fg0A4Ai7e0UBAPgvs3HgMlsuo3HgChcubAoWLGhatGhh/vOf/6Rb96mnnjLlypUzISEhfo0Dl1W5F0IvlA8//LBp0KCBadCggVevhbnpfL1QHjx4MMP1fNnHmZXRq1cvU7hw4XRltmnTxtStWzdHr6dy5coZjtN27nvvxIkTZsCAASY6OtpERESYSy+91EyZMsXn7WT1nvT1fZ2T+O14DQCQ21zG2NgmBACAXPbpp5/qgQce0KJFi9SyZUunwwEAIKBI4AAAedayZcvUrVs3tWrVShdddFHqINkAAAQrEjgAQJ60c+dOXXHFFfriiy9Uq1Yt1apVS2vXrlXlypWdDg0AgIAhgQMA5DknTpzQ5ZdfrkcffVT33nuvJOnhhx+W2+3Wp59+6nB0AAAEDgkcAAAAAOQRQTcO3O+//64uXbqoXLlycrlcmjFjRpbLz58/Xy6XK93j77//zp2AAQAAAMBHQTcO3KlTp9SgQQPdc889uvnmm31eb9OmTSpWrFjq89KlSwciPAAAAADItqBL4Dp27KiOHTv6vV6ZMmVUokQJ+wMCAAAAAJsEXQKXXY0aNdLZs2d1ySWX6Nlnn1W7du2yXD4+Pl7x8fGpz5OTk3XkyBGVKlVKLpcr0OECAAAAuEAZY3TixAmVK1dOISH23rWW7xO4mJgYjRkzRk2aNFF8fLwmTpyoq6++WvPnz9eVV16Z6XqvvPKKRowYkYuRAgAAAMhLdu3apQoVKthaZlD3QulyufTdd9/pxhtv9Gu9Ll26yOVyaebMmZkuc24NXFxcnCpVqqTNmzfroosuym7IyAG326158+apXbt2Cg8PdzqcfIf97zyOgfPcbreuv/56zZo1i2PgEM4D53EMnMcxcN6RI0dUs2ZNHTt2TMWLF7e17HxfA5eRFi1aaNKkSVkuExkZqcjIyHTzL7roIpUqVSpQoSELbrdbhQoVUqlSpfiwcgD733kcA+e53W5dd911HAMHcR44j2PgPI7BhSMQt1YF3TACdli1apViYmKcDgMAkAclJSU5HQIAIIgFXQ3cyZMn9c8//6Q+37Ztm1avXq2LLrpIlSpV0lNPPaU9e/boiy++kCSNHj1aVapUUd26dZWQkKBJkybp22+/1bfffuvUSwAA5GH//e9/9eKLLzodBgAgSAVdArdixQqvHiQHDx4sSerVq5fGjx+v2NhY7dy5M/X/CQkJGjJkiPbs2aOCBQuqbt26mjVrljp16pTrsQMAAABAVoIugWvbtq2y6pdl/PjxXs+HDh2qoUOHBjgqAEB+0b9/f6dDAAAEMe6BAwDARtOnT3c6BABAECOBAwDARnv27HE6BABAECOBAwDARvRiDAAIJBI4AABs1L17d6dDAAAEMRI4AABs9O677zodAgAgiJHAAQAAAEAeQQIHAICN2rZt63QIAIAgRgIHAICNIiMjnQ4BABDESOAAALDRzz//7HQIAIAgRgIHAAAAAHkECRwAADZ68MEHnQ4BABDESOAAALARTSgBAIFEAgcAgI22b9/udAgAgCBGAgcAgI2ioqKcDgEAEMRI4AAAsFHv3r2dDgEAEMRI4AAAsNEbb7zhdAgAgCBGAgcAAAAAeQQJHAAANrr88sudDgEAEMRI4AAAsFHJkiWdDgEAEMRI4AAAsNEPP/zgdAgAgCBGAgcAAAAAeQQJHAAANurTp4/TIQAAghgJHAAANlqwYIHTIQAAghgJHAAANtqyZYvTIQAAghgJHAAANipevLjTIQAAghgJHAAANurbt6/TIQAAghgJHAAANnr11VedDgEAEMRI4AAAAAAgjyCBAwDARs2aNXM6BABAECOBAwDARuXLl3c6BABAECOBAwDARt99953TIQAAghgJHAAAAADkESRwAADY6O6773Y6BABAECOBAwDARitWrHA6BABAECOBAwDARhs2bHA6BABAECOBAwDARoUKFXI6BABAECOBAwDARoMGDXI6BABAECOBAwDARq+++qrTIQAAghgJHAAANkpKSnI6BABAECOBAwDARo0aNXI6BABAECOBAwDARjVq1HA6BABAECOBAwDARl9//bXTIQAAghgJHAAAAADkESRwAADY6Pbbb3c6BABAECOBAwDARhs3bnQ6BABAECOBAwDARmvWrHE6BABAECOBAwDARuHh4U6HAAAIYiRwAADYaOjQoU6HAAAIYiRwAADY6M0333Q6BABAECOBAwDARmfPnnU6BABAECOBAwDARnXr1nU6BABAECOBAwDARg0bNnQ6BABAECOBAwDARl9++aXTIQAAghgJHAAAAADkESRwAADY6Oabb3Y6BABAECOBAwDARjt27HA6BABAECOBAwDARitWrHA6BABAECOBAwAAAIA8ggQOAAAbPfPMM06HAAAIYiRwAADY6N1333U6BABAECOBAwDARidOnHA6BABAECOBAwDARrVq1XI6BABAECOBAwDARq1atXI6BABAECOBAwDARuPGjXM6BABAECOBAwAAAIA8ggQOAAAbde3a1ekQAABBLOgSuN9//11dunRRuXLl5HK5NGPGjPOu89tvv6lJkyYqUKCAqlWrpo8//jjwgQIAgtKhQ4ecDgEAEMSCLoE7deqUGjRooPfff9+n5bdt26ZOnTqpdevWWrVqlZ5++mkNGDBA3377bYAjBQAEo0WLFjkdAgAgiIU5HYDdOnbsqI4dO/q8/Mcff6xKlSpp9OjRkqQ6depoxYoVeuONN3TzzTcHKEoAQLA5dEhaudKl48cjtGGD1KCB0xEBAIJR0CVw/lq8eLGuvfZar3kdOnTQ2LFj5Xa7FR4enuF68fHxio+PT31+/PhxSZLb7Zbb7Q5cwMhUyn5n/zuD/e88joFz9uyRmjUL08GDYZLmqmHDcI0fn6gePYzToeU7nAfO4xg4j2PgvEDu+3yfwO3bt09ly5b1mle2bFklJibq0KFDiomJyXC9V155RSNGjEg3f968eSpUqFBAYoVv5syZ43QI+Rr733kcg9z3+utNdfBg+X+fDZL0kfr3T1JIyK8qVowLKCdwHjiPY+A8joFzTp8+HbCy830CJ0kul8vruTEmw/lpPfXUUxo8eHDq8+PHj6tixYpq166dSpUqFZhAkSW32605c+aoffv2mdacInDY/87jGDhjzhyXFi60vk6joozO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btw4SVLXrl116NAhLVq0SJL0+OOP6/PPP9fhw4dVrVo1XXPNNRrz7+BTHTt21KFD8fruu2Xav7+wkpMnSRomaatCQ2vpmmtu1r59AxURkayrr75akvTrr79Kkh555BF9//332r17t8qWLas77rhDo0ePliRdeWUb7d1bTt9//4tOnw6X9L6ksZJWqUyZknr66dv15ZfDJEmtWrVSVFSUZs6cKUm65557tGjRIm3atElFixbVgAEDNHLkSElS06ZNVblyZX377beSpDvvvFOrV6/W6tUbFRtbVvv3fy+pu6R4uVzX6IorKuvUqZcVGmp06623asuWLVq1apVCQ0P15JNP6u2339bp06d1ySWXqGnTpvriiy8kSTfddJP27NmjxYuXa/fuojpw4GdJD0o6oLCwprrttkbavPlFSVLnzp119OhRLVy4UJI0ZMgQjR8/XocOHVKVKlXUoUMHffLvoGMdOnRQfHy85s+fL0kaMGCApk2bptjYWJUqVUnbt7+kv//+ty949Vb16idVtOgHCgsz6tu3r2bNmqWdO3eqdOnS6tmzp9566y1JUuvWrVW0aFHNnj1bknTfffdp/vz5+ueff1SyZEnVrj1C7703Usa4JN2kMmWiFRPzgiIiktSrVy8tW7ZMGzduVJEiRfToo4/q5ZdfljFGTZo0UbVq1TRt2jRJ1rhc69at09q1axUREaHHH39cr7/+uhISElS/fn1ddFFzjR49U4mJIZKeUdmyC1S+/DSFhUlPP/203nnnHZ08eVJ16tRRs2bNNGHCBEnSjTfeqH379mnJkiWSpCeeeEJjxozR0aNHVb16dbVt21YfffS51q8vJbf7UUmHVabMWFWufFyDBw/WxIkTdfDgQVWqVCnLz4j+/ftr+vTp2rNnj2JiYtS9e3e9++67kqS2bdsqMjJSX3yxQDt3FpP0oQoXfk+1a89XmTKlsv0Z0axZM5UvX17fffedjJH27HlfsbG/SVqgBg3OasSIR/Tqq68qKSnJ58+Is2fPqm7dumrYsKG+/PJLSdLNN9+sHTt2aMWKFdqwoZROnfpR0j269NK/deml1XP0GXH69Gn99ttvkqSBAwfq0Ufn69ChfZLq6J13GmrSpLclya/PiDZt2qhQoUL68d9+8R944AHNnTtXW7duValSpdSnTx+NGDFChQoVsuUzYv369SpQoIAee+wx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XC7NmDHD6/++vO/j4+PVv39/RUVFqXDhwuratat2797tVxxBN4xAoCUkJKh79+5q2bKlxo4dm+7/SUlJuv7661W6dGn98ccfOnz4sHr16iVjjN577z1J0vHjx9W+fXu1a9dOy5cv1+bNm9W7d28VLlxYjz32WG6/pDytVatWio2N9Zr33HPPae7cuWratKnX/HHjxum6665LfV68ePFciTG/eOGFF3T//fenPi9SpEjqtC/nBbLv77//VnJysj755BNVr15d69at0/33369Tp07pjTfe8FqW8yBwpk6dqoEDB+rDDz/U5Zdfrk8++UQdO3bUhg0bVKlSJafDCyq//fabHnnkEV122WVKTEzUM888o2uvvVYbNmxQ4cKFU5e77rrrNG7cuNTnERERToQbtOrWrau5c+emPg8NDU2dHjVqlN566y2NHz9eNWvW1EsvvaT27dtr06ZNfg3ThMwtX75cSUlJqc/XrVun9u3bq3v37qnzOAfsderUKTVo0ED33HOPbr755nT/9+V9P3DgQP3nP//RV199pVKlSumxxx5T586dtXLlSq9zKEsG2TJu3DhTvHjxdPNnz55tQkJCzJ49e1LnTZkyxURGRpq4uDhjjDEffvihKV68uDl79mzqMq+88oopV66cSU5ODnjswSwhIcGUKVPGvPDCC17zJZnvvvvOmaDygcqVK5u333470//7cl7AXqNGjTJVq1b1msd5EFjNmjUzDz30kNe82rVrmyeffNKhiPKPAwcOGEnmt99+S53Xq1cvc8MNNzgXVJAbNmyYadCgQYb/S05ONtHR0ebVV19NnXf27FlTvHhx8/HHH+dShPnPo48+ai6++OLUa0nOgcA69zvVl/f9sWPHTHh4uPnqq69Sl9mzZ48JCQkxP/30k8/bpgmlzRYvXqx69eqpXLlyqfM6dOig+Ph4rVy5MnWZNm3aeA3s16FDB+3du1fbt2/P7ZCDysyZM3Xo0CH17t073f/69eunqKgoXXbZZfr444+VnJyc+wEGsddee02lSpVSw4YNNXLkSK/me76cF7BXXFycLrroonTzOQ8CIyEhQStXrtS1117rNf/aa6/VokWLHIoq/4iLi5OkdO/5+fPnq0yZMqpZs6buv/9+HThwwInwgtaWLVtUrlw5Va1aVbfffru2bt0qSdq2bZv27dvndT5ERkaqTZs2nA8BkpCQoEmTJqlPnz5yuVyp8zkHco8v7/uVK1fK7XZ7LVOuXDnVq1fPr3ODJpQ227dvn8qWLes1r2TJkoqIiNC+fftSl6lSpYrXMinr7Nu3T1WrVs2VWIPR2LFj1aFDB1WsWNFr/osvvqirr75aBQsW1K+//qrHHntMhw4d0rPPPutQpMHl0UcfVePGjVWyZEktW7ZMTz31lLZt26bPPvtMkm/nBezzv//9T++9957efPNNr/mcB4Fz6NAhJSUlpXufly1blvd4gBljNHjwYF1xxRWqV69e6vyOHTuqe/fuqly5srZt26bnnntOV111lVauXOn1Ayqyp3nz5vriiy9Us2ZN7d+/Xy+99JJatWql9evXp77nMzofduzY4US4QW/GjBk6duyY1w/YnAO5y5f3/b59+xQREaGSJUumW8af7woSOFk34o4YMSLLZZYvX57unqrMpP3lI4Uxxmv+ucuYfzswyWjd/Cg7x2T37t36+eef9fXXX6dbNu0FasOGDSVZ92xx4Zo5f47BoEGDUuddeumlKlmypG655ZbUWjnJt/MC3rJzHuzdu1fXXXedunfvrvvuu89rWc6DwMvos533eGD169dPf/31l/744w+v+bfddlvqdL169dS0aVNVrlxZs2bNUrdu3XI7zKDTsWPH1On69eurZcuWuvjiizVhwoTUjjI4H3LP2LFj1bFjR6+WLpwDzsjO+97fc4METtaH/+23357lMufWmGUmOjpaS5cu9Zp39OhRud3u1Iw8Ojo6XZadUqV9btaeX2XnmIwbN06lSpVS165dz1t+ixYtdPz4ce3fv599nomcnBcpX97//POPSpUq5dN5gfT8PQZ79+5Vu3bt1LJlS40ZM+a85XMe2CcqKkqhoaEZfrazbwOnf//+mjlzpn7//XdVqFAhy2VjYmJUuXJlbdmyJZeiy18KFy6s+vXra8uWLbrxxhslWbUNMTExqctwPgTGjh07NHfuXE2fPj3L5TgHAiulF9as3vfR0dFKSEjQ0aNHvWrhDhw4oFatWvm8LRI4WV+8UVFRtpTVsmVLjRw5UrGxsakH75dfflFkZKSaNGmSuszTTz+thISE1N6AfvnlF5UrV87nRDHY+XtMjDEaN26c7r77boWHh593+VWrVqlAgQKZDgWBnJ0Xq1atkqTUc8CX8wLp+XMM9uzZo3bt2qlJkyYaN26cQkLOf4sz54F9IiIi1KRJE82ZM0c33XRT6vw5c+bohhtucDCy4GSMUf/+/fXdd99p/vz5Pt16cPjwYe3atcvrwgr2iY+P18aNG9W6dWtVrVpV0dHRmjNnjho1aiTJukfrt99+02uvveZwpMFn3LhxKlOmjK6//vosl+McCCxf3vdNmjRReHi45syZo1tvvVWSFBsbq3Xr1mnUqFG+byy7Pa/kVzt27DCrVq0yI0aMMEWKFDGrVq0yq1atMidOnDDGGJOYmGjq1atnrr76avPnn3+auXPnmgoVKph+/fqllnHs2DFTtmxZc8cdd5i1a9ea6dOnm2LFipk33njDqZeV582dO9dIMhs2bEj3v5kzZ5oxY8aYtWvXmn/++cd8+umnplixYmbAgAEORBp8Fi1aZN566y2zatUqs3XrVjN16lRTrlw507Vr19RlfDkvkH179uwx1atXN1dddZXZvXu3iY2NTX2k4DwIvK+++sqEh4ebsWPHmg0bNpiBAweawoULm+3btzsdWtDp27evKV68uJk/f77X+/306dPGGGNOnDhhHnvsMbNo0SKzbds2M2/ePNOyZUtTvnx5c/z4cYejDw6PPfaYmT9/vtm6datZsmSJ6dy5sylatGjq+/3VV181xYsXN9OnTzdr1641d9xxh4mJiWH/2ywpKclUqlTJPPHEE17zOQcC48SJE6nX/pJSr3927NhhjPHtff/QQw+ZChUqmLlz55o///zTXHXVVaZBgwYmMTHR5zhI4PzUq1cvIyndY968eanL7Nixw1x//fWmYMGC5qKLLjL9+vXzGjLAGGP++usv07p1axMZGWmio6PN8OHDGUIgB+644w7TqlWrDP/3448/moYNG5oiRYqYQoUKmXr16pnRo0cbt9udy1EGp5UrV5rmzZub4sWLmwIFCphatWqZYcOGmVOnTnkt58t5gewZN25chp9LaX+j4zzIHR988IGpXLmyiYiIMI0bN/bq1h72yez9Pm7cOGOMMadPnzbXXnutKV26tAkPDzeVKlUyvXr1Mjt37nQ28CBy2223mZiYGBMeHm7KlStnunXrZtavX5/6/+TkZDNs2DATHR1tIiMjzZVXXmnWrl3rYMTB6eeffzaSzKZNm7zmcw4Exrx58zL87OnVq5cxxrf3/ZkzZ0y/fv3MRRddZAoWLGg6d+7s93FxGfNv7xkAAAAAgAsa48ABAAAAQB5BAgcAAAAAeQQJHAAAAADkESRwAAAAAJBHkMABAAAAQB5BAgcAAAAAeQQJHAAAAADkESRwAAAAAJBHkMABAAAAQB5BAgcAAAAAeQQJHAAAAADkESRwAADkwMGDBxUdHa2XX345dd7SpUsVERGhX375xcHIAADByGWMMU4HAQBAXjZ79mzdeOONWrRokWrXrq1GjRrp+uuv1+jRo50ODQAQZEjgAACwwSOPPKK5c+fqsssu05o1a7R8+XIVKFDA6bAAAEGGBA4AABucOXNG9erV065du7RixQpdeumlTocEAAhC3AMHAIANtm7dqr179yo5OVk7duxwOhwAQJCiBg4AgBxKSEhQs2bN1LBhQ9WuXVtvvfWW1q5dq7JlyzodGgAgyJDAAQCQQ48//ri++eYbrVmzRkWKFFG7du1UtGhR/fDDD06HBgAIMjShBAAgB+bPn6/Ro0dr4sSJKlasmEJCQjRx4kT98ccf+uijj5wODwAQZKiBAwAAAIA8gho4AAAAAMgjSOAAAAAAII8ggQMAAACAPIIEDgAAAADyCBI4AAAAAMgjSOAAAAAAII8ggQMAAACAPIIEDgAAAADyCBI4AAAAAMgjSOAAAAAAII8ggQMAAACAPOL/+iHuWLXNDI0AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Define the range for x from -10 to 10\n", + "x_values = np.linspace(-100, 100, 400)\n", + "\n", + "# Calculate y values while handling the singularity at x = 0\n", + "y_values = np.where(x_values != 0, (2 * np.sin(x_values / 2)) / x_values, 1) # Limit as x->0 is 1\n", + "\n", + "# Create the plot\n", + "plt.figure(figsize=(10, 6))\n", + "plt.plot(x_values, y_values, 'b-', lw=2) # 'b-' for blue line\n", + "plt.title(r'Plot of $\\frac{2\\sin(\\pi x)}{x}$ from -10 to 10')\n", + "plt.xlabel('x')\n", + "plt.ylabel(r'$\\frac{2\\sin(x/2)}{x}$')\n", + "plt.axhline(0, color='black', linewidth=0.5, ls='--')\n", + "plt.axvline(0, color='black', linewidth=0.5, ls='--')\n", + "plt.grid()\n", + "plt.ylim([-1.5, 1.5]) # Set limits for better visualization\n", + "plt.xlim([-100, 100]) # Set x-axis range\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "id": "858bb5bb-3a0a-4278-809f-a7db69485c64", + "metadata": {}, + "source": [ + "## Zadanie 2\n", + "Niech $f\\colon\\mathbb{R}\\to\\mathbb{R}$ będzie funkcją różniczkowalną taką, że $f$ ma wartość $0$ poza przedziałem $[a,b]$.\n", + "Niech $F$ będzie transformatą Fouriera dla funkcji $f$. Wyznaczymy transformatę Fouriera funkcji $f'$." + ] + }, + { + "cell_type": "markdown", + "id": "bd2e6695-f678-4e35-ae48-c13d9b7d15ad", + "metadata": {}, + "source": [ + "##### Rozwiązanie:\n", + "\n", + "Z definicji transformata Fouriera funkcji $f'$ w punkcie $x$ jest równa\n", + "\n", + "$$\n", + "\\int_{-\\infty}^\\infty f'(t)e^{-ixt}dt=\\int_a^bf'(t)e^{-ixt}dt.\n", + "$$\n", + "\n", + "Ze wzoru na całkowanie przez części otrzymujemy, że \n", + "\n", + "$$\n", + "\\int f'(t)e^{-ixt}dt=f(t)e^{-ixt}+ix \\int f(t)e^{-ixt}dt\n", + "$$\n", + "\n", + "Zatem (ponieważ $f(a)=0$ i $f(b)=0$) \n", + "\n", + "$$\n", + "\\int_{-\\infty}^\\infty f'(t)e^{-ixt}dt=\\int_b^b f'(t)e^{-ixt}dt=f(t)e^{-ixt}|_a^b+ix \\int_a^b f(t)e^{-ixt}dt\n", + "=ix\\int_{-\\infty}^\\infty f(t)e^{-ixt}dt=ixF(x). \n", + "$$\n" + ] + }, + { + "cell_type": "markdown", + "id": "9340dd72-fb0f-4a24-898e-9eb4ebd154d8", + "metadata": {}, + "source": [ + "***Uwaga:*** powyższa obserwacja ma fundamentalne znaczenie dla równań różniczkowych: transformata Fouriera zamienia różniczkowanie na \n", + "operację mnożenia przez wielomian." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e4033200-249e-4fda-9991-75b60e0c43c2", + "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.11.3" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": false, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}