{"id":1271,"date":"2026-08-21T14:31:32","date_gmt":"2026-08-21T14:31:32","guid":{"rendered":"https:\/\/matforge.org\/?p=1271","raw":"https:\/\/matforge.org\/?p=1271"},"modified":"2026-08-21T14:31:32","modified_gmt":"2026-08-21T14:31:32","slug":"time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes","status":"publish","type":"post","link":"https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/","title":{"rendered":"M\u00e9thodes d&rsquo;int\u00e9gration de temps pour les solveurs PDE\u00a0: sch\u00e9mas explicites ou implicites","raw":"M\u00e9thodes d'int\u00e9gration de temps pour les solveurs PDE\u00a0: sch\u00e9mas explicites ou implicites"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 10<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span><h2>Points \u00e0 retenir cl\u00e9s<\/h2>\n<ul>\n<li>Les m\u00e9thodes explicites calculent l&rsquo;\u00e9tat suivant directement \u00e0 partir de l&rsquo;\u00e9tat actuel. Ils sont bon march\u00e9 par pas mais n\u00e9cessitent de petits pas de temps pour la stabilit\u00e9.<\/li>\n<li>Les m\u00e9thodes implicites r\u00e9solvent un syst\u00e8me coupl\u00e9 qui inclut les \u00e9tats actuels et futurs. Ils sont plus chers par pas mais peuvent \u00eatre stables pour des pas de temps beaucoup plus importants.<\/li>\n<li>Les \u00e9quations rigides contiennent des processus avec des \u00e9chelles de temps tr\u00e8s diff\u00e9rentes. Ils rendent souvent les m\u00e9thodes explicites peu pratiques.<\/li>\n<li>La condition CFL d\u00e9finit le pas de temps stable maximum pour de nombreux sch\u00e9mas explicites. La violation peut entra\u00eener une divergence num\u00e9rique.<\/li>\n<li>Les approches hybrides telles que le fractionnement de l&rsquo;op\u00e9rateur, les m\u00e9thodes IMEX et la division Strang combinent un traitement explicite pour les termes non raides avec un traitement implicite pour des termes rigides.<\/li>\n<\/ul>\n<h2>La diff\u00e9rence fondamentale<\/h2>\n<p>Lorsque vous r\u00e9solvez num\u00e9riquement une \u00e9quation aux d\u00e9riv\u00e9es partielles temporelles, vous remplacez la d\u00e9riv\u00e9e temporelle continue par une diff\u00e9rence discr\u00e8te. La fa\u00e7on dont vous vous rapprochez de ce d\u00e9riv\u00e9 conduit \u00e0 deux grandes familles de m\u00e9thodes&nbsp;: des sch\u00e9mas explicites et implicites.<\/p>\n<p>Les m\u00e9thodes explicites calculent l&rsquo;\u00e9tat \u00e0 l&rsquo;heure <code>t\u2099\u208a\u2081<\/code> enti\u00e8rement \u00e0 partir des valeurs connues \u00e0 <code>t\u2099<\/code> ou des pas de temps ant\u00e9rieurs. La formule a la forme :<\/p>\n<pre><code>u\u207f\u207a\u00b9 = F(u\u207f)\n<\/code><\/pre>\n<p>Chaque terme sur le c\u00f4t\u00e9 droit est d\u00e9j\u00e0 connu. Le nouvel \u00e9tat est trouv\u00e9 par l&rsquo;alg\u00e8bre directe.<\/p>\n<p>Les m\u00e9thodes implicites \u00e9valuent une partie ou la totalit\u00e9 de l&rsquo;\u00e9quation \u00e0 l&rsquo;\u00e9tat futur inconnu <code>t\u2099\u208a\u2081<\/code>. La formule a la forme :<\/p>\n<pre><code>G(u\u207f, u\u207f\u207a\u00b9) = 0\n<\/code><\/pre>\n<p>Parce que la solution d\u00e9pend d&rsquo;elle-m\u00eame, vous devez r\u00e9soudre un syst\u00e8me coupl\u00e9 d&rsquo;\u00e9quations \u00e0 chaque pas de temps. Cela n\u00e9cessite g\u00e9n\u00e9ralement un assemblage de matrice et des solveurs lin\u00e9aires ou non lin\u00e9aires, tels que les m\u00e9thodes de Newton-Raphson ou les m\u00e9thodes Krylov.<\/p>\n<p>Les m\u00e9thodes explicites sont comme s&rsquo;avancer en fonction uniquement de la position actuelle. Les m\u00e9thodes implicites sont comme r\u00e9soudre ensemble la position actuelle et suivante, car l&rsquo;\u00e9tat futur influence l&rsquo;\u00e9quation.<\/p>\n<h2>M\u00e9thodes explicites : avant Euler et au-del\u00e0<\/h2>\n<p>La m\u00e9thode explicite la plus simple est l&rsquo;avant Euler :<\/p>\n<pre><code>u\u207f\u207a\u00b9 = u\u207f + \u0394t \u00b7 f(u\u207f)\n<\/code><\/pre>\n<p>Vous \u00e9valuez le c\u00f4t\u00e9 droit \u00e0 l&rsquo;\u00e9tat actuel, multipliez par le pas de temps et ajoutez le r\u00e9sultat \u00e0 l&rsquo;\u00e9tat actuel. Le co\u00fbt par \u00e9tape est faible car chaque mise \u00e0 jour est directe.<\/p>\n<p>D&rsquo;autres m\u00e9thodes explicites incluent :<\/p>\n<ul>\n<li>M\u00e9thodes Runge-Kutta explicites, y compris RK4.<\/li>\n<li>M\u00e9thodes en plusieurs \u00e9tapes Adams-Bashforth.<\/li>\n<li>Sch\u00e9mas d&rsquo;espace central dans le temps pour les \u00e9quations de diffusion.<\/li>\n<\/ul>\n<p>Les m\u00e9thodes explicites sont utiles pour :<\/p>\n<ul>\n<li>Les PDE hyperboliques telles que la propagation des ondes et certains probl\u00e8mes de dynamique des fluides.<\/li>\n<li>Probl\u00e8mes o\u00f9 le pas de temps physique est d\u00e9j\u00e0 faible.<\/li>\n<li>Flux de travail hautement parall\u00e9lisants o\u00f9 chaque mise \u00e0 jour est bon march\u00e9.<\/li>\n<\/ul>\n<p>La principale limitation est la stabilit\u00e9. Les m\u00e9thodes explicites sont conditionnellement stables, ce qui signifie qu&rsquo;il existe une limite sup\u00e9rieure stricte sur le pas de temps. Si vous d\u00e9passez cette limite, la simulation peut diverger.<\/p>\n<h2>M\u00e9thodes implicites : Euler et Crank-Nicolson en arri\u00e8re<\/h2>\n<p>La m\u00e9thode implicite la plus simple est Euler, \u00e9galement appel\u00e9 implicite Euler :<\/p>\n<pre><code>u\u207f\u207a\u00b9 = u\u207f + \u0394t \u00b7 f(u\u207f\u207a\u00b9)\n<\/code><\/pre>\n<p>L&rsquo;\u00e9tat futur <code>u\u207f\u207a\u00b9<\/code> appara\u00eet des deux c\u00f4t\u00e9s de l&rsquo;\u00e9quation. Pour le calculer, vous r\u00e9solvez une \u00e9quation alg\u00e9brique ou un syst\u00e8me d&rsquo;\u00e9quations apr\u00e8s discr\u00e9tisation spatiale.<\/p>\n<p>Cela n\u00e9cessite plus de travail par pas de temps qu&rsquo;une m\u00e9thode explicite. Le solveur peut avoir besoin d&rsquo;un assemblage matriciel, d&rsquo;appels de solveur lin\u00e9aire et de v\u00e9rifications de convergence.<\/p>\n<p>La m\u00e9thode Crank-Nicolson est un sch\u00e9ma implicite du second ordre qui fait la moyenne des \u00e9valuations explicites et implicites&nbsp;:<\/p>\n<pre><code>u\u207f\u207a\u00b9 = u\u207f + (\u0394t \/ 2) \u00b7 [f(u\u207f) + f(u\u207f\u207a\u00b9)]\n<\/code><\/pre>\n<p>Crank-Nicolson est populaire car il est pr\u00e9cis dans le temps et stable pour de nombreux probl\u00e8mes lin\u00e9aires. Il s&rsquo;agit d&rsquo;un compromis entre le faible co\u00fbt des sch\u00e9mas explicites et la stabilit\u00e9 des sch\u00e9mas implicites.<\/p>\n<p>Les formules de diff\u00e9renciation vers l&rsquo;arri\u00e8re sont une autre famille importante de m\u00e9thodes en plusieurs \u00e9tapes implicites. BDF1 \u00e9quivaut \u00e0 Euler \u00e0 l&rsquo;envers. Le BDF2 est de second ordre et est largement utilis\u00e9 pour les syst\u00e8mes rigides dans les solveurs de production.<\/p>\n<p>Les m\u00e9thodes implicites sont utiles pour :<\/p>\n<ul>\n<li>Les PDE paraboliques telles que la diffusion et le transfert de chaleur.<\/li>\n<li>Syst\u00e8mes rigides avec des \u00e9chelles de temps largement s\u00e9par\u00e9es.<\/li>\n<li>Probl\u00e8mes o\u00f9 des pas de temps plus importants sont n\u00e9cessaires pour une ex\u00e9cution pratique.<\/li>\n<\/ul>\n<h2>La question de stabilit\u00e9 : L&rsquo;\u00e9tat de la LFC et au-del\u00e0<\/h2>\n<p>La stabilit\u00e9 est l&rsquo;un des concepts les plus importants de l&rsquo;int\u00e9gration du temps. Il d\u00e9termine si les erreurs num\u00e9riques augmentent ou diminuent \u00e0 mesure que la simulation progresse.<\/p>\n<h3>La condition LFC<\/h3>\n<p>La condition de Courant-Friedrichs-Lewy est une condition de stabilit\u00e9 n\u00e9cessaire pour de nombreux sch\u00e9mas num\u00e9riques, en particulier pour les EDP hyperboliques. Il stipule que le domaine num\u00e9rique de d\u00e9pendance doit contenir le v\u00e9ritable domaine physique de la d\u00e9pendance.<\/p>\n<p>Concr\u00e8tement, le pas de temps doit \u00eatre suffisamment petit pour que l&rsquo;information ne se d\u00e9place pas plus loin que ce que le sch\u00e9ma peut repr\u00e9senter au cours d&rsquo;une seule \u00e9tape.<\/p>\n<p>Pour une \u00e9quation d&rsquo;advection simple avec une vitesse <code>v<\/code> et un espacement de la grille spatiale <code>\u0394x<\/code>, le nombre de cours est&nbsp;:<\/p>\n<pre><code>Courant number = v \u00b7 \u0394t \/ \u0394x\n<\/code><\/pre>\n<p>Une exigence de stabilit\u00e9 typique est :<\/p>\n<pre><code>v \u00b7 \u0394t \/ \u0394x \u2264 C_critical\n<\/code><\/pre>\n<p>Les limites de stabilit\u00e9 typiques comprennent :<\/p>\n<ul>\n<li>Advection&nbsp;: <code>C \u2264 1<\/code>, avec mise \u00e0 l&rsquo;\u00e9chelle lin\u00e9aire dans <code>\u0394x<\/code>.<\/li>\n<li>Diffusion&nbsp;: <code>\u0394t \u2264 \u0394x\u00b2 \/ (2\u03b1)<\/code>, avec une mise \u00e0 l&rsquo;\u00e9chelle quadratique dans <code>\u0394x<\/code>.<\/li>\n<\/ul>\n<p>Pour une diffusion explicite avec le sch\u00e9ma d&rsquo;espace central \u00e0 l&rsquo;avant, le nombre de Fourier est :<\/p>\n<pre><code>F = \u03b1 \u00b7 \u0394t \/ \u0394x\u00b2 \u2264 0.5\n<\/code><\/pre>\n<p>Si vous affinez la grille spatiale d&rsquo;un facteur 2, le pas de temps explicite maximum doit g\u00e9n\u00e9ralement \u00eatre divis\u00e9 par 4. Cette restriction quadratique rend les m\u00e9thodes explicites co\u00fbteuses pour les maillages fins dans les probl\u00e8mes domin\u00e9s par la diffusion.<\/p>\n<h3>stabilit\u00e9 inconditionnelle<\/h3>\n<p>Les m\u00e9thodes implicites peuvent fournir une stabilit\u00e9 inconditionnelle pour de nombreuses classes de probl\u00e8mes. Avec Euler r\u00e9trograde, un pas de temps important peut ne pas provoquer de divergence num\u00e9rique, bien que la pr\u00e9cision puisse encore souffrir.<\/p>\n<p>C&rsquo;est pourquoi les m\u00e9thodes implicites sont courantes pour les probl\u00e8mes de diffusion rigide. La question change de \u00ab\u00a0Quelle est l&rsquo;ampleur du pas de temps avant que la solution ne diverge&nbsp;?\u00a0\u00bb \u00e0 \u00ab\u00a0Quelle est la taille du pas de temps tout en pr\u00e9servant la pr\u00e9cision dont j&rsquo;ai besoin&nbsp;?\u00a0\u00bb<\/p>\n<p>La stabilit\u00e9 inconditionnelle n&rsquo;est pas la m\u00eame chose qu&rsquo;une pr\u00e9cision illimit\u00e9e. L&rsquo;erreur de troncature augmente toujours avec <code>\u0394t<\/code>. Vous devez toujours choisir le pas de temps en fonction de l&rsquo;\u00e9chelle de temps physique que vous souhaitez r\u00e9soudre.<\/p>\n<h2>Les \u00e9quations rigides et pourquoi elles cassent les m\u00e9thodes explicites<\/h2>\n<p>Un syst\u00e8me est rigide lorsqu&rsquo;il contient des processus qui fonctionnent sur des \u00e9chelles de temps tr\u00e8s diff\u00e9rentes. Par exemple, une r\u00e9action chimique peut se terminer en quelques millisecondes tandis que la diffusion \u00e9volue sur des minutes.<\/p>\n<p>Une m\u00e9thode explicite doit utiliser des pas de temps suffisamment petits pour r\u00e9soudre le processus le plus rapide, m\u00eame lorsque vous ne vous souciez que du comportement lent. Cela peut n\u00e9cessiter des millions de petits pas pour un probl\u00e8me o\u00f9 la dynamique pertinente est beaucoup plus lente.<\/p>\n<p>La rigidit\u00e9 appara\u00eet souvent comme une instabilit\u00e9 num\u00e9rique dans les m\u00e9thodes explicites. Les petites erreurs num\u00e9riques peuvent se d\u00e9velopper rapidement, m\u00eame lorsque la v\u00e9ritable solution physique est stable.<\/p>\n<p>Les m\u00e9thodes implicites \u00e9vitent ce probl\u00e8me car leurs r\u00e9gions de stabilit\u00e9 peuvent absorber des modes rapides sans r\u00e9soudre chaque transitoire rapide. C&rsquo;est pourquoi Euler, BDF et Crank-Nicolson \u00e0 l&rsquo;envers sont des choix courants pour les odes et les PDE rigides.<\/p>\n<h2>Approches hybrides : fractionnement des op\u00e9rateurs et IMEX<\/h2>\n<p>Les PDE r\u00e9elles contiennent souvent des termes rigides et non raides. Consid\u00e9rez une \u00e9quation de convection-diffusion-r\u00e9action&nbsp;:<\/p>\n<pre><code>\u2202u\/\u2202t = \u2212\u2207\u00b7(vu) + \u03b1\u2207\u00b2u + R(u)\n<\/code><\/pre>\n<p>Chaque terme a un caract\u00e8re num\u00e9rique diff\u00e9rent :<\/p>\n<ul>\n<li>Le terme d&rsquo;advection est en forme d&rsquo;onde et souvent trait\u00e9 explicitement.<\/li>\n<li>Le terme de diffusion est raide et souvent trait\u00e9 de mani\u00e8re implicite.<\/li>\n<li>Le terme de r\u00e9action peut \u00eatre raide s&rsquo;il repr\u00e9sente une chimie rapide ou un comportement de source rapide.<\/li>\n<\/ul>\n<p>Utiliser une m\u00e9thode pour chaque terme peut \u00eatre inutile. Les sch\u00e9mas enti\u00e8rement explicites peuvent n\u00e9cessiter de minuscules pas de temps. Les r\u00e9gimes enti\u00e8rement implicites peuvent \u00eatre inutilement co\u00fbteux pour des conditions non raides.<\/p>\n<h3>Split d&rsquo;op\u00e9rateur<\/h3>\n<p>La division de l&rsquo;op\u00e9rateur, \u00e9galement appel\u00e9e pas fractionnaire, d\u00e9compose la PDE en sous-\u00e9tapes s\u00e9quentielles&nbsp;:<\/p>\n<pre><code>Step 1: Solve \u2202u\/\u2202t = \u2212\u2207\u00b7(vu)     explicitly\nStep 2: Solve \u2202u\/\u2202t = \u03b1\u2207\u00b2u        implicitly\nStep 3: Solve \u2202u\/\u2202t = R(u)        explicitly or implicitly\n<\/code><\/pre>\n<p>Le pas \u00e0 temps plein est construit en encha\u00eenant ces petites r\u00e9solutions.<\/p>\n<p>Strang Splitting am\u00e9liore la pr\u00e9cision en utilisant une s\u00e9quence sym\u00e9trique :<\/p>\n<pre><code>Step 1: Half step with advection, \u0394t \/ 2\nStep 2: Full step with diffusion, \u0394t\nStep 3: Half step with advection, \u0394t \/ 2\n<\/code><\/pre>\n<p>Le fractionnement ordinaire est g\u00e9n\u00e9ralement de premier ordre dans le temps. La division Strang est de second ordre pour les probl\u00e8mes appropri\u00e9s.<\/p>\n<h3>M\u00e9thodes IMEX<\/h3>\n<p>Les m\u00e9thodes IMEX combinent un traitement implicite et explicite dans un sch\u00e9ma d&rsquo;int\u00e9gration. Les termes non raides sont \u00e9valu\u00e9s explicitement, tandis que les termes rigoureux sont \u00e9valu\u00e9s de mani\u00e8re implicite&nbsp;:<\/p>\n<pre><code>u\u207f\u207a\u00b9 = u\u207f + \u0394t \u00b7 [L_explicit(u\u207f) + L_implicit(u\u207f\u207a\u00b9)]\n<\/code><\/pre>\n<p>Les m\u00e9thodes multi-\u00e9tapes IMEX Runge-Kutta et IMEX sont largement utilis\u00e9es pour les syst\u00e8mes PDE avec une rigidit\u00e9 mixte.<\/p>\n<p>Les m\u00e9thodes IMEX sont utiles pour les \u00e9quations de convection-diffusion, les formulations de Navier-Stokes et les syst\u00e8mes de r\u00e9action-diffusion o\u00f9 diff\u00e9rents termes n\u00e9cessitent un traitement de stabilit\u00e9 diff\u00e9rent.<\/p>\n<h2>Exemples de Python : mise en pratique de la th\u00e9orie<\/h2>\n<p>Les exemples ci-dessous montrent la diff\u00e9rence pratique entre un pas de temps explicite et implicite pour la diffusion.<\/p>\n<h3>Pas de temps explicite avec NumPy<\/h3>\n<p>Une v\u00e9ritable mise \u00e0 jour d&rsquo;Euler explicite peut \u00eatre \u00e9crite directement avec NumPy. Cette version doit respecter la condition de diffusion CFL.<\/p>\n<pre><code class=\"language-python\">import numpy as np\nimport matplotlib.pyplot as plt\n\n# Mesh\nnx = 100\nL = 1.0\ndx = L \/ nx\nx = np.linspace(0, L, nx + 1)\n\n# Initial condition\nphi = np.zeros(nx + 1)\nphi[x &lt; 0.5] = 1.0\n\n# Diffusion coefficient\nD = 1.0\n\n# Explicit stability limit:\n# dt &lt;= dx**2 \/ (2 * D)\ndt = 0.4 * dx**2 \/ D\nsteps = 500\n\nfor step in range(steps):\n    phi_new = phi.copy()\n    phi_new[1:-1] = (\n        phi[1:-1]\n        + D * dt \/ dx**2 * (phi[2:] - 2 * phi[1:-1] + phi[:-2])\n    )\n    \n    # Fixed boundary values\n    phi_new[0] = 0.0\n    phi_new[-1] = 0.0\n    \n    phi = phi_new\n\nplt.plot(x, phi)\nplt.xlabel(\"x\")\nplt.ylabel(\"phi\")\nplt.show()\n<\/code><\/pre>\n<p>Ce sch\u00e9ma est simple et peu co\u00fbteux par pas. Mais le pas de temps doit \u00eatre tr\u00e8s petit. Si le maillage est affin\u00e9, le pas de temps doit se r\u00e9tr\u00e9cir en quadratiquement.<\/p>\n<h3>Temps implicite pas \u00e0 pas avec Fipy<\/h3>\n<p>La formulation de FIPY <code>TransientTerm() == DiffusionTerm()<\/code> est implicite par d\u00e9faut. Il assemble et r\u00e9sout un syst\u00e8me matriciel \u00e0 chaque \u00e9tape, ce qui permet des pas de temps stables plus importants pour les probl\u00e8mes de diffusion.<\/p>\n<pre><code class=\"language-python\">from fipy import Grid1D, CellVariable, TransientTerm, DiffusionTerm\n\nnx = 100\ndx = 1.0 \/ nx\nmesh = Grid1D(nx=nx, dx=dx)\n\nphi = CellVariable(name=\"phi\", mesh=mesh, value=0.0)\n\nx = mesh.cellCenters[0]\nphi.setValue(1.0, where=x &lt; 0.5)\n\nD = 1.0\neq = TransientTerm(var=phi) == DiffusionTerm(coeff=D, var=phi)\n\n# Larger time step than the explicit diffusion limit\ndt = 1e-3\nsteps = 500\n\nfor step in range(steps):\n    eq.solve(var=phi, dt=dt)\n<\/code><\/pre>\n<p>La version implicite co\u00fbte plus cher par \u00e9tape, mais elle peut prendre des mesures plus importantes sans divergence num\u00e9rique. Pour les probl\u00e8mes domin\u00e9s par la diffusion, cela r\u00e9duit souvent le temps d&rsquo;ex\u00e9cution total.<\/p>\n<h3>Pens\u00e9e de style Crank-Nicolson<\/h3>\n<p>Crank-Nicolson fait la moyenne des \u00e9valuations actuelles et futures. Dans les biblioth\u00e8ques qui prennent en charge un param\u00e8tre th\u00eata, <code>theta = 0.5<\/code> correspond au comportement de Crank-Nicolson.<\/p>\n<pre><code class=\"language-python\"># Conceptual pattern:\n# theta = 0.5 gives Crank-Nicolson in theta-method frameworks.\n# theta = 1.0 gives Backward Euler.\n# theta = 0.0 gives Forward Euler.\n<\/code><\/pre>\n<p>La syntaxe exacte d\u00e9pend du cadre du solveur. V\u00e9rifiez toujours la documentation de la fa\u00e7on dont la biblioth\u00e8que choisie impl\u00e9mente les m\u00e9thodes THETA ou la discr\u00e9tisation temporelle.<\/p>\n<h3>Une comparaison d&rsquo;ex\u00e9cution pratique<\/h3>\n<p>Vous pouvez comparer les approches explicites et implicites en mesurant le temps d&rsquo;horloge murale pour le m\u00eame temps physique final.<\/p>\n<pre><code class=\"language-python\">import time\n\n# Example structure only:\n# Run explicit solver with small dt\nt_start = time.time()\n\n# explicit_loop(dt_small, many_steps)\n\nprint(f\"Explicit runtime: {time.time() - t_start:.2f}s\")\n\n# Run implicit solver with larger dt\nt_start = time.time()\n\n# implicit_loop(dt_large, fewer_steps)\n\nprint(f\"Implicit runtime: {time.time() - t_start:.2f}s\")\n<\/code><\/pre>\n<p>La meilleure m\u00e9thode d\u00e9pend du probl\u00e8me. Les sch\u00e9mas explicites peuvent gagner lorsque chaque \u00e9tape est tr\u00e8s bon march\u00e9 et que les pas de temps physiques sont naturellement faibles. Les sch\u00e9mas implicites gagnent souvent pour des probl\u00e8mes de diffusion raide ou de diffusion par r\u00e9action o\u00f9 les limites de stabilit\u00e9 explicites sont graves.<\/p>\n<h2>Guide de d\u00e9cision&nbsp;: quand utiliser quelle m\u00e9thode<\/h2>\n<table class=\"custom-table\">\n<tbody>\n<tr>\n<th>Situation<\/th>\n<th>Approche recommand\u00e9e<\/th>\n<th>Pourquoi<\/th>\n<\/tr>\n<tr>\n<td>Propagation des ondes, dynamique des chocs, d\u00e9bits \u00e0 grande vitesse<\/td>\n<td>Explicite<\/td>\n<td>Pas cher par pas, et les pas de temps physiques sont d\u00e9j\u00e0 faibles<\/td>\n<\/tr>\n<tr>\n<td>Probl\u00e8mes domin\u00e9s par la diffusion tels que le transfert de chaleur ou le transport de masse<\/td>\n<td>Implicite<\/td>\n<td>\u00c9vite les limites de diffusion explicites restrictives de LFC<\/td>\n<\/tr>\n<tr>\n<td>Couplage r\u00e9action-diffusion rigide<\/td>\n<td>IMEX ou fractionnement d&rsquo;un op\u00e9rateur<\/td>\n<td>G\u00e8re explicitement les r\u00e9actions rapides et les termes moins chers<\/td>\n<\/tr>\n<tr>\n<td>Probl\u00e8mes en r\u00e9gime permanent ou quasi statique<\/td>\n<td>Implicite<\/td>\n<td>De grands pas de temps pseudo-temps peuvent aider \u00e0 aborder l&rsquo;\u00e9tat d&rsquo;\u00e9quilibre<\/td>\n<\/tr>\n<tr>\n<td>Grille spatiale haute r\u00e9solution<\/td>\n<td>Implicite<\/td>\n<td>\u00c9chelles de Diffusion explicite avec <code>\u0394x\u00b2<\/code><\/td>\n<\/tr>\n<tr>\n<td>Ondes transitoires pr\u00e9cis dans le temps<\/td>\n<td>Explicit avec le contr\u00f4le CFL<\/td>\n<td>La pr\u00e9cision du temps n\u00e9cessite la r\u00e9solution de la propagation physique des ondes<\/td>\n<\/tr>\n<tr>\n<td>La cin\u00e9tique chimique coupl\u00e9e \u00e0 la physique lente<\/td>\n<td>implicite ou BDF<\/td>\n<td>Un comportement d&rsquo;Ode rigide peut rendre les m\u00e9thodes explicites impraticables<\/td>\n<\/tr>\n<tr>\n<td>Probl\u00e8mes multi-\u00e9chelles o\u00f9 la dynamique lente est la cible<\/td>\n<td>implicite ou imex<\/td>\n<td>Les transitoires rapides peuvent \u00eatre stabilis\u00e9s alors que le comportement lent est r\u00e9solu<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Il n&rsquo;y a pas de choix universellement sup\u00e9rieur. La bonne m\u00e9thode d\u00e9pend de la physique, de la r\u00e9solution du maillage, de la rigidit\u00e9 et de ce que vous devez mesurer.<\/p>\n<h2>erreurs courantes<\/h2>\n<ol>\n<li>Utilisation de m\u00e9thodes explicites pour la diffusion rigide sur des mailles fines. La condition de CFL force <code>\u0394t \u221d \u0394x\u00b2<\/code>, de sorte que l&rsquo;affinage du maillage par 4 fois peut n\u00e9cessiter 16&nbsp;fois plus d&rsquo;\u00e9tapes.<\/li>\n<li>Prendre d&rsquo;\u00e9normes pas de temps implicites et supposer que le r\u00e9sultat est exact. La stabilit\u00e9 ne garantit pas la pr\u00e9cision. Choisissez <code>\u0394t<\/code> en fonction de l&rsquo;\u00e9chelle de temps que vous devez r\u00e9soudre.<\/li>\n<li>N\u00e9gliger les v\u00e9rifications de la LCF. Les simulations explicites doivent toujours v\u00e9rifier que le pas de temps satisfait les limites de stabilit\u00e9.<\/li>\n<li>Traitant la s\u00e9paration de l&rsquo;op\u00e9rateur comme une pr\u00e9cision gratuite. Le fractionnement introduit des erreurs de fractionnement. Le fractionnement ordinaire est g\u00e9n\u00e9ralement du premier ordre, et la division \u00e9trangl\u00e9e est g\u00e9n\u00e9ralement du second ordre.<\/li>\n<li>Supposer implicitement signifie mieux. Les solveurs implicites co\u00fbtent plus cher par \u00e9tape et peuvent introduire un amortissement num\u00e9rique, en particulier avec Euler \u00e0 l&rsquo;arri\u00e8re du premier ordre.<\/li>\n<\/ol>\n<h2>Guides connexes<\/h2>\n<ul>\n<li><a href=\"\/understanding-fipys-core-architecture\/\">comprendre l&rsquo;architecture de base de Fipy<\/a> &#8211; la formulation bas\u00e9e sur le terme de FIPY.<\/li>\n<li><a href=\"\/working-through-your-first-fipy-example\/\">Travailler \u00e0 travers votre premier exemple de Fipy<\/a> &#8211; un flux de travail complet de Fipy.<\/li>\n<li><a href=\"\/performance-profiling-optimization-python-pde-solvers\/\">Profilage et optimisation des performances pour les solveurs PDE Python<\/a> \u2014 Acc\u00e9l\u00e9rer les boucles temporelles.<\/li>\n<li><a href=\"\/adaptive-mesh-refinement-in-fipy-dynamic-resolution-for-complex-phenomena\/\">Raffinement de maillage adaptatif dans FIPY<\/a> \u2014 Raffinement spatial associ\u00e9 \u00e0 un pas de temps.<\/li>\n<\/ul>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>L&rsquo;int\u00e9gration du temps est l&rsquo;endroit o\u00f9 la th\u00e9orie rencontre la pratique en sciences informatiques. Le choix explicite ou implicite est l&rsquo;une des d\u00e9cisions les plus importantes d&rsquo;un solveur PDE.<\/p>\n<ul>\n<li>Les m\u00e9thodes explicites sont simples, bon march\u00e9 par pas et id\u00e9ales pour la physique en forme d&rsquo;onde, mais elles n\u00e9cessitent une conformit\u00e9 stricte en mati\u00e8re de LCF.<\/li>\n<li>Les m\u00e9thodes implicites r\u00e9solvent des syst\u00e8mes coupl\u00e9s \u00e0 chaque \u00e9tape, mais elles peuvent prendre des mesures stables plus importantes pour les probl\u00e8mes de diffusion rigides.<\/li>\n<li>Les \u00e9quations rigides rendent souvent les m\u00e9thodes explicites impraticables. Les m\u00e9thodes implicites telles que BDF et Crank-Nicolson les g\u00e8re plus efficacement.<\/li>\n<li>Les approches hybrides telles que le fractionnement de l&rsquo;op\u00e9rateur et l&rsquo;IMEX associent une efficacit\u00e9 explicite \u00e0 une stabilit\u00e9 implicite.<\/li>\n<\/ul>\n<p>Commencez par identifier la physique dans l&rsquo;\u00e9quation. Si le probl\u00e8me est domin\u00e9 par l&rsquo;advection, des m\u00e9thodes explicites peuvent s&rsquo;adapter. S&rsquo;il est domin\u00e9 par la diffusion, les m\u00e9thodes implicites s&rsquo;adaptent souvent mieux. S&rsquo;il combine des termes rigides et non raides, utilisez IMEX ou fractionnement.<\/p>\n<p>Le bon choix d&rsquo;int\u00e9gration de temps peut rendre une simulation plus rapide, plus stable et plus cr\u00e9dible.<\/p>\n<h2>Vous voulez de l&rsquo;aide pour optimiser l&rsquo;int\u00e9gration de votre solveur PDE ?<\/h2>\n<p>Choisir la bonne m\u00e9thode d&rsquo;int\u00e9gration de temps peut faire la diff\u00e9rence entre une simulation qui s&rsquo;ex\u00e9cute rapidement et une simulation qui prend des jours. Si vous avez des difficult\u00e9s avec la s\u00e9lection de pas de temps, la conversion implicite, la conception IMEX ou l&rsquo;instabilit\u00e9 li\u00e9e \u00e0 la LCF, notre \u00e9quipe peut vous aider.<\/p>\n<p>Nous nous sp\u00e9cialisons dans les flux de travail efficaces et stables pour les codes Python scientifiques. Contactez les besoins de votre projet.<\/p>\n<h2>R\u00e9f\u00e9rences<\/h2>\n<ul>\n<li>Ascher, U.M., Ruuth, S.J., &amp; Spiteri, R.J. (1997). M\u00e9thodes Runge-Kutta implicites et explicites pour les PDE d\u00e9pendantes du temps. <em>Math\u00e9matiques num\u00e9riques appliqu\u00e9es<\/em>.<\/li>\n<li>Wikipedia&nbsp;: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Explicit_and_implicit_methods\">M\u00e9thodes explicites et implicites<\/a><\/li>\n<li>Wikip\u00e9dia&nbsp;: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Backward_differentiation_formula\">Formule de diff\u00e9renciation en arri\u00e8re<\/a><\/li>\n<li>Wikip\u00e9dia&nbsp;: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Courant%E2%80%93Friedrichs%E2%80%93Lewy_condition\">Courant-Friedrichs-Lewy-condition<\/a><\/li>\n<li><a href=\"https:\/\/pages.nist.gov\/fipy\/\">Documentation FIPY<\/a><\/li>\n<li><a href=\"https:\/\/docs.sciml.ai\/OrdinaryDiffEq\/stable\/imex\/IMEXMultistep\/\">SCIML : m\u00e9thodes multi-\u00e9tapes IMEX<\/a><\/li>\n<\/ul>\n","protected":false,"raw":"<h2>Points \u00e0 retenir cl\u00e9s<\/h2>\n<ul>\n<li>Les m\u00e9thodes explicites calculent l'\u00e9tat suivant directement \u00e0 partir de l'\u00e9tat actuel. Ils sont bon march\u00e9 par pas mais n\u00e9cessitent de petits pas de temps pour la stabilit\u00e9.<\/li>\n<li>Les m\u00e9thodes implicites r\u00e9solvent un syst\u00e8me coupl\u00e9 qui inclut les \u00e9tats actuels et futurs. Ils sont plus chers par pas mais peuvent \u00eatre stables pour des pas de temps beaucoup plus importants.<\/li>\n<li>Les \u00e9quations rigides contiennent des processus avec des \u00e9chelles de temps tr\u00e8s diff\u00e9rentes. Ils rendent souvent les m\u00e9thodes explicites peu pratiques.<\/li>\n<li>La condition CFL d\u00e9finit le pas de temps stable maximum pour de nombreux sch\u00e9mas explicites. La violation peut entra\u00eener une divergence num\u00e9rique.<\/li>\n<li>Les approches hybrides telles que le fractionnement de l'op\u00e9rateur, les m\u00e9thodes IMEX et la division Strang combinent un traitement explicite pour les termes non raides avec un traitement implicite pour des termes rigides.<\/li>\n<\/ul>\n<h2>La diff\u00e9rence fondamentale<\/h2>\n<p>Lorsque vous r\u00e9solvez num\u00e9riquement une \u00e9quation aux d\u00e9riv\u00e9es partielles temporelles, vous remplacez la d\u00e9riv\u00e9e temporelle continue par une diff\u00e9rence discr\u00e8te. La fa\u00e7on dont vous vous rapprochez de ce d\u00e9riv\u00e9 conduit \u00e0 deux grandes familles de m\u00e9thodes&nbsp;: des sch\u00e9mas explicites et implicites.<\/p>\n<p>Les m\u00e9thodes explicites calculent l'\u00e9tat \u00e0 l'heure <code>t\u2099\u208a\u2081<\/code> enti\u00e8rement \u00e0 partir des valeurs connues \u00e0 <code>t\u2099<\/code> ou des pas de temps ant\u00e9rieurs. La formule a la forme :<\/p>\n<pre><code>u\u207f\u207a\u00b9 = F(u\u207f)\n<\/code><\/pre>\n<p>Chaque terme sur le c\u00f4t\u00e9 droit est d\u00e9j\u00e0 connu. Le nouvel \u00e9tat est trouv\u00e9 par l'alg\u00e8bre directe.<\/p>\n<p>Les m\u00e9thodes implicites \u00e9valuent une partie ou la totalit\u00e9 de l'\u00e9quation \u00e0 l'\u00e9tat futur inconnu <code>t\u2099\u208a\u2081<\/code>. La formule a la forme :<\/p>\n<pre><code>G(u\u207f, u\u207f\u207a\u00b9) = 0\n<\/code><\/pre>\n<p>Parce que la solution d\u00e9pend d'elle-m\u00eame, vous devez r\u00e9soudre un syst\u00e8me coupl\u00e9 d'\u00e9quations \u00e0 chaque pas de temps. Cela n\u00e9cessite g\u00e9n\u00e9ralement un assemblage de matrice et des solveurs lin\u00e9aires ou non lin\u00e9aires, tels que les m\u00e9thodes de Newton-Raphson ou les m\u00e9thodes Krylov.<\/p>\n<p>Les m\u00e9thodes explicites sont comme s'avancer en fonction uniquement de la position actuelle. Les m\u00e9thodes implicites sont comme r\u00e9soudre ensemble la position actuelle et suivante, car l'\u00e9tat futur influence l'\u00e9quation.<\/p>\n<h2>M\u00e9thodes explicites : avant Euler et au-del\u00e0<\/h2>\n<p>La m\u00e9thode explicite la plus simple est l'avant Euler :<\/p>\n<pre><code>u\u207f\u207a\u00b9 = u\u207f + \u0394t \u00b7 f(u\u207f)\n<\/code><\/pre>\n<p>Vous \u00e9valuez le c\u00f4t\u00e9 droit \u00e0 l'\u00e9tat actuel, multipliez par le pas de temps et ajoutez le r\u00e9sultat \u00e0 l'\u00e9tat actuel. Le co\u00fbt par \u00e9tape est faible car chaque mise \u00e0 jour est directe.<\/p>\n<p>D'autres m\u00e9thodes explicites incluent :<\/p>\n<ul>\n<li>M\u00e9thodes Runge-Kutta explicites, y compris RK4.<\/li>\n<li>M\u00e9thodes en plusieurs \u00e9tapes Adams-Bashforth.<\/li>\n<li>Sch\u00e9mas d'espace central dans le temps pour les \u00e9quations de diffusion.<\/li>\n<\/ul>\n<p>Les m\u00e9thodes explicites sont utiles pour :<\/p>\n<ul>\n<li>Les PDE hyperboliques telles que la propagation des ondes et certains probl\u00e8mes de dynamique des fluides.<\/li>\n<li>Probl\u00e8mes o\u00f9 le pas de temps physique est d\u00e9j\u00e0 faible.<\/li>\n<li>Flux de travail hautement parall\u00e9lisants o\u00f9 chaque mise \u00e0 jour est bon march\u00e9.<\/li>\n<\/ul>\n<p>La principale limitation est la stabilit\u00e9. Les m\u00e9thodes explicites sont conditionnellement stables, ce qui signifie qu'il existe une limite sup\u00e9rieure stricte sur le pas de temps. Si vous d\u00e9passez cette limite, la simulation peut diverger.<\/p>\n<h2>M\u00e9thodes implicites : Euler et Crank-Nicolson en arri\u00e8re<\/h2>\n<p>La m\u00e9thode implicite la plus simple est Euler, \u00e9galement appel\u00e9 implicite Euler :<\/p>\n<pre><code>u\u207f\u207a\u00b9 = u\u207f + \u0394t \u00b7 f(u\u207f\u207a\u00b9)\n<\/code><\/pre>\n<p>L'\u00e9tat futur <code>u\u207f\u207a\u00b9<\/code> appara\u00eet des deux c\u00f4t\u00e9s de l'\u00e9quation. Pour le calculer, vous r\u00e9solvez une \u00e9quation alg\u00e9brique ou un syst\u00e8me d'\u00e9quations apr\u00e8s discr\u00e9tisation spatiale.<\/p>\n<p>Cela n\u00e9cessite plus de travail par pas de temps qu'une m\u00e9thode explicite. Le solveur peut avoir besoin d'un assemblage matriciel, d'appels de solveur lin\u00e9aire et de v\u00e9rifications de convergence.<\/p>\n<p>La m\u00e9thode Crank-Nicolson est un sch\u00e9ma implicite du second ordre qui fait la moyenne des \u00e9valuations explicites et implicites&nbsp;:<\/p>\n<pre><code>u\u207f\u207a\u00b9 = u\u207f + (\u0394t \/ 2) \u00b7 [f(u\u207f) + f(u\u207f\u207a\u00b9)]\n<\/code><\/pre>\n<p>Crank-Nicolson est populaire car il est pr\u00e9cis dans le temps et stable pour de nombreux probl\u00e8mes lin\u00e9aires. Il s'agit d'un compromis entre le faible co\u00fbt des sch\u00e9mas explicites et la stabilit\u00e9 des sch\u00e9mas implicites.<\/p>\n<p>Les formules de diff\u00e9renciation vers l'arri\u00e8re sont une autre famille importante de m\u00e9thodes en plusieurs \u00e9tapes implicites. BDF1 \u00e9quivaut \u00e0 Euler \u00e0 l'envers. Le BDF2 est de second ordre et est largement utilis\u00e9 pour les syst\u00e8mes rigides dans les solveurs de production.<\/p>\n<p>Les m\u00e9thodes implicites sont utiles pour :<\/p>\n<ul>\n<li>Les PDE paraboliques telles que la diffusion et le transfert de chaleur.<\/li>\n<li>Syst\u00e8mes rigides avec des \u00e9chelles de temps largement s\u00e9par\u00e9es.<\/li>\n<li>Probl\u00e8mes o\u00f9 des pas de temps plus importants sont n\u00e9cessaires pour une ex\u00e9cution pratique.<\/li>\n<\/ul>\n<h2>La question de stabilit\u00e9 : L'\u00e9tat de la LFC et au-del\u00e0<\/h2>\n<p>La stabilit\u00e9 est l'un des concepts les plus importants de l'int\u00e9gration du temps. Il d\u00e9termine si les erreurs num\u00e9riques augmentent ou diminuent \u00e0 mesure que la simulation progresse.<\/p>\n<h3>La condition LFC<\/h3>\n<p>La condition de Courant-Friedrichs-Lewy est une condition de stabilit\u00e9 n\u00e9cessaire pour de nombreux sch\u00e9mas num\u00e9riques, en particulier pour les EDP hyperboliques. Il stipule que le domaine num\u00e9rique de d\u00e9pendance doit contenir le v\u00e9ritable domaine physique de la d\u00e9pendance.<\/p>\n<p>Concr\u00e8tement, le pas de temps doit \u00eatre suffisamment petit pour que l'information ne se d\u00e9place pas plus loin que ce que le sch\u00e9ma peut repr\u00e9senter au cours d'une seule \u00e9tape.<\/p>\n<p>Pour une \u00e9quation d'advection simple avec une vitesse <code>v<\/code> et un espacement de la grille spatiale <code>\u0394x<\/code>, le nombre de cours est&nbsp;:<\/p>\n<pre><code>Courant number = v \u00b7 \u0394t \/ \u0394x\n<\/code><\/pre>\n<p>Une exigence de stabilit\u00e9 typique est :<\/p>\n<pre><code>v \u00b7 \u0394t \/ \u0394x \u2264 C_critical\n<\/code><\/pre>\n<p>Les limites de stabilit\u00e9 typiques comprennent :<\/p>\n<ul>\n<li>Advection&nbsp;: <code>C \u2264 1<\/code>, avec mise \u00e0 l'\u00e9chelle lin\u00e9aire dans <code>\u0394x<\/code>.<\/li>\n<li>Diffusion&nbsp;: <code>\u0394t \u2264 \u0394x\u00b2 \/ (2\u03b1)<\/code>, avec une mise \u00e0 l'\u00e9chelle quadratique dans <code>\u0394x<\/code>.<\/li>\n<\/ul>\n<p>Pour une diffusion explicite avec le sch\u00e9ma d'espace central \u00e0 l'avant, le nombre de Fourier est :<\/p>\n<pre><code>F = \u03b1 \u00b7 \u0394t \/ \u0394x\u00b2 \u2264 0.5\n<\/code><\/pre>\n<p>Si vous affinez la grille spatiale d'un facteur 2, le pas de temps explicite maximum doit g\u00e9n\u00e9ralement \u00eatre divis\u00e9 par 4. Cette restriction quadratique rend les m\u00e9thodes explicites co\u00fbteuses pour les maillages fins dans les probl\u00e8mes domin\u00e9s par la diffusion.<\/p>\n<h3>stabilit\u00e9 inconditionnelle<\/h3>\n<p>Les m\u00e9thodes implicites peuvent fournir une stabilit\u00e9 inconditionnelle pour de nombreuses classes de probl\u00e8mes. Avec Euler r\u00e9trograde, un pas de temps important peut ne pas provoquer de divergence num\u00e9rique, bien que la pr\u00e9cision puisse encore souffrir.<\/p>\n<p>C'est pourquoi les m\u00e9thodes implicites sont courantes pour les probl\u00e8mes de diffusion rigide. La question change de \"Quelle est l'ampleur du pas de temps avant que la solution ne diverge&nbsp;?\" \u00e0 \"Quelle est la taille du pas de temps tout en pr\u00e9servant la pr\u00e9cision dont j'ai besoin&nbsp;?\"<\/p>\n<p>La stabilit\u00e9 inconditionnelle n'est pas la m\u00eame chose qu'une pr\u00e9cision illimit\u00e9e. L'erreur de troncature augmente toujours avec <code>\u0394t<\/code>. Vous devez toujours choisir le pas de temps en fonction de l'\u00e9chelle de temps physique que vous souhaitez r\u00e9soudre.<\/p>\n<h2>Les \u00e9quations rigides et pourquoi elles cassent les m\u00e9thodes explicites<\/h2>\n<p>Un syst\u00e8me est rigide lorsqu'il contient des processus qui fonctionnent sur des \u00e9chelles de temps tr\u00e8s diff\u00e9rentes. Par exemple, une r\u00e9action chimique peut se terminer en quelques millisecondes tandis que la diffusion \u00e9volue sur des minutes.<\/p>\n<p>Une m\u00e9thode explicite doit utiliser des pas de temps suffisamment petits pour r\u00e9soudre le processus le plus rapide, m\u00eame lorsque vous ne vous souciez que du comportement lent. Cela peut n\u00e9cessiter des millions de petits pas pour un probl\u00e8me o\u00f9 la dynamique pertinente est beaucoup plus lente.<\/p>\n<p>La rigidit\u00e9 appara\u00eet souvent comme une instabilit\u00e9 num\u00e9rique dans les m\u00e9thodes explicites. Les petites erreurs num\u00e9riques peuvent se d\u00e9velopper rapidement, m\u00eame lorsque la v\u00e9ritable solution physique est stable.<\/p>\n<p>Les m\u00e9thodes implicites \u00e9vitent ce probl\u00e8me car leurs r\u00e9gions de stabilit\u00e9 peuvent absorber des modes rapides sans r\u00e9soudre chaque transitoire rapide. C'est pourquoi Euler, BDF et Crank-Nicolson \u00e0 l'envers sont des choix courants pour les odes et les PDE rigides.<\/p>\n<h2>Approches hybrides : fractionnement des op\u00e9rateurs et IMEX<\/h2>\n<p>Les PDE r\u00e9elles contiennent souvent des termes rigides et non raides. Consid\u00e9rez une \u00e9quation de convection-diffusion-r\u00e9action&nbsp;:<\/p>\n<pre><code>\u2202u\/\u2202t = \u2212\u2207\u00b7(vu) + \u03b1\u2207\u00b2u + R(u)\n<\/code><\/pre>\n<p>Chaque terme a un caract\u00e8re num\u00e9rique diff\u00e9rent :<\/p>\n<ul>\n<li>Le terme d'advection est en forme d'onde et souvent trait\u00e9 explicitement.<\/li>\n<li>Le terme de diffusion est raide et souvent trait\u00e9 de mani\u00e8re implicite.<\/li>\n<li>Le terme de r\u00e9action peut \u00eatre raide s'il repr\u00e9sente une chimie rapide ou un comportement de source rapide.<\/li>\n<\/ul>\n<p>Utiliser une m\u00e9thode pour chaque terme peut \u00eatre inutile. Les sch\u00e9mas enti\u00e8rement explicites peuvent n\u00e9cessiter de minuscules pas de temps. Les r\u00e9gimes enti\u00e8rement implicites peuvent \u00eatre inutilement co\u00fbteux pour des conditions non raides.<\/p>\n<h3>Split d'op\u00e9rateur<\/h3>\n<p>La division de l'op\u00e9rateur, \u00e9galement appel\u00e9e pas fractionnaire, d\u00e9compose la PDE en sous-\u00e9tapes s\u00e9quentielles&nbsp;:<\/p>\n<pre><code>Step 1: Solve \u2202u\/\u2202t = \u2212\u2207\u00b7(vu)     explicitly\nStep 2: Solve \u2202u\/\u2202t = \u03b1\u2207\u00b2u        implicitly\nStep 3: Solve \u2202u\/\u2202t = R(u)        explicitly or implicitly\n<\/code><\/pre>\n<p>Le pas \u00e0 temps plein est construit en encha\u00eenant ces petites r\u00e9solutions.<\/p>\n<p>Strang Splitting am\u00e9liore la pr\u00e9cision en utilisant une s\u00e9quence sym\u00e9trique :<\/p>\n<pre><code>Step 1: Half step with advection, \u0394t \/ 2\nStep 2: Full step with diffusion, \u0394t\nStep 3: Half step with advection, \u0394t \/ 2\n<\/code><\/pre>\n<p>Le fractionnement ordinaire est g\u00e9n\u00e9ralement de premier ordre dans le temps. La division Strang est de second ordre pour les probl\u00e8mes appropri\u00e9s.<\/p>\n<h3>M\u00e9thodes IMEX<\/h3>\n<p>Les m\u00e9thodes IMEX combinent un traitement implicite et explicite dans un sch\u00e9ma d'int\u00e9gration. Les termes non raides sont \u00e9valu\u00e9s explicitement, tandis que les termes rigoureux sont \u00e9valu\u00e9s de mani\u00e8re implicite&nbsp;:<\/p>\n<pre><code>u\u207f\u207a\u00b9 = u\u207f + \u0394t \u00b7 [L_explicit(u\u207f) + L_implicit(u\u207f\u207a\u00b9)]\n<\/code><\/pre>\n<p>Les m\u00e9thodes multi-\u00e9tapes IMEX Runge-Kutta et IMEX sont largement utilis\u00e9es pour les syst\u00e8mes PDE avec une rigidit\u00e9 mixte.<\/p>\n<p>Les m\u00e9thodes IMEX sont utiles pour les \u00e9quations de convection-diffusion, les formulations de Navier-Stokes et les syst\u00e8mes de r\u00e9action-diffusion o\u00f9 diff\u00e9rents termes n\u00e9cessitent un traitement de stabilit\u00e9 diff\u00e9rent.<\/p>\n<h2>Exemples de Python : mise en pratique de la th\u00e9orie<\/h2>\n<p>Les exemples ci-dessous montrent la diff\u00e9rence pratique entre un pas de temps explicite et implicite pour la diffusion.<\/p>\n<h3>Pas de temps explicite avec NumPy<\/h3>\n<p>Une v\u00e9ritable mise \u00e0 jour d'Euler explicite peut \u00eatre \u00e9crite directement avec NumPy. Cette version doit respecter la condition de diffusion CFL.<\/p>\n<pre><code class=\"language-python\">import numpy as np\nimport matplotlib.pyplot as plt\n\n# Mesh\nnx = 100\nL = 1.0\ndx = L \/ nx\nx = np.linspace(0, L, nx + 1)\n\n# Initial condition\nphi = np.zeros(nx + 1)\nphi[x &lt; 0.5] = 1.0\n\n# Diffusion coefficient\nD = 1.0\n\n# Explicit stability limit:\n# dt &lt;= dx**2 \/ (2 * D)\ndt = 0.4 * dx**2 \/ D\nsteps = 500\n\nfor step in range(steps):\n    phi_new = phi.copy()\n    phi_new[1:-1] = (\n        phi[1:-1]\n        + D * dt \/ dx**2 * (phi[2:] - 2 * phi[1:-1] + phi[:-2])\n    )\n    \n    # Fixed boundary values\n    phi_new[0] = 0.0\n    phi_new[-1] = 0.0\n    \n    phi = phi_new\n\nplt.plot(x, phi)\nplt.xlabel(\"x\")\nplt.ylabel(\"phi\")\nplt.show()\n<\/code><\/pre>\n<p>Ce sch\u00e9ma est simple et peu co\u00fbteux par pas. Mais le pas de temps doit \u00eatre tr\u00e8s petit. Si le maillage est affin\u00e9, le pas de temps doit se r\u00e9tr\u00e9cir en quadratiquement.<\/p>\n<h3>Temps implicite pas \u00e0 pas avec Fipy<\/h3>\n<p>La formulation de FIPY <code>TransientTerm() == DiffusionTerm()<\/code> est implicite par d\u00e9faut. Il assemble et r\u00e9sout un syst\u00e8me matriciel \u00e0 chaque \u00e9tape, ce qui permet des pas de temps stables plus importants pour les probl\u00e8mes de diffusion.<\/p>\n<pre><code class=\"language-python\">from fipy import Grid1D, CellVariable, TransientTerm, DiffusionTerm\n\nnx = 100\ndx = 1.0 \/ nx\nmesh = Grid1D(nx=nx, dx=dx)\n\nphi = CellVariable(name=\"phi\", mesh=mesh, value=0.0)\n\nx = mesh.cellCenters[0]\nphi.setValue(1.0, where=x &lt; 0.5)\n\nD = 1.0\neq = TransientTerm(var=phi) == DiffusionTerm(coeff=D, var=phi)\n\n# Larger time step than the explicit diffusion limit\ndt = 1e-3\nsteps = 500\n\nfor step in range(steps):\n    eq.solve(var=phi, dt=dt)\n<\/code><\/pre>\n<p>La version implicite co\u00fbte plus cher par \u00e9tape, mais elle peut prendre des mesures plus importantes sans divergence num\u00e9rique. Pour les probl\u00e8mes domin\u00e9s par la diffusion, cela r\u00e9duit souvent le temps d'ex\u00e9cution total.<\/p>\n<h3>Pens\u00e9e de style Crank-Nicolson<\/h3>\n<p>Crank-Nicolson fait la moyenne des \u00e9valuations actuelles et futures. Dans les biblioth\u00e8ques qui prennent en charge un param\u00e8tre th\u00eata, <code>theta = 0.5<\/code> correspond au comportement de Crank-Nicolson.<\/p>\n<pre><code class=\"language-python\"># Conceptual pattern:\n# theta = 0.5 gives Crank-Nicolson in theta-method frameworks.\n# theta = 1.0 gives Backward Euler.\n# theta = 0.0 gives Forward Euler.\n<\/code><\/pre>\n<p>La syntaxe exacte d\u00e9pend du cadre du solveur. V\u00e9rifiez toujours la documentation de la fa\u00e7on dont la biblioth\u00e8que choisie impl\u00e9mente les m\u00e9thodes THETA ou la discr\u00e9tisation temporelle.<\/p>\n<h3>Une comparaison d'ex\u00e9cution pratique<\/h3>\n<p>Vous pouvez comparer les approches explicites et implicites en mesurant le temps d'horloge murale pour le m\u00eame temps physique final.<\/p>\n<pre><code class=\"language-python\">import time\n\n# Example structure only:\n# Run explicit solver with small dt\nt_start = time.time()\n\n# explicit_loop(dt_small, many_steps)\n\nprint(f\"Explicit runtime: {time.time() - t_start:.2f}s\")\n\n# Run implicit solver with larger dt\nt_start = time.time()\n\n# implicit_loop(dt_large, fewer_steps)\n\nprint(f\"Implicit runtime: {time.time() - t_start:.2f}s\")\n<\/code><\/pre>\n<p>La meilleure m\u00e9thode d\u00e9pend du probl\u00e8me. Les sch\u00e9mas explicites peuvent gagner lorsque chaque \u00e9tape est tr\u00e8s bon march\u00e9 et que les pas de temps physiques sont naturellement faibles. Les sch\u00e9mas implicites gagnent souvent pour des probl\u00e8mes de diffusion raide ou de diffusion par r\u00e9action o\u00f9 les limites de stabilit\u00e9 explicites sont graves.<\/p>\n<h2>Guide de d\u00e9cision&nbsp;: quand utiliser quelle m\u00e9thode<\/h2>\n<table class=\"custom-table\">\n<tbody><tr>\n<th>Situation<\/th>\n<th>Approche recommand\u00e9e<\/th>\n<th>Pourquoi<\/th>\n<\/tr>\n<tr>\n<td>Propagation des ondes, dynamique des chocs, d\u00e9bits \u00e0 grande vitesse<\/td>\n<td>Explicite<\/td>\n<td>Pas cher par pas, et les pas de temps physiques sont d\u00e9j\u00e0 faibles<\/td>\n<\/tr>\n<tr>\n<td>Probl\u00e8mes domin\u00e9s par la diffusion tels que le transfert de chaleur ou le transport de masse<\/td>\n<td>Implicite<\/td>\n<td>\u00c9vite les limites de diffusion explicites restrictives de LFC<\/td>\n<\/tr>\n<tr>\n<td>Couplage r\u00e9action-diffusion rigide<\/td>\n<td>IMEX ou fractionnement d'un op\u00e9rateur<\/td>\n<td>G\u00e8re explicitement les r\u00e9actions rapides et les termes moins chers<\/td>\n<\/tr>\n<tr>\n<td>Probl\u00e8mes en r\u00e9gime permanent ou quasi statique<\/td>\n<td>Implicite<\/td>\n<td>De grands pas de temps pseudo-temps peuvent aider \u00e0 aborder l'\u00e9tat d'\u00e9quilibre<\/td>\n<\/tr>\n<tr>\n<td>Grille spatiale haute r\u00e9solution<\/td>\n<td>Implicite<\/td>\n<td>\u00c9chelles de Diffusion explicite avec <code>\u0394x\u00b2<\/code><\/td>\n<\/tr>\n<tr>\n<td>Ondes transitoires pr\u00e9cis dans le temps<\/td>\n<td>Explicit avec le contr\u00f4le CFL<\/td>\n<td>La pr\u00e9cision du temps n\u00e9cessite la r\u00e9solution de la propagation physique des ondes<\/td>\n<\/tr>\n<tr>\n<td>La cin\u00e9tique chimique coupl\u00e9e \u00e0 la physique lente<\/td>\n<td>implicite ou BDF<\/td>\n<td>Un comportement d'Ode rigide peut rendre les m\u00e9thodes explicites impraticables<\/td>\n<\/tr>\n<tr>\n<td>Probl\u00e8mes multi-\u00e9chelles o\u00f9 la dynamique lente est la cible<\/td>\n<td>implicite ou imex<\/td>\n<td>Les transitoires rapides peuvent \u00eatre stabilis\u00e9s alors que le comportement lent est r\u00e9solu<\/td>\n<\/tr>\n<\/tbody><\/table>\n<p>Il n'y a pas de choix universellement sup\u00e9rieur. La bonne m\u00e9thode d\u00e9pend de la physique, de la r\u00e9solution du maillage, de la rigidit\u00e9 et de ce que vous devez mesurer.<\/p>\n<h2>erreurs courantes<\/h2>\n<ol>\n<li>Utilisation de m\u00e9thodes explicites pour la diffusion rigide sur des mailles fines. La condition de CFL force <code>\u0394t \u221d \u0394x\u00b2<\/code>, de sorte que l'affinage du maillage par 4 fois peut n\u00e9cessiter 16&nbsp;fois plus d'\u00e9tapes.<\/li>\n<li>Prendre d'\u00e9normes pas de temps implicites et supposer que le r\u00e9sultat est exact. La stabilit\u00e9 ne garantit pas la pr\u00e9cision. Choisissez <code>\u0394t<\/code> en fonction de l'\u00e9chelle de temps que vous devez r\u00e9soudre.<\/li>\n<li>N\u00e9gliger les v\u00e9rifications de la LCF. Les simulations explicites doivent toujours v\u00e9rifier que le pas de temps satisfait les limites de stabilit\u00e9.<\/li>\n<li>Traitant la s\u00e9paration de l'op\u00e9rateur comme une pr\u00e9cision gratuite. Le fractionnement introduit des erreurs de fractionnement. Le fractionnement ordinaire est g\u00e9n\u00e9ralement du premier ordre, et la division \u00e9trangl\u00e9e est g\u00e9n\u00e9ralement du second ordre.<\/li>\n<li>Supposer implicitement signifie mieux. Les solveurs implicites co\u00fbtent plus cher par \u00e9tape et peuvent introduire un amortissement num\u00e9rique, en particulier avec Euler \u00e0 l'arri\u00e8re du premier ordre.<\/li>\n<\/ol>\n<h2>Guides connexes<\/h2>\n<ul>\n<li><a href=\"\/understanding-fipys-core-architecture\/\">comprendre l'architecture de base de Fipy<\/a> - la formulation bas\u00e9e sur le terme de FIPY.<\/li>\n<li><a href=\"\/working-through-your-first-fipy-example\/\">Travailler \u00e0 travers votre premier exemple de Fipy<\/a> - un flux de travail complet de Fipy.<\/li>\n<li><a href=\"\/performance-profiling-optimization-python-pde-solvers\/\">Profilage et optimisation des performances pour les solveurs PDE Python<\/a> \u2014 Acc\u00e9l\u00e9rer les boucles temporelles.<\/li>\n<li><a href=\"\/adaptive-mesh-refinement-in-fipy-dynamic-resolution-for-complex-phenomena\/\">Raffinement de maillage adaptatif dans FIPY<\/a> \u2014 Raffinement spatial associ\u00e9 \u00e0 un pas de temps.<\/li>\n<\/ul>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>L'int\u00e9gration du temps est l'endroit o\u00f9 la th\u00e9orie rencontre la pratique en sciences informatiques. Le choix explicite ou implicite est l'une des d\u00e9cisions les plus importantes d'un solveur PDE.<\/p>\n<ul>\n<li>Les m\u00e9thodes explicites sont simples, bon march\u00e9 par pas et id\u00e9ales pour la physique en forme d'onde, mais elles n\u00e9cessitent une conformit\u00e9 stricte en mati\u00e8re de LCF.<\/li>\n<li>Les m\u00e9thodes implicites r\u00e9solvent des syst\u00e8mes coupl\u00e9s \u00e0 chaque \u00e9tape, mais elles peuvent prendre des mesures stables plus importantes pour les probl\u00e8mes de diffusion rigides.<\/li>\n<li>Les \u00e9quations rigides rendent souvent les m\u00e9thodes explicites impraticables. Les m\u00e9thodes implicites telles que BDF et Crank-Nicolson les g\u00e8re plus efficacement.<\/li>\n<li>Les approches hybrides telles que le fractionnement de l'op\u00e9rateur et l'IMEX associent une efficacit\u00e9 explicite \u00e0 une stabilit\u00e9 implicite.<\/li>\n<\/ul>\n<p>Commencez par identifier la physique dans l'\u00e9quation. Si le probl\u00e8me est domin\u00e9 par l'advection, des m\u00e9thodes explicites peuvent s'adapter. S'il est domin\u00e9 par la diffusion, les m\u00e9thodes implicites s'adaptent souvent mieux. S'il combine des termes rigides et non raides, utilisez IMEX ou fractionnement.<\/p>\n<p>Le bon choix d'int\u00e9gration de temps peut rendre une simulation plus rapide, plus stable et plus cr\u00e9dible.<\/p>\n<h2>Vous voulez de l'aide pour optimiser l'int\u00e9gration de votre solveur PDE ?<\/h2>\n<p>Choisir la bonne m\u00e9thode d'int\u00e9gration de temps peut faire la diff\u00e9rence entre une simulation qui s'ex\u00e9cute rapidement et une simulation qui prend des jours. Si vous avez des difficult\u00e9s avec la s\u00e9lection de pas de temps, la conversion implicite, la conception IMEX ou l'instabilit\u00e9 li\u00e9e \u00e0 la LCF, notre \u00e9quipe peut vous aider.<\/p>\n<p>Nous nous sp\u00e9cialisons dans les flux de travail efficaces et stables pour les codes Python scientifiques. Contactez les besoins de votre projet.<\/p>\n<h2>R\u00e9f\u00e9rences<\/h2>\n<ul>\n<li>Ascher, U.M., Ruuth, S.J., &amp; Spiteri, R.J. (1997). M\u00e9thodes Runge-Kutta implicites et explicites pour les PDE d\u00e9pendantes du temps. <em>Math\u00e9matiques num\u00e9riques appliqu\u00e9es<\/em>.<\/li>\n<li>Wikipedia&nbsp;: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Explicit_and_implicit_methods\">M\u00e9thodes explicites et implicites<\/a><\/li>\n<li>Wikip\u00e9dia&nbsp;: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Backward_differentiation_formula\">Formule de diff\u00e9renciation en arri\u00e8re<\/a><\/li>\n<li>Wikip\u00e9dia&nbsp;: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Courant%E2%80%93Friedrichs%E2%80%93Lewy_condition\">Courant-Friedrichs-Lewy-condition<\/a><\/li>\n<li><a href=\"https:\/\/pages.nist.gov\/fipy\/\">Documentation FIPY<\/a><\/li>\n<li><a href=\"https:\/\/docs.sciml.ai\/OrdinaryDiffEq\/stable\/imex\/IMEXMultistep\/\">SCIML : m\u00e9thodes multi-\u00e9tapes IMEX<\/a><\/li>\n<\/ul>\n"},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 10<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>Points \u00e0 retenir cl\u00e9s Les m\u00e9thodes explicites calculent l&rsquo;\u00e9tat suivant directement \u00e0 partir de l&rsquo;\u00e9tat actuel. Ils sont bon march\u00e9 par pas mais n\u00e9cessitent de petits pas de temps pour la stabilit\u00e9. Les m\u00e9thodes implicites r\u00e9solvent un syst\u00e8me coupl\u00e9 qui inclut les \u00e9tats actuels et futurs. Ils sont plus chers par pas mais peuvent \u00eatre [&hellip;]<\/p>\n","protected":false,"raw":""},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"fr_FR","_original_post":"https:\/\/matforge.org\/?p=347","iawp_total_views":3,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1271","post","type-post","status-publish","format-standard","hentry","category-simulation-modeling-projects","fr-FR"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Int\u00e9gration explicite ou implicite du temps<\/title>\n<meta name=\"description\" content=\"Comparez l&#039;int\u00e9gration temporelle explicite et implicite pour les solveurs PDE, y compris les limites CFL, la rigidit\u00e9, les exemples de FIPY, l&#039;IMEX et la division de l&#039;op\u00e9rateur.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Int\u00e9gration explicite ou implicite du temps\" \/>\n<meta property=\"og:description\" content=\"Comparez l&#039;int\u00e9gration temporelle explicite et implicite pour les solveurs PDE, y compris les limites CFL, la rigidit\u00e9, les exemples de FIPY, l&#039;IMEX et la division de l&#039;op\u00e9rateur.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/\" \/>\n<meta property=\"og:site_name\" content=\"matforge.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-21T14:31:32+00:00\" \/>\n<meta name=\"author\" content=\"Elena Markovska\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elena Markovska\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/\"},\"author\":{\"name\":\"Elena Markovska\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\"},\"headline\":\"M\u00e9thodes d&rsquo;int\u00e9gration de temps pour les solveurs PDE\u00a0: sch\u00e9mas explicites ou implicites\",\"datePublished\":\"2026-08-21T14:31:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/\"},\"wordCount\":2863,\"commentCount\":0,\"articleSection\":[\"Simulation &amp; Projets de mod\u00e9lisation\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/fr\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/\",\"name\":\"Int\u00e9gration explicite ou implicite du temps\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-08-21T14:31:32+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\"},\"description\":\"Comparez l'int\u00e9gration temporelle explicite et implicite pour les solveurs PDE, y compris les limites CFL, la rigidit\u00e9, les exemples de FIPY, l'IMEX et la division de l'op\u00e9rateur.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"M\u00e9thodes d&#8217;int\u00e9gration de temps pour les solveurs PDE\u00a0: sch\u00e9mas explicites ou implicites\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\",\"url\":\"https:\\\/\\\/matforge.org\\\/\",\"name\":\"matforge.org\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/matforge.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\",\"name\":\"Elena Markovska\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g\",\"caption\":\"Elena Markovska\"},\"sameAs\":[\"http:\\\/\\\/matforge.org\"],\"url\":\"https:\\\/\\\/matforge.org\\\/author\\\/elena-markovska\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Int\u00e9gration explicite ou implicite du temps","description":"Comparez l'int\u00e9gration temporelle explicite et implicite pour les solveurs PDE, y compris les limites CFL, la rigidit\u00e9, les exemples de FIPY, l'IMEX et la division de l'op\u00e9rateur.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/","og_locale":"fr_FR","og_type":"article","og_title":"Int\u00e9gration explicite ou implicite du temps","og_description":"Comparez l'int\u00e9gration temporelle explicite et implicite pour les solveurs PDE, y compris les limites CFL, la rigidit\u00e9, les exemples de FIPY, l'IMEX et la division de l'op\u00e9rateur.","og_url":"https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/","og_site_name":"matforge.org","article_published_time":"2026-08-21T14:31:32+00:00","author":"Elena Markovska","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Elena Markovska","Dur\u00e9e de lecture estim\u00e9e":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/"},"author":{"name":"Elena Markovska","@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da"},"headline":"M\u00e9thodes d&rsquo;int\u00e9gration de temps pour les solveurs PDE\u00a0: sch\u00e9mas explicites ou implicites","datePublished":"2026-08-21T14:31:32+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/"},"wordCount":2863,"commentCount":0,"articleSection":["Simulation &amp; Projets de mod\u00e9lisation"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/","url":"https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/","name":"Int\u00e9gration explicite ou implicite du temps","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-08-21T14:31:32+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da"},"description":"Comparez l'int\u00e9gration temporelle explicite et implicite pour les solveurs PDE, y compris les limites CFL, la rigidit\u00e9, les exemples de FIPY, l'IMEX et la division de l'op\u00e9rateur.","breadcrumb":{"@id":"https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/fr\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/"},{"@type":"ListItem","position":2,"name":"M\u00e9thodes d&#8217;int\u00e9gration de temps pour les solveurs PDE\u00a0: sch\u00e9mas explicites ou implicites"}]},{"@type":"WebSite","@id":"https:\/\/matforge.org\/#website","url":"https:\/\/matforge.org\/","name":"matforge.org","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/matforge.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da","name":"Elena Markovska","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g","caption":"Elena Markovska"},"sameAs":["http:\/\/matforge.org"],"url":"https:\/\/matforge.org\/author\/elena-markovska\/"}]}},"_links":{"self":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/comments?post=1271"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1271\/revisions"}],"predecessor-version":[{"id":1419,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1271\/revisions\/1419"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=1271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=1271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=1271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}