mirror of
https://github.com/BreizhHardware/py_CIPA3.git
synced 2026-01-18 16:37:30 +01:00
add exercise 2: implement heat equation in notebook and Python script
This commit is contained in:
18
TP Physique Equation de la chaleur/Exercice 2.py
Normal file
18
TP Physique Equation de la chaleur/Exercice 2.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Eq en régime permanent
|
||||
# d2T / dx2 = 0
|
||||
# T(x =0) = T0
|
||||
# T(x = 1) = T1
|
||||
# T(i)i E [0, N+1]
|
||||
# x(i+1) - x(i) = deltaX = 1/N
|
||||
# d2T/dx2 = (T(i-1) - 2*T(i) + T(i+1))/deltaX**2
|
||||
|
||||
# Question 1: Résoudre cette équation pour les conditions aux bord
|
||||
# d2T / dx2 => dT / dx = A => T(x) = Ax + b
|
||||
# Ici b = T0 d'où T(x) = Ax + T0
|
||||
# T1 - T0 / 1 - 0 = A = T1 - T0 donc T(x) = (T1 - T0)x + T0
|
||||
# Question 2: Ecrire l'équation de la chaleur discrétisée pour i E [1, N-2], puis pour i = 0 et i = N
|
||||
# d2T/dx2 = 0
|
||||
# T(i+1) - 2*T(i) + T(i-1) = 0
|
||||
# Pour i = 0
|
||||
# -2T0 + T(1) = -T0-
|
||||
# Pour i = N
|
||||
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "d72483d906868e17",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# TP Physique - Équation de la chaleur\n",
|
||||
"## Exercice 2\n",
|
||||
"\n",
|
||||
"Eq en régime permanent\n",
|
||||
"\n",
|
||||
"d2T / dx2 = 0\n",
|
||||
"\n",
|
||||
"T(x =0) = T0\n",
|
||||
"\n",
|
||||
"T(x = 1) = T1\n",
|
||||
"\n",
|
||||
"T(i)i E [0, N+1]\n",
|
||||
"\n",
|
||||
"x(i+1) - x(i) = deltaX = 1/N\n",
|
||||
"\n",
|
||||
"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",
|
||||
"d2T / dx2 => dT / dx = A => T(x) = Ax + b\n",
|
||||
"\n",
|
||||
"Ici b = T0 d'où T(x) = Ax + T0\n",
|
||||
"\n",
|
||||
"T1 - T0 / 1 - 0 = A = T1 - T0 donc T(x) = (T1 - T0)x + T0\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",
|
||||
"\n",
|
||||
"T(i+1) - 2*T(i) + T(i-1) = 0\n",
|
||||
"\n",
|
||||
"Pour i = 0: T(i-1) = ? => CB = T0-\n",
|
||||
"\n",
|
||||
"-2T0 + T(1) = -T0-\n",
|
||||
"\n",
|
||||
"Pour i = N: T(N+2) = T1+\n",
|
||||
"\n",
|
||||
"T(N) - 2T(N+1) = -T1+\n",
|
||||
"\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",
|
||||
"$$\n",
|
||||
"=> MT = b\n",
|
||||
"\n",
|
||||
"Matrice du système (simplifiée pour N=6, normalement N indéfini)\n",
|
||||
"$$\n",
|
||||
"\\begin{bmatrix}\n",
|
||||
"-2 & 1 & 0 & 0 & 0 & 0 & 0\\\\\n",
|
||||
"1 & -2 & 1 & 0 & 0 & 0 & 0\\\\\n",
|
||||
"0 & 1 & -2 & 1 & 0 & 0 & 0\\\\\n",
|
||||
"0 & 0 & 1 & -2 & 1 & 0 & 0\\\\\n",
|
||||
"0 & 0 & 0 & 1 & -2 & 1 & 0\\\\\n",
|
||||
"0 & 0 & 0 & 0 & 1 & -2 & 1\\\\\n",
|
||||
"0 & 0 & 0 & 0 & 0 & 1 & -2\\\\\n",
|
||||
"\\end{bmatrix}\n",
|
||||
"\\begin{bmatrix}\n",
|
||||
"T0\\\\\n",
|
||||
"T1\\\\\n",
|
||||
"T2\\\\\n",
|
||||
"T3\\\\\n",
|
||||
"T4\\\\\n",
|
||||
"T5\\\\\n",
|
||||
"T\n",
|
||||
"\\end{bmatrix}\n",
|
||||
"=\n",
|
||||
"\\begin{bmatrix}\n",
|
||||
"-T0\\\\\n",
|
||||
"0\\\\\n",
|
||||
"0\\\\\n",
|
||||
"0\\\\\n",
|
||||
"0\\\\\n",
|
||||
"0\\\\\n",
|
||||
"-T1+\n",
|
||||
"\\end{bmatrix}\n",
|
||||
"$$"
|
||||
]
|
||||
}
|
||||
],
|
||||
"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.13.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
Reference in New Issue
Block a user