Refactor code for improved readability and consistency across multiple Jupyter notebooks

- Added missing commas in various print statements and function calls for better syntax.
- Reformatted code to enhance clarity, including breaking long lines and aligning parameters.
- Updated function signatures to use float type for sigma parameters instead of int for better precision.
- Cleaned up comments and documentation strings for clarity and consistency.
- Ensured consistent formatting in plotting functions and data handling.
This commit is contained in:
2025-12-13 23:38:17 +01:00
parent f89ff4a016
commit d5a6bfd339
50 changed files with 779 additions and 449 deletions

View File

@@ -113,9 +113,7 @@
"\n",
"\n",
"def C(t):\n",
" \"\"\"\n",
" Fonction retournant la solution exacte du problème au temps t\n",
" \"\"\"\n",
" \"\"\"Fonction retournant la solution exacte du problème au temps t\"\"\"\n",
" return K_star + K / (1 + (K / K0 - 1) * np.exp(-r * (t - t_fl)))\n",
"\n",
"\n",
@@ -137,9 +135,7 @@
"\n",
"\n",
"def dN(N, t, C_sol):\n",
" \"\"\"\n",
" Fonction calculant la dérivée de la solution approchée du problème à l'instant t dépendant de N(t) et de C(t)\n",
" \"\"\"\n",
" \"\"\"Fonction calculant la dérivée de la solution approchée du problème à l'instant t dépendant de N(t) et de C(t)\"\"\"\n",
" return r_N * N * (1 - N / C_sol(t))\n",
"\n",
"\n",
@@ -239,13 +235,19 @@
"# On crée une figure à trois graphiques\n",
"fig = plt.figure(figsize=(12, 6))\n",
"ax = fig.add_subplot(\n",
" 1, 2, 2\n",
" 1,\n",
" 2,\n",
" 2,\n",
") # subplot pour le champ de vecteurs et le graphe sardines vs requins\n",
"axr = fig.add_subplot(\n",
" 2, 2, 1\n",
" 2,\n",
" 2,\n",
" 1,\n",
") # subplot pour le graphe du nombre de requins en fonction du temps\n",
"axs = fig.add_subplot(\n",
" 2, 2, 3\n",
" 2,\n",
" 2,\n",
" 3,\n",
") # subplot pour le graphe du nombre de sardines en fonction du temps\n",
"ax.quiver(sardines, requins, fsardines / n_sndmb, frequins / n_sndmb)\n",
"\n",
@@ -317,12 +319,10 @@
"outputs": [],
"source": [
"def crank_nicolson(y0, T, N, r):\n",
" \"\"\"\n",
" schéma de Crank-Nicolson pour le modèle de Malthus\n",
" \"\"\"schéma de Crank-Nicolson pour le modèle de Malthus\n",
"\n",
" Parameters\n",
" ----------\n",
"\n",
" y0: float\n",
" donnée initiale\n",
" T: float\n",
@@ -334,13 +334,12 @@
"\n",
" Returns\n",
" -------\n",
"\n",
" t: ndarray\n",
" les instants où la solution approchée est calculée\n",
" y: ndarray\n",
" les valeurs de la solution approchée par le theta-schema\n",
" \"\"\"\n",
"\n",
" \"\"\"\n",
" dt = T / N\n",
" t = np.zeros(N + 1)\n",
" y = np.zeros(N + 1)\n",
@@ -357,12 +356,10 @@
"\n",
"\n",
"def euler_explicit(y0, T, N, r):\n",
" \"\"\"\n",
" schéma de d'Euler pour le modèle de Malthus\n",
" \"\"\"schéma de d'Euler pour le modèle de Malthus\n",
"\n",
" Parameters\n",
" ----------\n",
"\n",
" y0: float\n",
" donnée initiale\n",
" T: float\n",
@@ -374,11 +371,11 @@
"\n",
" Returns\n",
" -------\n",
"\n",
" t: ndarray\n",
" les instants où la solution approchée est calculée\n",
" y: ndarray\n",
" les valeurs de la solution approchée par le theta-schema\n",
"\n",
" \"\"\"\n",
" dt = T / N\n",
" t = np.zeros(N + 1)\n",
@@ -396,9 +393,7 @@
"\n",
"\n",
"def solution_exacte(t):\n",
" \"\"\"\n",
" Fonction calculant la solution exacte du modèle de Malthus à l'instant t\n",
" \"\"\"\n",
" \"\"\"Fonction calculant la solution exacte du modèle de Malthus à l'instant t\"\"\"\n",
" return y0 * np.exp(r * t)"
]
},
@@ -462,7 +457,10 @@
"ax = fig.add_subplot(1, 2, 2)\n",
"for n in liste_N:\n",
" t, y = crank_nicolson(\n",
" y0, T, n, r\n",
" y0,\n",
" T,\n",
" n,\n",
" r,\n",
" ) # On calcule la fonction Crank-Nicolson pour chaque n\n",
" ax.scatter(t, y, label=f\"Solution approchée pour N={n}\")\n",
"ax.plot(t_exact, solution_exacte(t_exact), label=\"Solution exacte\")\n",