164 lines
62 KiB
Plaintext
164 lines
62 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"id": "32325121-b5c7-40fc-9ef2-e09b561fd5bb",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import matplotlib.pyplot as plt"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"id": "8bcd6e56-07dc-47fe-8fb5-3d107a463f3d",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def fouriergeneral(dx,dy, n=3):\n",
|
|
" A = np.zeros((len(dx),1 + 2*n))\n",
|
|
" for i in range(len(dx)):\n",
|
|
" A[i, 0] = 1\n",
|
|
" for j in range(n):\n",
|
|
" w = np.pi * (j+1)\n",
|
|
"\n",
|
|
" A[i, 1 + (j)*2] = np.sin(w * dx[i])\n",
|
|
" A[i, 2 + (j)*2] = np.cos(w * dx[i])\n",
|
|
" \n",
|
|
" a = np.linalg.solve(A.T @ A, A.T @ dy)\n",
|
|
" \n",
|
|
" return a"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"id": "ff9aba98-48df-4c92-929d-152f74382589",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def fourierparticulier(dx, dy):\n",
|
|
" return fouriergeneral(dx, dy, 3)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"id": "3b5cd02c-7599-46cf-8024-8dba07ff1376",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"dx = np . arange (0 ,2 ,0.1)\n",
|
|
"dy = np . concatenate (( - np . ones (10) , np . ones (10) ) )\n",
|
|
"plt . plot ( dx , dy ,'ob')\n",
|
|
"\n",
|
|
"\n",
|
|
"a = fouriergeneral(dx, dy, 3)\n",
|
|
"x = np.linspace(0, 2, 500)\n",
|
|
"y = np.zeros(len(x))\n",
|
|
"y += a[0]\n",
|
|
"\n",
|
|
"for i in range(3):\n",
|
|
" w = np.pi * (i+1)\n",
|
|
" y += a[1 + i*2] * np.sin(w * x) \n",
|
|
" y += a[2 + i*2] * np.cos(w * x) \n",
|
|
"\n",
|
|
"plt.plot(x, y)\n",
|
|
"\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"id": "d2cf6462-d6fa-4ac6-897c-9d851a2c464f",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"dx = np . arange (0 ,2 ,0.1)\n",
|
|
"dy = np . concatenate (( - np . ones (10) , np . ones (10) ) )\n",
|
|
"plt . plot ( dx , dy ,'ob')\n",
|
|
"\n",
|
|
"n = 8\n",
|
|
"a = fouriergeneral(dx, dy, n)\n",
|
|
"x = np.linspace(0, 2, 500)\n",
|
|
"y = np.zeros(len(x))\n",
|
|
"y += a[0]\n",
|
|
"\n",
|
|
"for i in range(n):\n",
|
|
" w = np.pi * (i+1)\n",
|
|
" y += a[1 + i*2] * np.sin(w * x) \n",
|
|
" y += a[2 + i*2] * np.cos(w * x) \n",
|
|
"\n",
|
|
"plt.plot(x, y)\n",
|
|
"\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "faf237f8-27dc-4219-a7bf-2e83cbbcc346",
|
|
"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.5"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|