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 4d9d773..d44d0bc 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 @@ -43,20 +43,19 @@ "\n", "Système linéaire\n", "$$\n", - "-2T0 + T(1) = -T0\n", - "\n", - "T0 - 2T1 + T2 = 0\n", - "\n", - "T1 - 2T2 + T3 = 0\n", - "\n", - ".\n", - ".\n", - ".\n", - "\n", - "TN - 2T(N+1) = -T1+\n", + "\\begin{cases}\n", + "-2T_0 + T_1 = -T_0 \\\\\n", + "T_0 - 2T_1 + T_2 = 0 \\\\\n", + "T_1 - 2T_2 + T_3 = 0 \\\\\n", + "\\vdots \\\\\n", + "T_{N-1} - 2T_N + T_{N+1} = 0 \\\\\n", + "T_N - 2T_{N+1} = -T_1\n", + "\\end{cases}\n", "$$\n", + "\n", "=> MT = b\n", "\n", + "### Question 3: Montrer que l'équation discrétisée peut s'écrire: MT = b, avc M une matrice de taille N X N et b un vecteur de taille N. On précisera les termes non nuls de M et b.\n", "Matrice du système (simplifiée pour N=6, normalement N indéfini)\n", "$$\n", "\\begin{bmatrix}\n", @@ -87,8 +86,104 @@ "0\\\\\n", "-T1+\n", "\\end{bmatrix}\n", - "$$" + "$$\n", + "\n", + "### Question 4: Sous python, construire la matrice M et le vecteur b à l'aide de numpy. Résoudre ensuite le système linéaire à l'aide de la fonction numpy.linalg.solve(M, b).\n" ] + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-04-01T07:53:00.484017Z", + "start_time": "2025-04-01T07:53:00.474195Z" + } + }, + "cell_type": "code", + "source": [ + "import numpy as np\n", + "\n", + "# Constantes et paramètres\n", + "N = 100\n", + "\n", + "M = np.zeros((N + 1, N + 1))\n", + "\n", + "b = np.zeros(N + 1)\n", + "\n", + "# Conditions aux bords\n", + "T0 = 2\n", + "T1 = 25\n", + "\n", + "# Remplissage de la matrice M\n", + "for i in range(N + 1):\n", + " if i == 0:\n", + " M[i, i] = -2\n", + " M[i, i + 1] = 1\n", + " elif i == N:\n", + " M[i, i - 1] = 1\n", + " M[i, i] = -2\n", + " else:\n", + " M[i, i - 1] = 1\n", + " M[i, i] = -2\n", + " M[i, i + 1] = 1\n", + "\n", + "# Affichage de la matrice M\n", + "print(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", + "\n", + "# Résolution du système linéaire\n", + "T = np.linalg.solve(M, b)\n", + "\n", + "# Affichage de la solution\n", + "print(T)" + ], + "id": "d480d6e691bf7fbf", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[-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", + " 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", + " 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", + " 0. 0. -25.]\n", + "[ 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", + " 7.6372549 7.8627451 8.08823529 8.31372549 8.53921569 8.76470588\n", + " 8.99019608 9.21568627 9.44117647 9.66666667 9.89215686 10.11764706\n", + " 10.34313725 10.56862745 10.79411765 11.01960784 11.24509804 11.47058824\n", + " 11.69607843 11.92156863 12.14705882 12.37254902 12.59803922 12.82352941\n", + " 13.04901961 13.2745098 13.5 13.7254902 13.95098039 14.17647059\n", + " 14.40196078 14.62745098 14.85294118 15.07843137 15.30392157 15.52941176\n", + " 15.75490196 15.98039216 16.20588235 16.43137255 16.65686275 16.88235294\n", + " 17.10784314 17.33333333 17.55882353 17.78431373 18.00980392 18.23529412\n", + " 18.46078431 18.68627451 18.91176471 19.1372549 19.3627451 19.58823529\n", + " 19.81372549 20.03921569 20.26470588 20.49019608 20.71568627 20.94117647\n", + " 21.16666667 21.39215686 21.61764706 21.84313725 22.06862745 22.29411765\n", + " 22.51960784 22.74509804 22.97058824 23.19607843 23.42156863 23.64705882\n", + " 23.87254902 24.09803922 24.32352941 24.54901961 24.7745098 ]\n" + ] + } + ], + "execution_count": 4 } ], "metadata": {