From 5172aee37afcde07ee2cd356a2900ed329d68857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20MARQUET?= <72651575+BreizhHardware@users.noreply.github.com> Date: Tue, 1 Apr 2025 09:57:21 +0200 Subject: [PATCH] update exercise 2: refine heat equation implementation in Jupyter notebook, add matrix construction and solution plotting --- .../TP Physique Equation de la chaleur.ipynb | 54 ++++++++++++++----- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/TP Physique Equation de la chaleur/TP Physique Equation de la chaleur.ipynb b/TP Physique Equation de la chaleur/TP Physique Equation de la chaleur.ipynb index d44d0bc..907c7be 100644 --- a/TP Physique Equation de la chaleur/TP Physique Equation de la chaleur.ipynb +++ b/TP Physique Equation de la chaleur/TP Physique Equation de la chaleur.ipynb @@ -23,23 +23,31 @@ "d2T/dx2 = (T(i-1) - 2*T(i) + T(i+1))/deltaX**2\n", "\n", "### Question 1: Résoudre cette équation pour les conditions aux bord\n", + "$$\n", "d2T / dx2 => dT / dx = A => T(x) = Ax + b\n", + "$$\n", "\n", - "Ici b = T0 d'où T(x) = Ax + T0\n", + "Ici b = T0 d'où $$T(x) = Ax + T0$$\n", "\n", + "$$\n", "T1 - T0 / 1 - 0 = A = T1 - T0 donc T(x) = (T1 - T0)x + T0\n", + "$$\n", "### Question 2: Ecrire l'équation de la chaleur discrétisée pour i E [1, N-2], puis pour i = 0 et i = N\n", - "d2T/dx2 = 0\n", + "$$d2T/dx2 = 0$$\n", "\n", - "T(i+1) - 2*T(i) + T(i-1) = 0\n", + "$$T(i+1) - 2*T(i) + T(i-1) = 0$$\n", "\n", - "Pour i = 0: T(i-1) = ? => CB = T0-\n", + "Pour i = 0: $$T(i-1) = ? => CB = T0-$$\n", "\n", + "$$\n", "-2T0 + T(1) = -T0-\n", + "$$\n", "\n", - "Pour i = N: T(N+2) = T1+\n", + "Pour i = N: $$T(N+2) = T1+$$\n", "\n", + "$$\n", "T(N) - 2T(N+1) = -T1+\n", + "$$\n", "\n", "Système linéaire\n", "$$\n", @@ -94,13 +102,14 @@ { "metadata": { "ExecuteTime": { - "end_time": "2025-04-01T07:53:00.484017Z", - "start_time": "2025-04-01T07:53:00.474195Z" + "end_time": "2025-04-01T07:56:41.293277Z", + "start_time": "2025-04-01T07:56:41.240084Z" } }, "cell_type": "code", "source": [ "import numpy as np\n", + "import matplotlib.pyplot as plt\n", "\n", "# Constantes et paramètres\n", "N = 100\n", @@ -127,20 +136,27 @@ " M[i, i + 1] = 1\n", "\n", "# Affichage de la matrice M\n", - "print(M)\n", + "print(f\"Matrice M: {M}\")\n", "\n", "# Remplissage du vecteur b\n", "b[0] = -T0\n", "b[N] = -T1\n", "\n", "# Affichage du vecteur b\n", - "print(b)\n", + "print(f\"Matrice b: {b}\")\n", "\n", "# Résolution du système linéaire\n", "T = np.linalg.solve(M, b)\n", "\n", "# Affichage de la solution\n", - "print(T)" + "print(f\"Solution T: {T}\")\n", + "\n", + "# Tracé de la solution\n", + "plt.plot(np.linspace(0, 1, N + 1), T)\n", + "plt.ylabel(\"Température (°C)\")\n", + "plt.title(\"Distribution de température\")\n", + "plt.grid()\n", + "plt.show()" ], "id": "d480d6e691bf7fbf", "outputs": [ @@ -148,14 +164,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[-2. 1. 0. ... 0. 0. 0.]\n", + "Matrice M: [[-2. 1. 0. ... 0. 0. 0.]\n", " [ 1. -2. 1. ... 0. 0. 0.]\n", " [ 0. 1. -2. ... 0. 0. 0.]\n", " ...\n", " [ 0. 0. 0. ... -2. 1. 0.]\n", " [ 0. 0. 0. ... 1. -2. 1.]\n", " [ 0. 0. 0. ... 0. 1. -2.]]\n", - "[ -2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + "Matrice b: [ -2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", @@ -163,7 +179,7 @@ " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", " 0. 0. -25.]\n", - "[ 2.2254902 2.45098039 2.67647059 2.90196078 3.12745098 3.35294118\n", + "Solution T: [ 2.2254902 2.45098039 2.67647059 2.90196078 3.12745098 3.35294118\n", " 3.57843137 3.80392157 4.02941176 4.25490196 4.48039216 4.70588235\n", " 4.93137255 5.15686275 5.38235294 5.60784314 5.83333333 6.05882353\n", " 6.28431373 6.50980392 6.73529412 6.96078431 7.18627451 7.41176471\n", @@ -181,9 +197,19 @@ " 22.51960784 22.74509804 22.97058824 23.19607843 23.42156863 23.64705882\n", " 23.87254902 24.09803922 24.32352941 24.54901961 24.7745098 ]\n" ] + }, + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "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" + }, + "metadata": {}, + "output_type": "display_data" } ], - "execution_count": 4 + "execution_count": 7 } ], "metadata": {