{"id":558,"date":"2026-07-22T08:17:36","date_gmt":"2026-07-22T08:17:36","guid":{"rendered":"https:\/\/matforge.org\/?p=558","raw":"https:\/\/matforge.org\/?p=558"},"modified":"2026-07-22T08:17:36","modified_gmt":"2026-07-22T08:17:36","slug":"time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes","status":"publish","type":"post","link":"https:\/\/matforge.org\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/","title":{"rendered":"M\u00e9todos de integraci\u00f3n de tiempo para solucionadores de PDE: esquemas expl\u00edcitos versus impl\u00edcitos","raw":"M\u00e9todos de integraci\u00f3n de tiempo para solucionadores de PDE: esquemas expl\u00edcitos versus impl\u00edcitos"},"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>Comida clave<\/h2>\n<ul>\n<li>Los m\u00e9todos expl\u00edcitos calculan el siguiente estado directamente desde el estado actual. Son baratos por paso, pero requieren peque\u00f1os pasos de tiempo para la estabilidad.<\/li>\n<li>Los m\u00e9todos impl\u00edcitos resuelven un sistema acoplado que incluye estados actuales y futuros. Son m\u00e1s caros por paso, pero pueden ser estables para pasos de tiempo mucho m\u00e1s grandes.<\/li>\n<li>Las ecuaciones r\u00edgidas contienen procesos con escalas de tiempo muy diferentes. A menudo hacen que los m\u00e9todos expl\u00edcitos sean poco pr\u00e1cticos.<\/li>\n<li>La condici\u00f3n CFL establece el paso de tiempo estable m\u00e1ximo para muchos esquemas expl\u00edcitos. Violarlo puede causar divergencias num\u00e9ricas.<\/li>\n<li>Los enfoques h\u00edbridos, como la divisi\u00f3n del operador, los m\u00e9todos IMEX y la divisi\u00f3n de Strang, combinan el tratamiento expl\u00edcito para t\u00e9rminos no r\u00edgidos con tratamiento impl\u00edcito para t\u00e9rminos r\u00edgidos.<\/li>\n<\/ul>\n<h2>La diferencia fundamental<\/h2>\n<p>Cuando resuelve num\u00e9ricamente una ecuaci\u00f3n diferencial parcial dependiente del tiempo, reemplaza la derivada de tiempo continuo con una diferencia discreta. La forma en que se aproxima esa derivada conduce a dos familias principales de m\u00e9todos: esquemas expl\u00edcitos e impl\u00edcitos.<\/p>\n<p>Los m\u00e9todos expl\u00edcitos calculan el estado en el tiempo <code>t\u2099\u208a\u2081<\/code> completamente a partir de valores conocidos en <code>t\u2099<\/code> o pasos de tiempo anteriores. La f\u00f3rmula tiene la forma:<\/p>\n<pre><code>u\u207f\u207a\u00b9 = F(u\u207f)\n<\/code><\/pre>\n<p>Cada t\u00e9rmino del lado derecho ya se conoce. El nuevo estado se encuentra a trav\u00e9s de \u00e1lgebra directa.<\/p>\n<p>Los m\u00e9todos impl\u00edcitos eval\u00faan parte o toda la ecuaci\u00f3n en el estado futuro desconocido <code>t\u2099\u208a\u2081<\/code>. La f\u00f3rmula tiene la forma:<\/p>\n<pre><code>G(u\u207f, u\u207f\u207a\u00b9) = 0\n<\/code><\/pre>\n<p>Debido a que la soluci\u00f3n depende de s\u00ed misma, debe resolver un sistema acoplado de ecuaciones en cada paso de tiempo. Esto generalmente requiere ensamblaje de matriz y solucionadores lineales o no lineales, como los m\u00e9todos Newton-Raphson o los m\u00e9todos Krylov.<\/p>\n<p>Los m\u00e9todos expl\u00edcitos son como dar un paso adelante basado solo en la posici\u00f3n actual. Los m\u00e9todos impl\u00edcitos son como resolver juntos la posici\u00f3n actual y la siguiente porque el estado futuro influye en la ecuaci\u00f3n.<\/p>\n<h2>M\u00e9todos expl\u00edcitos: Adelante Euler y m\u00e1s all\u00e1<\/h2>\n<p>El m\u00e9todo expl\u00edcito m\u00e1s simple es Forward Euler:<\/p>\n<pre><code>u\u207f\u207a\u00b9 = u\u207f + \u0394t \u00b7 f(u\u207f)\n<\/code><\/pre>\n<p>Eval\u00faa el lado derecho en el estado actual, multiplica por el paso de tiempo y agregas el resultado al estado actual. El costo por paso es bajo porque cada actualizaci\u00f3n es directa.<\/p>\n<p>Otros m\u00e9todos expl\u00edcitos incluyen:<\/p>\n<ul>\n<li>M\u00e9todos expl\u00edcitos de Runge-Kutta, incluido RK4.<\/li>\n<li>M\u00e9todos de varios pasos de Adams-Bashforth.<\/li>\n<li>Esquemas de espacio de tiempo central de avance para ecuaciones de difusi\u00f3n.<\/li>\n<\/ul>\n<p>Los m\u00e9todos expl\u00edcitos son \u00fatiles para:<\/p>\n<ul>\n<li>Las PDE hiperb\u00f3licas como la propagaci\u00f3n de ondas y algunos problemas de din\u00e1mica de fluidos.<\/li>\n<li>Problemas en los que el paso de tiempo f\u00edsico ya es peque\u00f1o.<\/li>\n<li>Flujos de trabajo altamente paralelizables donde cada actualizaci\u00f3n es barata.<\/li>\n<\/ul>\n<p>La principal limitaci\u00f3n es la estabilidad. Los m\u00e9todos expl\u00edcitos son condicionalmente estables, lo que significa que hay un l\u00edmite superior estricto en el paso de tiempo. Si excede ese l\u00edmite, la simulaci\u00f3n puede divergir.<\/p>\n<h2>M\u00e9todos impl\u00edcitos: Euler hacia atr\u00e1s y Crank-Nicolson<\/h2>\n<p>El m\u00e9todo impl\u00edcito m\u00e1s simple es Euler hacia atr\u00e1s, tambi\u00e9n llamado euler impl\u00edcito:<\/p>\n<pre><code>u\u207f\u207a\u00b9 = u\u207f + \u0394t \u00b7 f(u\u207f\u207a\u00b9)\n<\/code><\/pre>\n<p>El estado futuro <code>u\u207f\u207a\u00b9<\/code> aparece en ambos lados de la ecuaci\u00f3n. Para calcularlo, se resuelve una ecuaci\u00f3n algebraica o un sistema de ecuaciones despu\u00e9s de la discretizaci\u00f3n espacial.<\/p>\n<p>Esto requiere m\u00e1s trabajo por paso de tiempo que un m\u00e9todo expl\u00edcito. El solucionador puede necesitar ensamblaje de matriz, llamadas al solucionador lineal y comprobaciones de convergencia.<\/p>\n<p>El m\u00e9todo Crank-Nicolson es un esquema impl\u00edcito de segundo orden que promedia las evaluaciones expl\u00edcitas e impl\u00edcitas:<\/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 es popular porque es preciso en el tiempo de segundo orden y es estable para muchos problemas lineales. Es un compromiso entre el bajo costo de los esquemas expl\u00edcitos y la estabilidad de los esquemas impl\u00edcitos.<\/p>\n<p>Las f\u00f3rmulas de diferenciaci\u00f3n hacia atr\u00e1s son otra importante familia de m\u00e9todos impl\u00edcitos de varios pasos. BDF1 es equivalente a Euler hacia atr\u00e1s. BDF2 es de segundo orden y se usa ampliamente para sistemas r\u00edgidos en solucionadores de producci\u00f3n.<\/p>\n<p>Los m\u00e9todos impl\u00edcitos son \u00fatiles para:<\/p>\n<ul>\n<li>PDES parab\u00f3licas como la difusi\u00f3n y la transferencia de calor.<\/li>\n<li>Sistemas r\u00edgidos con escalas de tiempo muy separadas.<\/li>\n<li>Problemas en los que se necesitan pasos de tiempo m\u00e1s grandes para un tiempo de ejecuci\u00f3n pr\u00e1ctico.<\/li>\n<\/ul>\n<h2>La pregunta de estabilidad: condici\u00f3n CFL y m\u00e1s all\u00e1<\/h2>\n<p>La estabilidad es uno de los conceptos m\u00e1s importantes en la integraci\u00f3n del tiempo. Determina si los errores num\u00e9ricos crecen o decaen a medida que avanza la simulaci\u00f3n.<\/p>\n<h3>La condici\u00f3n de CFL<\/h3>\n<p>La condici\u00f3n de Courant-Friedrichs-Lewy es una condici\u00f3n de estabilidad necesaria para muchos esquemas num\u00e9ricos, especialmente para las PDE hiperb\u00f3licas. Afirma que el dominio num\u00e9rico de la dependencia debe contener el verdadero dominio f\u00edsico de la dependencia.<\/p>\n<p>En t\u00e9rminos pr\u00e1cticos, el paso de tiempo debe ser lo suficientemente peque\u00f1o como para que la informaci\u00f3n no avance m\u00e1s de lo que el esquema puede representar durante un paso.<\/p>\n<p>Para una ecuaci\u00f3n de advecci\u00f3n simple con velocidad <code>v<\/code> y espaciamiento de cuadr\u00edcula espacial <code>\u0394x<\/code>, el n\u00famero de Courant es:<\/p>\n<pre><code>Courant number = v \u00b7 \u0394t \/ \u0394x\n<\/code><\/pre>\n<p>Un requisito t\u00edpico de estabilidad es:<\/p>\n<pre><code>v \u00b7 \u0394t \/ \u0394x \u2264 C_critical\n<\/code><\/pre>\n<p>Los l\u00edmites de estabilidad t\u00edpicos incluyen:<\/p>\n<ul>\n<li>Advecci\u00f3n: <code>C \u2264 1<\/code>, con escalado lineal en <code>\u0394x<\/code>.<\/li>\n<li>Difusi\u00f3n: <code>\u0394t \u2264 \u0394x\u00b2 \/ (2\u03b1)<\/code>, con escalado cuadr\u00e1tico en <code>\u0394x<\/code>.<\/li>\n<\/ul>\n<p>Para la difusi\u00f3n expl\u00edcita con el esquema de espacio central del tiempo de avance, el n\u00famero de Fourier es:<\/p>\n<pre><code>F = \u03b1 \u00b7 \u0394t \/ \u0394x\u00b2 \u2264 0.5\n<\/code><\/pre>\n<p>Si refina la cuadr\u00edcula espacial por un factor de 2, el paso de tiempo m\u00e1ximo expl\u00edcito generalmente debe dividirse por 4. Esta restricci\u00f3n cuadr\u00e1tica hace que los m\u00e9todos expl\u00edcitos sean costosos para mallas finas en problemas dominados por difusi\u00f3n.<\/p>\n<h3>Estabilidad incondicional<\/h3>\n<p>Los m\u00e9todos impl\u00edcitos pueden proporcionar estabilidad incondicional para muchas clases de problemas. Con Euler hacia atr\u00e1s, un gran paso de tiempo puede no causar divergencia num\u00e9rica, aunque la precisi\u00f3n a\u00fan puede sufrir.<\/p>\n<p>Es por eso que los m\u00e9todos impl\u00edcitos son comunes para los problemas de difusi\u00f3n r\u00edgidos. La pregunta cambia de \u00ab\u00bfQu\u00e9 tan grande puede ser el paso de tiempo antes de que la soluci\u00f3n diverge?\u00bb a \u00ab\u00bfQu\u00e9 tan grande puede ser el paso de tiempo al preservar la precisi\u00f3n que necesito?\u00bb<\/p>\n<p>La estabilidad incondicional no es lo mismo que la precisi\u00f3n ilimitada. El error de truncamiento sigue creciendo con <code>\u0394t<\/code>. Todav\u00eda debe elegir el paso de tiempo basado en la escala de tiempo f\u00edsica que desea resolver.<\/p>\n<h2>Ecuaciones r\u00edgidas y por qu\u00e9 rompen m\u00e9todos expl\u00edcitos<\/h2>\n<p>Un sistema es r\u00edgido cuando contiene procesos que operan en escalas de tiempo muy diferentes. Por ejemplo, una reacci\u00f3n qu\u00edmica puede completarse en milisegundos mientras que la difusi\u00f3n evoluciona en minutos.<\/p>\n<p>Un m\u00e9todo expl\u00edcito debe utilizar pasos de tiempo lo suficientemente peque\u00f1os para resolver el proceso m\u00e1s r\u00e1pido, incluso cuando solo le importa el comportamiento lento. Esto puede requerir millones de peque\u00f1os pasos para un problema en el que las din\u00e1micas relevantes son mucho m\u00e1s lentas.<\/p>\n<p>La rigidez a menudo aparece como inestabilidad num\u00e9rica en los m\u00e9todos expl\u00edcitos. Los peque\u00f1os errores num\u00e9ricos pueden crecer r\u00e1pidamente, incluso cuando la verdadera soluci\u00f3n f\u00edsica es estable.<\/p>\n<p>Los m\u00e9todos impl\u00edcitos evitan este problema porque sus regiones de estabilidad pueden absorber modos r\u00e1pidos sin resolver cada transitorio r\u00e1pido. Esta es la raz\u00f3n por la cual Euler, BDF y Crank-Nicolson son opciones comunes para las ODE y las PDE r\u00edgidas.<\/p>\n<h2>Enfoques h\u00edbridos: divisi\u00f3n del operador e IMEX<\/h2>\n<p>Las PDE reales a menudo contienen t\u00e9rminos r\u00edgidos y no r\u00edgidos. Considere una ecuaci\u00f3n de convecci\u00f3n-difusi\u00f3n-reacci\u00f3n:<\/p>\n<pre><code>\u2202u\/\u2202t = \u2212\u2207\u00b7(vu) + \u03b1\u2207\u00b2u + R(u)\n<\/code><\/pre>\n<p>Cada t\u00e9rmino tiene un car\u00e1cter num\u00e9rico diferente:<\/p>\n<ul>\n<li>El t\u00e9rmino de advecci\u00f3n es similar a una onda y, a menudo, se trata expl\u00edcitamente.<\/li>\n<li>El t\u00e9rmino de difusi\u00f3n es r\u00edgido y, a menudo, se trata impl\u00edcitamente.<\/li>\n<li>El t\u00e9rmino de reacci\u00f3n puede ser r\u00edgido si representa una qu\u00edmica r\u00e1pida o un comportamiento r\u00e1pido de la fuente.<\/li>\n<\/ul>\n<p>El uso de un m\u00e9todo para cada t\u00e9rmino puede ser un desperdicio. Los esquemas completamente expl\u00edcitos pueden necesitar peque\u00f1os pasos de tiempo. Los esquemas completamente impl\u00edcitos pueden ser innecesariamente costosos para t\u00e9rminos no r\u00edgidos.<\/p>\n<h3>Operaci\u00f3n de divisi\u00f3n<\/h3>\n<p>La divisi\u00f3n del operador, tambi\u00e9n llamada paso fraccional, descompone el PDE en subpasos secuenciales:<\/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>El paso de tiempo completo se construye encadenando estas soluciones m\u00e1s peque\u00f1as.<\/p>\n<p>Dividir Strang mejora la precisi\u00f3n mediante el uso de una secuencia sim\u00e9trica:<\/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>La divisi\u00f3n ordinaria suele ser de primer orden en el tiempo. Strang Splitting es de segundo orden para problemas adecuados.<\/p>\n<h3>M\u00e9todos de Imex<\/h3>\n<p>Los m\u00e9todos IMEX combinan el tratamiento impl\u00edcito y expl\u00edcito dentro de un esquema de integraci\u00f3n. Los t\u00e9rminos no r\u00edgidos se eval\u00faan expl\u00edcitamente, mientras que los t\u00e9rminos r\u00edgidos se eval\u00faan impl\u00edcitamente:<\/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>Los m\u00e9todos IMEX Runge-Kutta e IMEX MultiStep son ampliamente utilizados para sistemas PDE con rigidez mixta.<\/p>\n<p>Los m\u00e9todos IMEX son \u00fatiles para ecuaciones de difusi\u00f3n por convecci\u00f3n, formulaciones de Navier-Stokes y sistemas de reacci\u00f3n-difusi\u00f3n donde diferentes t\u00e9rminos requieren un tratamiento de estabilidad diferente.<\/p>\n<h2>Ejemplos de Python: Poner la teor\u00eda en pr\u00e1ctica<\/h2>\n<p>Los siguientes ejemplos muestran la diferencia pr\u00e1ctica entre el paso de tiempo expl\u00edcito e impl\u00edcito para la difusi\u00f3n.<\/p>\n<h3>Paso de tiempo expl\u00edcito con numpy<\/h3>\n<p>Una verdadera actualizaci\u00f3n expl\u00edcita de Euler puede escribirse directamente con Numpy. Esta versi\u00f3n debe respetar la condici\u00f3n de difusi\u00f3n 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>Este esquema es simple y barato por paso. Pero el paso de tiempo debe ser muy peque\u00f1o. Si la malla es refinada, el paso de tiempo debe encogerse cuadr\u00e1ticamente.<\/p>\n<h3>Tiempo impl\u00edcito de paso con Fipy<\/h3>\n<p>La formulaci\u00f3n de Fipy <code>TransientTerm() == DiffusionTerm()<\/code> est\u00e1 impl\u00edcita por defecto. Ensambla y resuelve un sistema de matriz en cada paso, lo que permite mayores pasos de tiempo estables para problemas de difusi\u00f3n.<\/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 versi\u00f3n impl\u00edcita cuesta m\u00e1s por paso, pero puede dar pasos m\u00e1s grandes sin divergencia num\u00e9rica. Para los problemas dominados por la difusi\u00f3n, esto a menudo reduce el tiempo de ejecuci\u00f3n total.<\/p>\n<h3>Pensamiento al estilo de Crank-Nicolson<\/h3>\n<p>Crank-Nicolson promedia las evaluaciones actuales y futuras. En las bibliotecas que admiten un par\u00e1metro theta, <code>theta = 0.5<\/code> corresponde al comportamiento 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 sintaxis exacta depende del marco del solucionador. Siempre verifique la documentaci\u00f3n sobre c\u00f3mo la biblioteca elegida implementa los m\u00e9todos o discretizaci\u00f3n de tiempo.<\/p>\n<h3>Una comparaci\u00f3n pr\u00e1ctica en tiempo de ejecuci\u00f3n<\/h3>\n<p>Puede comparar enfoques expl\u00edcitos e impl\u00edcitos midiendo el tiempo de pared-reloj durante el mismo tiempo f\u00edsico 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>El mejor m\u00e9todo depende del problema. Los esquemas expl\u00edcitos pueden ganar cuando cada paso es muy barato y los pasos de tiempo f\u00edsicos son naturalmente peque\u00f1os. Los esquemas impl\u00edcitos a menudo ganan para problemas de difusi\u00f3n r\u00edgida o de reacci\u00f3n-difusi\u00f3n donde los l\u00edmites de estabilidad expl\u00edcitos son severos.<\/p>\n<h2>Gu\u00eda de Decisi\u00f3n: Cu\u00e1ndo usar qu\u00e9 m\u00e9todo<\/h2>\n<table class=\"custom-table\">\n<tbody>\n<tr>\n<th>Situaci\u00f3n<\/th>\n<th>Enfoque recomendado<\/th>\n<th>Por qu\u00e9<\/th>\n<\/tr>\n<tr>\n<td>Propagaci\u00f3n de ondas, din\u00e1mica de choque, flujos de alta velocidad<\/td>\n<td>Expl\u00edcito<\/td>\n<td>Barato por paso, y los pasos de tiempo f\u00edsicos ya son peque\u00f1os<\/td>\n<\/tr>\n<tr>\n<td>Problemas dominados por la difusi\u00f3n, como la transferencia de calor o el transporte masivo<\/td>\n<td>Impl\u00edcito<\/td>\n<td>Evita los l\u00edmites de CFL de difusi\u00f3n expl\u00edcita restrictivos<\/td>\n<\/tr>\n<tr>\n<td>Acoplamiento r\u00edgido de reacci\u00f3n-difusi\u00f3n<\/td>\n<td>IMEX o divisi\u00f3n del operador<\/td>\n<td>Maneja reacciones r\u00e1pidas impl\u00edcitamente y t\u00e9rminos m\u00e1s baratos expl\u00edcitamente<\/td>\n<\/tr>\n<tr>\n<td>Problemas de estado estacionario o cuasiest\u00e1ticos<\/td>\n<td>Impl\u00edcito<\/td>\n<td>Grandes pasos pseudo-tiempo pueden ayudar a acercarse al estado estacionario<\/td>\n<\/tr>\n<tr>\n<td>Rejilla espacial de alta resoluci\u00f3n<\/td>\n<td>Impl\u00edcito<\/td>\n<td>Escalas CFL de difusi\u00f3n expl\u00edcita con <code>\u0394x\u00b2<\/code><\/td>\n<\/tr>\n<tr>\n<td>Ondas transitorias en el tiempo<\/td>\n<td>Expl\u00edcito con control CFL<\/td>\n<td>La precisi\u00f3n del tiempo requiere resolver la propagaci\u00f3n de ondas f\u00edsicas<\/td>\n<\/tr>\n<tr>\n<td>Cin\u00e9tica qu\u00edmica acoplada a la f\u00edsica lenta<\/td>\n<td>impl\u00edcito o BDF<\/td>\n<td>El comportamiento de oda r\u00edgido puede hacer que los m\u00e9todos expl\u00edcitos sean poco pr\u00e1cticos<\/td>\n<\/tr>\n<tr>\n<td>Problemas multiescala donde las din\u00e1micas lentas son el objetivo<\/td>\n<td>impl\u00edcito o imex<\/td>\n<td>Los transitorios r\u00e1pidos se pueden estabilizar mientras se resuelve el comportamiento lento<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>No hay una opci\u00f3n universalmente superior. El m\u00e9todo correcto depende de la f\u00edsica, la resoluci\u00f3n de la malla, la rigidez y lo que necesita medir.<\/p>\n<h2>Errores comunes<\/h2>\n<ol>\n<li>Usando m\u00e9todos expl\u00edcitos para la difusi\u00f3n r\u00edgida en mallas finas. La condici\u00f3n CFL fuerza <code>\u0394t \u221d \u0394x\u00b2<\/code>, por lo que refinar la malla 4 veces puede requerir 16 veces m\u00e1s pasos.<\/li>\n<li>Tomar grandes pasos de tiempo impl\u00edcitos y asumir el resultado es preciso. La estabilidad no garantiza la exactitud. Elija <code>\u0394t<\/code> seg\u00fan la escala de tiempo que necesita resolver.<\/li>\n<li>Descuidar los cheques de CFL. Las simulaciones expl\u00edcitas siempre deben verificar que el paso de tiempo satisface los l\u00edmites de estabilidad.<\/li>\n<li>Tratar la divisi\u00f3n del operador como precisi\u00f3n libre. La divisi\u00f3n introduce errores de fraccionamiento. La divisi\u00f3n ordinaria suele ser de primer orden, y la divisi\u00f3n extra\u00f1a suele ser de segundo orden.<\/li>\n<li>Asumir impl\u00edcito significa mejor. Los solucionadores impl\u00edcitos cuestan m\u00e1s por paso y pueden introducir amortiguaci\u00f3n num\u00e9rica, especialmente con Euler hacia atr\u00e1s de primer orden.<\/li>\n<\/ol>\n<h2>Gu\u00edas relacionadas<\/h2>\n<ul>\n<li><a href=\"\/understanding-fipys-core-architecture\/\">comprender la arquitectura central de Fipy<\/a> \u2014 La formulaci\u00f3n basada en t\u00e9rminos de Fipy.<\/li>\n<li><a href=\"\/working-through-your-first-fipy-example\/\">trabajando a trav\u00e9s de su primer ejemplo de fipy<\/a> \u2014 Flujo de trabajo completo fipy.<\/li>\n<li><a href=\"\/performance-profiling-optimization-python-pde-solvers\/\">performance de perfiles y optimizaci\u00f3n para los solucionadores de PDE de Python<\/a>: haga que los bucles de tiempo sean m\u00e1s r\u00e1pidos.<\/li>\n<li><a href=\"\/adaptive-mesh-refinement-in-fipy-dynamic-resolution-for-complex-phenomena\/\">refinamiento de malla adaptativa en fipy<\/a> \u2014 Refinamiento espacial emparejado con el paso del tiempo.<\/li>\n<\/ul>\n<h2>Resumen<\/h2>\n<p>La integraci\u00f3n del tiempo es donde la teor\u00eda se encuentra con la pr\u00e1ctica en la ciencia computacional. La elecci\u00f3n expl\u00edcita versus impl\u00edcita es una de las decisiones m\u00e1s importantes en un solucionador de PDE.<\/p>\n<ul>\n<li>Los m\u00e9todos expl\u00edcitos son simples, baratos por paso e ideales para la f\u00edsica ondulada, pero requieren un estricto cumplimiento de CFL.<\/li>\n<li>Los m\u00e9todos impl\u00edcitos resuelven sistemas acoplados en cada paso, pero pueden dar pasos m\u00e1s estables para problemas de difusi\u00f3n r\u00edgidos.<\/li>\n<li>Stiff equations often make explicit methods impractical. Los m\u00e9todos impl\u00edcitos como BDF y Crank-Nicolson los manejan de manera m\u00e1s eficiente.<\/li>\n<li>Los enfoques h\u00edbridos como la divisi\u00f3n del operador y la IMEX combinan la eficiencia expl\u00edcita con la estabilidad impl\u00edcita.<\/li>\n<\/ul>\n<p>Comience por identificar la f\u00edsica en la ecuaci\u00f3n. Si el problema est\u00e1 dominado por la advecci\u00f3n, pueden encajar los m\u00e9todos expl\u00edcitos. Si est\u00e1 dominado por la difusi\u00f3n, los m\u00e9todos impl\u00edcitos a menudo encajan mejor. Si combina t\u00e9rminos r\u00edgidos y no r\u00edgidos, use IMEX o Splitting.<\/p>\n<p>La elecci\u00f3n de integraci\u00f3n de tiempo adecuada puede hacer que una simulaci\u00f3n sea m\u00e1s r\u00e1pida, estable y m\u00e1s cre\u00edble.<\/p>\n<h2>\u00bfDesea ayuda para optimizar la integraci\u00f3n de tiempo de su solucionador de PDE?<\/h2>\n<p>Elegir el m\u00e9todo de integraci\u00f3n de tiempo adecuado puede marcar la diferencia entre una simulaci\u00f3n que se ejecuta r\u00e1pidamente y una que lleva d\u00edas. Si tiene problemas con la selecci\u00f3n de pasos en el tiempo, la conversi\u00f3n impl\u00edcita, el dise\u00f1o IMEX o la inestabilidad relacionada con CFL, nuestro equipo puede ayudarlo.<\/p>\n<p>Nos especializamos en flujos de trabajo eficientes y estables para c\u00f3digos de Python cient\u00edficos. Comun\u00edquese para discutir las necesidades de su proyecto.<\/p>\n<h2>referencias<\/h2>\n<ul>\n<li>Ascher, U. M., Ruuth, S. J., &amp; Spiteri, R. J. (1997). M\u00e9todos Runge-Kutta impl\u00edcitos expl\u00edcitos para las PDE dependientes del tiempo. <em>Matem\u00e1ticas num\u00e9ricas aplicadas<\/em>.<\/li>\n<li>Wikipedia: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Explicit_and_implicit_methods\">m\u00e9todos expl\u00edcitos e impl\u00edcitos<\/a><\/li>\n<li>Wikipedia: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Backward_differentiation_formula\">F\u00f3rmula de diferenciaci\u00f3n hacia atr\u00e1s<\/a><\/li>\n<li>Wikipedia: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Courant%E2%80%93Friedrichs%E2%80%93Lewy_condition\">Condici\u00f3n de Courant-Friedrichs-Lewy<\/a><\/li>\n<li><a href=\"https:\/\/pages.nist.gov\/fipy\/\">Documentaci\u00f3n de paso de tiempo de Fipy<\/a><\/li>\n<li><a href=\"https:\/\/docs.sciml.ai\/OrdinaryDiffEq\/stable\/imex\/IMEXMultistep\/\">SCIML: M\u00e9todos de varios pasos IMEX<\/a><\/li>\n<\/ul>\n","protected":false,"raw":"<h2>Comida clave<\/h2>\n<ul>\n<li>Los m\u00e9todos expl\u00edcitos calculan el siguiente estado directamente desde el estado actual. Son baratos por paso, pero requieren peque\u00f1os pasos de tiempo para la estabilidad.<\/li>\n<li>Los m\u00e9todos impl\u00edcitos resuelven un sistema acoplado que incluye estados actuales y futuros. Son m\u00e1s caros por paso, pero pueden ser estables para pasos de tiempo mucho m\u00e1s grandes.<\/li>\n<li>Las ecuaciones r\u00edgidas contienen procesos con escalas de tiempo muy diferentes. A menudo hacen que los m\u00e9todos expl\u00edcitos sean poco pr\u00e1cticos.<\/li>\n<li>La condici\u00f3n CFL establece el paso de tiempo estable m\u00e1ximo para muchos esquemas expl\u00edcitos. Violarlo puede causar divergencias num\u00e9ricas.<\/li>\n<li>Los enfoques h\u00edbridos, como la divisi\u00f3n del operador, los m\u00e9todos IMEX y la divisi\u00f3n de Strang, combinan el tratamiento expl\u00edcito para t\u00e9rminos no r\u00edgidos con tratamiento impl\u00edcito para t\u00e9rminos r\u00edgidos.<\/li>\n<\/ul>\n<h2>La diferencia fundamental<\/h2>\n<p>Cuando resuelve num\u00e9ricamente una ecuaci\u00f3n diferencial parcial dependiente del tiempo, reemplaza la derivada de tiempo continuo con una diferencia discreta. La forma en que se aproxima esa derivada conduce a dos familias principales de m\u00e9todos: esquemas expl\u00edcitos e impl\u00edcitos.<\/p>\n<p>Los m\u00e9todos expl\u00edcitos calculan el estado en el tiempo <code>t\u2099\u208a\u2081<\/code> completamente a partir de valores conocidos en <code>t\u2099<\/code> o pasos de tiempo anteriores. La f\u00f3rmula tiene la forma:<\/p>\n<pre><code>u\u207f\u207a\u00b9 = F(u\u207f)\n<\/code><\/pre>\n<p>Cada t\u00e9rmino del lado derecho ya se conoce. El nuevo estado se encuentra a trav\u00e9s de \u00e1lgebra directa.<\/p>\n<p>Los m\u00e9todos impl\u00edcitos eval\u00faan parte o toda la ecuaci\u00f3n en el estado futuro desconocido <code>t\u2099\u208a\u2081<\/code>. La f\u00f3rmula tiene la forma:<\/p>\n<pre><code>G(u\u207f, u\u207f\u207a\u00b9) = 0\n<\/code><\/pre>\n<p>Debido a que la soluci\u00f3n depende de s\u00ed misma, debe resolver un sistema acoplado de ecuaciones en cada paso de tiempo. Esto generalmente requiere ensamblaje de matriz y solucionadores lineales o no lineales, como los m\u00e9todos Newton-Raphson o los m\u00e9todos Krylov.<\/p>\n<p>Los m\u00e9todos expl\u00edcitos son como dar un paso adelante basado solo en la posici\u00f3n actual. Los m\u00e9todos impl\u00edcitos son como resolver juntos la posici\u00f3n actual y la siguiente porque el estado futuro influye en la ecuaci\u00f3n.<\/p>\n<h2>M\u00e9todos expl\u00edcitos: Adelante Euler y m\u00e1s all\u00e1<\/h2>\n<p>El m\u00e9todo expl\u00edcito m\u00e1s simple es Forward Euler:<\/p>\n<pre><code>u\u207f\u207a\u00b9 = u\u207f + \u0394t \u00b7 f(u\u207f)\n<\/code><\/pre>\n<p>Eval\u00faa el lado derecho en el estado actual, multiplica por el paso de tiempo y agregas el resultado al estado actual. El costo por paso es bajo porque cada actualizaci\u00f3n es directa.<\/p>\n<p>Otros m\u00e9todos expl\u00edcitos incluyen:<\/p>\n<ul>\n<li>M\u00e9todos expl\u00edcitos de Runge-Kutta, incluido RK4.<\/li>\n<li>M\u00e9todos de varios pasos de Adams-Bashforth.<\/li>\n<li>Esquemas de espacio de tiempo central de avance para ecuaciones de difusi\u00f3n.<\/li>\n<\/ul>\n<p>Los m\u00e9todos expl\u00edcitos son \u00fatiles para:<\/p>\n<ul>\n<li>Las PDE hiperb\u00f3licas como la propagaci\u00f3n de ondas y algunos problemas de din\u00e1mica de fluidos.<\/li>\n<li>Problemas en los que el paso de tiempo f\u00edsico ya es peque\u00f1o.<\/li>\n<li>Flujos de trabajo altamente paralelizables donde cada actualizaci\u00f3n es barata.<\/li>\n<\/ul>\n<p>La principal limitaci\u00f3n es la estabilidad. Los m\u00e9todos expl\u00edcitos son condicionalmente estables, lo que significa que hay un l\u00edmite superior estricto en el paso de tiempo. Si excede ese l\u00edmite, la simulaci\u00f3n puede divergir.<\/p>\n<h2>M\u00e9todos impl\u00edcitos: Euler hacia atr\u00e1s y Crank-Nicolson<\/h2>\n<p>El m\u00e9todo impl\u00edcito m\u00e1s simple es Euler hacia atr\u00e1s, tambi\u00e9n llamado euler impl\u00edcito:<\/p>\n<pre><code>u\u207f\u207a\u00b9 = u\u207f + \u0394t \u00b7 f(u\u207f\u207a\u00b9)\n<\/code><\/pre>\n<p>El estado futuro <code>u\u207f\u207a\u00b9<\/code> aparece en ambos lados de la ecuaci\u00f3n. Para calcularlo, se resuelve una ecuaci\u00f3n algebraica o un sistema de ecuaciones despu\u00e9s de la discretizaci\u00f3n espacial.<\/p>\n<p>Esto requiere m\u00e1s trabajo por paso de tiempo que un m\u00e9todo expl\u00edcito. El solucionador puede necesitar ensamblaje de matriz, llamadas al solucionador lineal y comprobaciones de convergencia.<\/p>\n<p>El m\u00e9todo Crank-Nicolson es un esquema impl\u00edcito de segundo orden que promedia las evaluaciones expl\u00edcitas e impl\u00edcitas:<\/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 es popular porque es preciso en el tiempo de segundo orden y es estable para muchos problemas lineales. Es un compromiso entre el bajo costo de los esquemas expl\u00edcitos y la estabilidad de los esquemas impl\u00edcitos.<\/p>\n<p>Las f\u00f3rmulas de diferenciaci\u00f3n hacia atr\u00e1s son otra importante familia de m\u00e9todos impl\u00edcitos de varios pasos. BDF1 es equivalente a Euler hacia atr\u00e1s. BDF2 es de segundo orden y se usa ampliamente para sistemas r\u00edgidos en solucionadores de producci\u00f3n.<\/p>\n<p>Los m\u00e9todos impl\u00edcitos son \u00fatiles para:<\/p>\n<ul>\n<li>PDES parab\u00f3licas como la difusi\u00f3n y la transferencia de calor.<\/li>\n<li>Sistemas r\u00edgidos con escalas de tiempo muy separadas.<\/li>\n<li>Problemas en los que se necesitan pasos de tiempo m\u00e1s grandes para un tiempo de ejecuci\u00f3n pr\u00e1ctico.<\/li>\n<\/ul>\n<h2>La pregunta de estabilidad: condici\u00f3n CFL y m\u00e1s all\u00e1<\/h2>\n<p>La estabilidad es uno de los conceptos m\u00e1s importantes en la integraci\u00f3n del tiempo. Determina si los errores num\u00e9ricos crecen o decaen a medida que avanza la simulaci\u00f3n.<\/p>\n<h3>La condici\u00f3n de CFL<\/h3>\n<p>La condici\u00f3n de Courant-Friedrichs-Lewy es una condici\u00f3n de estabilidad necesaria para muchos esquemas num\u00e9ricos, especialmente para las PDE hiperb\u00f3licas. Afirma que el dominio num\u00e9rico de la dependencia debe contener el verdadero dominio f\u00edsico de la dependencia.<\/p>\n<p>En t\u00e9rminos pr\u00e1cticos, el paso de tiempo debe ser lo suficientemente peque\u00f1o como para que la informaci\u00f3n no avance m\u00e1s de lo que el esquema puede representar durante un paso.<\/p>\n<p>Para una ecuaci\u00f3n de advecci\u00f3n simple con velocidad <code>v<\/code> y espaciamiento de cuadr\u00edcula espacial <code>\u0394x<\/code>, el n\u00famero de Courant es:<\/p>\n<pre><code>Courant number = v \u00b7 \u0394t \/ \u0394x\n<\/code><\/pre>\n<p>Un requisito t\u00edpico de estabilidad es:<\/p>\n<pre><code>v \u00b7 \u0394t \/ \u0394x \u2264 C_critical\n<\/code><\/pre>\n<p>Los l\u00edmites de estabilidad t\u00edpicos incluyen:<\/p>\n<ul>\n<li>Advecci\u00f3n: <code>C \u2264 1<\/code>, con escalado lineal en <code>\u0394x<\/code>.<\/li>\n<li>Difusi\u00f3n: <code>\u0394t \u2264 \u0394x\u00b2 \/ (2\u03b1)<\/code>, con escalado cuadr\u00e1tico en <code>\u0394x<\/code>.<\/li>\n<\/ul>\n<p>Para la difusi\u00f3n expl\u00edcita con el esquema de espacio central del tiempo de avance, el n\u00famero de Fourier es:<\/p>\n<pre><code>F = \u03b1 \u00b7 \u0394t \/ \u0394x\u00b2 \u2264 0.5\n<\/code><\/pre>\n<p>Si refina la cuadr\u00edcula espacial por un factor de 2, el paso de tiempo m\u00e1ximo expl\u00edcito generalmente debe dividirse por 4. Esta restricci\u00f3n cuadr\u00e1tica hace que los m\u00e9todos expl\u00edcitos sean costosos para mallas finas en problemas dominados por difusi\u00f3n.<\/p>\n<h3>Estabilidad incondicional<\/h3>\n<p>Los m\u00e9todos impl\u00edcitos pueden proporcionar estabilidad incondicional para muchas clases de problemas. Con Euler hacia atr\u00e1s, un gran paso de tiempo puede no causar divergencia num\u00e9rica, aunque la precisi\u00f3n a\u00fan puede sufrir.<\/p>\n<p>Es por eso que los m\u00e9todos impl\u00edcitos son comunes para los problemas de difusi\u00f3n r\u00edgidos. La pregunta cambia de \"\u00bfQu\u00e9 tan grande puede ser el paso de tiempo antes de que la soluci\u00f3n diverge?\" a \"\u00bfQu\u00e9 tan grande puede ser el paso de tiempo al preservar la precisi\u00f3n que necesito?\"<\/p>\n<p>La estabilidad incondicional no es lo mismo que la precisi\u00f3n ilimitada. El error de truncamiento sigue creciendo con <code>\u0394t<\/code>. Todav\u00eda debe elegir el paso de tiempo basado en la escala de tiempo f\u00edsica que desea resolver.<\/p>\n<h2>Ecuaciones r\u00edgidas y por qu\u00e9 rompen m\u00e9todos expl\u00edcitos<\/h2>\n<p>Un sistema es r\u00edgido cuando contiene procesos que operan en escalas de tiempo muy diferentes. Por ejemplo, una reacci\u00f3n qu\u00edmica puede completarse en milisegundos mientras que la difusi\u00f3n evoluciona en minutos.<\/p>\n<p>Un m\u00e9todo expl\u00edcito debe utilizar pasos de tiempo lo suficientemente peque\u00f1os para resolver el proceso m\u00e1s r\u00e1pido, incluso cuando solo le importa el comportamiento lento. Esto puede requerir millones de peque\u00f1os pasos para un problema en el que las din\u00e1micas relevantes son mucho m\u00e1s lentas.<\/p>\n<p>La rigidez a menudo aparece como inestabilidad num\u00e9rica en los m\u00e9todos expl\u00edcitos. Los peque\u00f1os errores num\u00e9ricos pueden crecer r\u00e1pidamente, incluso cuando la verdadera soluci\u00f3n f\u00edsica es estable.<\/p>\n<p>Los m\u00e9todos impl\u00edcitos evitan este problema porque sus regiones de estabilidad pueden absorber modos r\u00e1pidos sin resolver cada transitorio r\u00e1pido. Esta es la raz\u00f3n por la cual Euler, BDF y Crank-Nicolson son opciones comunes para las ODE y las PDE r\u00edgidas.<\/p>\n<h2>Enfoques h\u00edbridos: divisi\u00f3n del operador e IMEX<\/h2>\n<p>Las PDE reales a menudo contienen t\u00e9rminos r\u00edgidos y no r\u00edgidos. Considere una ecuaci\u00f3n de convecci\u00f3n-difusi\u00f3n-reacci\u00f3n:<\/p>\n<pre><code>\u2202u\/\u2202t = \u2212\u2207\u00b7(vu) + \u03b1\u2207\u00b2u + R(u)\n<\/code><\/pre>\n<p>Cada t\u00e9rmino tiene un car\u00e1cter num\u00e9rico diferente:<\/p>\n<ul>\n<li>El t\u00e9rmino de advecci\u00f3n es similar a una onda y, a menudo, se trata expl\u00edcitamente.<\/li>\n<li>El t\u00e9rmino de difusi\u00f3n es r\u00edgido y, a menudo, se trata impl\u00edcitamente.<\/li>\n<li>El t\u00e9rmino de reacci\u00f3n puede ser r\u00edgido si representa una qu\u00edmica r\u00e1pida o un comportamiento r\u00e1pido de la fuente.<\/li>\n<\/ul>\n<p>El uso de un m\u00e9todo para cada t\u00e9rmino puede ser un desperdicio. Los esquemas completamente expl\u00edcitos pueden necesitar peque\u00f1os pasos de tiempo. Los esquemas completamente impl\u00edcitos pueden ser innecesariamente costosos para t\u00e9rminos no r\u00edgidos.<\/p>\n<h3>Operaci\u00f3n de divisi\u00f3n<\/h3>\n<p>La divisi\u00f3n del operador, tambi\u00e9n llamada paso fraccional, descompone el PDE en subpasos secuenciales:<\/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>El paso de tiempo completo se construye encadenando estas soluciones m\u00e1s peque\u00f1as.<\/p>\n<p>Dividir Strang mejora la precisi\u00f3n mediante el uso de una secuencia sim\u00e9trica:<\/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>La divisi\u00f3n ordinaria suele ser de primer orden en el tiempo. Strang Splitting es de segundo orden para problemas adecuados.<\/p>\n<h3>M\u00e9todos de Imex<\/h3>\n<p>Los m\u00e9todos IMEX combinan el tratamiento impl\u00edcito y expl\u00edcito dentro de un esquema de integraci\u00f3n. Los t\u00e9rminos no r\u00edgidos se eval\u00faan expl\u00edcitamente, mientras que los t\u00e9rminos r\u00edgidos se eval\u00faan impl\u00edcitamente:<\/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>Los m\u00e9todos IMEX Runge-Kutta e IMEX MultiStep son ampliamente utilizados para sistemas PDE con rigidez mixta.<\/p>\n<p>Los m\u00e9todos IMEX son \u00fatiles para ecuaciones de difusi\u00f3n por convecci\u00f3n, formulaciones de Navier-Stokes y sistemas de reacci\u00f3n-difusi\u00f3n donde diferentes t\u00e9rminos requieren un tratamiento de estabilidad diferente.<\/p>\n<h2>Ejemplos de Python: Poner la teor\u00eda en pr\u00e1ctica<\/h2>\n<p>Los siguientes ejemplos muestran la diferencia pr\u00e1ctica entre el paso de tiempo expl\u00edcito e impl\u00edcito para la difusi\u00f3n.<\/p>\n<h3>Paso de tiempo expl\u00edcito con numpy<\/h3>\n<p>Una verdadera actualizaci\u00f3n expl\u00edcita de Euler puede escribirse directamente con Numpy. Esta versi\u00f3n debe respetar la condici\u00f3n de difusi\u00f3n 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>Este esquema es simple y barato por paso. Pero el paso de tiempo debe ser muy peque\u00f1o. Si la malla es refinada, el paso de tiempo debe encogerse cuadr\u00e1ticamente.<\/p>\n<h3>Tiempo impl\u00edcito de paso con Fipy<\/h3>\n<p>La formulaci\u00f3n de Fipy <code>TransientTerm() == DiffusionTerm()<\/code> est\u00e1 impl\u00edcita por defecto. Ensambla y resuelve un sistema de matriz en cada paso, lo que permite mayores pasos de tiempo estables para problemas de difusi\u00f3n.<\/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 versi\u00f3n impl\u00edcita cuesta m\u00e1s por paso, pero puede dar pasos m\u00e1s grandes sin divergencia num\u00e9rica. Para los problemas dominados por la difusi\u00f3n, esto a menudo reduce el tiempo de ejecuci\u00f3n total.<\/p>\n<h3>Pensamiento al estilo de Crank-Nicolson<\/h3>\n<p>Crank-Nicolson promedia las evaluaciones actuales y futuras. En las bibliotecas que admiten un par\u00e1metro theta, <code>theta = 0.5<\/code> corresponde al comportamiento 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 sintaxis exacta depende del marco del solucionador. Siempre verifique la documentaci\u00f3n sobre c\u00f3mo la biblioteca elegida implementa los m\u00e9todos o discretizaci\u00f3n de tiempo.<\/p>\n<h3>Una comparaci\u00f3n pr\u00e1ctica en tiempo de ejecuci\u00f3n<\/h3>\n<p>Puede comparar enfoques expl\u00edcitos e impl\u00edcitos midiendo el tiempo de pared-reloj durante el mismo tiempo f\u00edsico 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>El mejor m\u00e9todo depende del problema. Los esquemas expl\u00edcitos pueden ganar cuando cada paso es muy barato y los pasos de tiempo f\u00edsicos son naturalmente peque\u00f1os. Los esquemas impl\u00edcitos a menudo ganan para problemas de difusi\u00f3n r\u00edgida o de reacci\u00f3n-difusi\u00f3n donde los l\u00edmites de estabilidad expl\u00edcitos son severos.<\/p>\n<h2>Gu\u00eda de Decisi\u00f3n: Cu\u00e1ndo usar qu\u00e9 m\u00e9todo<\/h2>\n<table class=\"custom-table\">\n<tbody><tr>\n<th>Situaci\u00f3n<\/th>\n<th>Enfoque recomendado<\/th>\n<th>Por qu\u00e9<\/th>\n<\/tr>\n<tr>\n<td>Propagaci\u00f3n de ondas, din\u00e1mica de choque, flujos de alta velocidad<\/td>\n<td>Expl\u00edcito<\/td>\n<td>Barato por paso, y los pasos de tiempo f\u00edsicos ya son peque\u00f1os<\/td>\n<\/tr>\n<tr>\n<td>Problemas dominados por la difusi\u00f3n, como la transferencia de calor o el transporte masivo<\/td>\n<td>Impl\u00edcito<\/td>\n<td>Evita los l\u00edmites de CFL de difusi\u00f3n expl\u00edcita restrictivos<\/td>\n<\/tr>\n<tr>\n<td>Acoplamiento r\u00edgido de reacci\u00f3n-difusi\u00f3n<\/td>\n<td>IMEX o divisi\u00f3n del operador<\/td>\n<td>Maneja reacciones r\u00e1pidas impl\u00edcitamente y t\u00e9rminos m\u00e1s baratos expl\u00edcitamente<\/td>\n<\/tr>\n<tr>\n<td>Problemas de estado estacionario o cuasiest\u00e1ticos<\/td>\n<td>Impl\u00edcito<\/td>\n<td>Grandes pasos pseudo-tiempo pueden ayudar a acercarse al estado estacionario<\/td>\n<\/tr>\n<tr>\n<td>Rejilla espacial de alta resoluci\u00f3n<\/td>\n<td>Impl\u00edcito<\/td>\n<td>Escalas CFL de difusi\u00f3n expl\u00edcita con <code>\u0394x\u00b2<\/code><\/td>\n<\/tr>\n<tr>\n<td>Ondas transitorias en el tiempo<\/td>\n<td>Expl\u00edcito con control CFL<\/td>\n<td>La precisi\u00f3n del tiempo requiere resolver la propagaci\u00f3n de ondas f\u00edsicas<\/td>\n<\/tr>\n<tr>\n<td>Cin\u00e9tica qu\u00edmica acoplada a la f\u00edsica lenta<\/td>\n<td>impl\u00edcito o BDF<\/td>\n<td>El comportamiento de oda r\u00edgido puede hacer que los m\u00e9todos expl\u00edcitos sean poco pr\u00e1cticos<\/td>\n<\/tr>\n<tr>\n<td>Problemas multiescala donde las din\u00e1micas lentas son el objetivo<\/td>\n<td>impl\u00edcito o imex<\/td>\n<td>Los transitorios r\u00e1pidos se pueden estabilizar mientras se resuelve el comportamiento lento<\/td>\n<\/tr>\n<\/tbody><\/table>\n<p>No hay una opci\u00f3n universalmente superior. El m\u00e9todo correcto depende de la f\u00edsica, la resoluci\u00f3n de la malla, la rigidez y lo que necesita medir.<\/p>\n<h2>Errores comunes<\/h2>\n<ol>\n<li>Usando m\u00e9todos expl\u00edcitos para la difusi\u00f3n r\u00edgida en mallas finas. La condici\u00f3n CFL fuerza <code>\u0394t \u221d \u0394x\u00b2<\/code>, por lo que refinar la malla 4 veces puede requerir 16 veces m\u00e1s pasos.<\/li>\n<li>Tomar grandes pasos de tiempo impl\u00edcitos y asumir el resultado es preciso. La estabilidad no garantiza la exactitud. Elija <code>\u0394t<\/code> seg\u00fan la escala de tiempo que necesita resolver.<\/li>\n<li>Descuidar los cheques de CFL. Las simulaciones expl\u00edcitas siempre deben verificar que el paso de tiempo satisface los l\u00edmites de estabilidad.<\/li>\n<li>Tratar la divisi\u00f3n del operador como precisi\u00f3n libre. La divisi\u00f3n introduce errores de fraccionamiento. La divisi\u00f3n ordinaria suele ser de primer orden, y la divisi\u00f3n extra\u00f1a suele ser de segundo orden.<\/li>\n<li>Asumir impl\u00edcito significa mejor. Los solucionadores impl\u00edcitos cuestan m\u00e1s por paso y pueden introducir amortiguaci\u00f3n num\u00e9rica, especialmente con Euler hacia atr\u00e1s de primer orden.<\/li>\n<\/ol>\n<h2>Gu\u00edas relacionadas<\/h2>\n<ul>\n<li><a href=\"\/understanding-fipys-core-architecture\/\">comprender la arquitectura central de Fipy<\/a> \u2014 La formulaci\u00f3n basada en t\u00e9rminos de Fipy.<\/li>\n<li><a href=\"\/working-through-your-first-fipy-example\/\">trabajando a trav\u00e9s de su primer ejemplo de fipy<\/a> \u2014 Flujo de trabajo completo fipy.<\/li>\n<li><a href=\"\/performance-profiling-optimization-python-pde-solvers\/\">performance de perfiles y optimizaci\u00f3n para los solucionadores de PDE de Python<\/a>: haga que los bucles de tiempo sean m\u00e1s r\u00e1pidos.<\/li>\n<li><a href=\"\/adaptive-mesh-refinement-in-fipy-dynamic-resolution-for-complex-phenomena\/\">refinamiento de malla adaptativa en fipy<\/a> \u2014 Refinamiento espacial emparejado con el paso del tiempo.<\/li>\n<\/ul>\n<h2>Resumen<\/h2>\n<p>La integraci\u00f3n del tiempo es donde la teor\u00eda se encuentra con la pr\u00e1ctica en la ciencia computacional. La elecci\u00f3n expl\u00edcita versus impl\u00edcita es una de las decisiones m\u00e1s importantes en un solucionador de PDE.<\/p>\n<ul>\n<li>Los m\u00e9todos expl\u00edcitos son simples, baratos por paso e ideales para la f\u00edsica ondulada, pero requieren un estricto cumplimiento de CFL.<\/li>\n<li>Los m\u00e9todos impl\u00edcitos resuelven sistemas acoplados en cada paso, pero pueden dar pasos m\u00e1s estables para problemas de difusi\u00f3n r\u00edgidos.<\/li>\n<li>Stiff equations often make explicit methods impractical. Los m\u00e9todos impl\u00edcitos como BDF y Crank-Nicolson los manejan de manera m\u00e1s eficiente.<\/li>\n<li>Los enfoques h\u00edbridos como la divisi\u00f3n del operador y la IMEX combinan la eficiencia expl\u00edcita con la estabilidad impl\u00edcita.<\/li>\n<\/ul>\n<p>Comience por identificar la f\u00edsica en la ecuaci\u00f3n. Si el problema est\u00e1 dominado por la advecci\u00f3n, pueden encajar los m\u00e9todos expl\u00edcitos. Si est\u00e1 dominado por la difusi\u00f3n, los m\u00e9todos impl\u00edcitos a menudo encajan mejor. Si combina t\u00e9rminos r\u00edgidos y no r\u00edgidos, use IMEX o Splitting.<\/p>\n<p>La elecci\u00f3n de integraci\u00f3n de tiempo adecuada puede hacer que una simulaci\u00f3n sea m\u00e1s r\u00e1pida, estable y m\u00e1s cre\u00edble.<\/p>\n<h2>\u00bfDesea ayuda para optimizar la integraci\u00f3n de tiempo de su solucionador de PDE?<\/h2>\n<p>Elegir el m\u00e9todo de integraci\u00f3n de tiempo adecuado puede marcar la diferencia entre una simulaci\u00f3n que se ejecuta r\u00e1pidamente y una que lleva d\u00edas. Si tiene problemas con la selecci\u00f3n de pasos en el tiempo, la conversi\u00f3n impl\u00edcita, el dise\u00f1o IMEX o la inestabilidad relacionada con CFL, nuestro equipo puede ayudarlo.<\/p>\n<p>Nos especializamos en flujos de trabajo eficientes y estables para c\u00f3digos de Python cient\u00edficos. Comun\u00edquese para discutir las necesidades de su proyecto.<\/p>\n<h2>referencias<\/h2>\n<ul>\n<li>Ascher, U. M., Ruuth, S. J., &amp; Spiteri, R. J. (1997). M\u00e9todos Runge-Kutta impl\u00edcitos expl\u00edcitos para las PDE dependientes del tiempo. <em>Matem\u00e1ticas num\u00e9ricas aplicadas<\/em>.<\/li>\n<li>Wikipedia: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Explicit_and_implicit_methods\">m\u00e9todos expl\u00edcitos e impl\u00edcitos<\/a><\/li>\n<li>Wikipedia: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Backward_differentiation_formula\">F\u00f3rmula de diferenciaci\u00f3n hacia atr\u00e1s<\/a><\/li>\n<li>Wikipedia: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Courant%E2%80%93Friedrichs%E2%80%93Lewy_condition\">Condici\u00f3n de Courant-Friedrichs-Lewy<\/a><\/li>\n<li><a href=\"https:\/\/pages.nist.gov\/fipy\/\">Documentaci\u00f3n de paso de tiempo de Fipy<\/a><\/li>\n<li><a href=\"https:\/\/docs.sciml.ai\/OrdinaryDiffEq\/stable\/imex\/IMEXMultistep\/\">SCIML: M\u00e9todos de varios pasos 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>Comida clave Los m\u00e9todos expl\u00edcitos calculan el siguiente estado directamente desde el estado actual. Son baratos por paso, pero requieren peque\u00f1os pasos de tiempo para la estabilidad. Los m\u00e9todos impl\u00edcitos resuelven un sistema acoplado que incluye estados actuales y futuros. Son m\u00e1s caros por paso, pero pueden ser estables para pasos de tiempo mucho m\u00e1s [&hellip;]<\/p>\n","protected":false,"raw":""},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"es_ES","_original_post":"https:\/\/matforge.org\/?p=347","iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-558","post","type-post","status-publish","format-standard","hentry","category-simulation-modeling-projects","es-ES"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Integraci\u00f3n de tiempo expl\u00edcita versus impl\u00edcita<\/title>\n<meta name=\"description\" content=\"Compare la integraci\u00f3n de tiempo expl\u00edcita e impl\u00edcita para los solucionadores de PDE, incluidos los l\u00edmites de CFL, la rigidez, los ejemplos de Fipy, IMEX y la divisi\u00f3n del operador.\" \/>\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\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Integraci\u00f3n de tiempo expl\u00edcita versus impl\u00edcita\" \/>\n<meta property=\"og:description\" content=\"Compare la integraci\u00f3n de tiempo expl\u00edcita e impl\u00edcita para los solucionadores de PDE, incluidos los l\u00edmites de CFL, la rigidez, los ejemplos de Fipy, IMEX y la divisi\u00f3n del operador.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/es\/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-07-22T08:17:36+00:00\" \/>\n<meta name=\"author\" content=\"Elena Markovska\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elena Markovska\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/\"},\"author\":{\"name\":\"Elena Markovska\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\"},\"headline\":\"M\u00e9todos de integraci\u00f3n de tiempo para solucionadores de PDE: esquemas expl\u00edcitos versus impl\u00edcitos\",\"datePublished\":\"2026-07-22T08:17:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/\"},\"wordCount\":2839,\"commentCount\":0,\"articleSection\":[\"Simulaci\u00f3n &amp; Proyectos de modelado\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/es\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/es\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/\",\"name\":\"Integraci\u00f3n de tiempo expl\u00edcita versus impl\u00edcita\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-07-22T08:17:36+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\"},\"description\":\"Compare la integraci\u00f3n de tiempo expl\u00edcita e impl\u00edcita para los solucionadores de PDE, incluidos los l\u00edmites de CFL, la rigidez, los ejemplos de Fipy, IMEX y la divisi\u00f3n del operador.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/es\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"M\u00e9todos de integraci\u00f3n de tiempo para solucionadores de PDE: esquemas expl\u00edcitos versus impl\u00edcitos\"}]},{\"@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\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\",\"name\":\"Elena Markovska\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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":"Integraci\u00f3n de tiempo expl\u00edcita versus impl\u00edcita","description":"Compare la integraci\u00f3n de tiempo expl\u00edcita e impl\u00edcita para los solucionadores de PDE, incluidos los l\u00edmites de CFL, la rigidez, los ejemplos de Fipy, IMEX y la divisi\u00f3n del operador.","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\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/","og_locale":"es_ES","og_type":"article","og_title":"Integraci\u00f3n de tiempo expl\u00edcita versus impl\u00edcita","og_description":"Compare la integraci\u00f3n de tiempo expl\u00edcita e impl\u00edcita para los solucionadores de PDE, incluidos los l\u00edmites de CFL, la rigidez, los ejemplos de Fipy, IMEX y la divisi\u00f3n del operador.","og_url":"https:\/\/matforge.org\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/","og_site_name":"matforge.org","article_published_time":"2026-07-22T08:17:36+00:00","author":"Elena Markovska","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Elena Markovska","Tiempo de lectura":"16 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/"},"author":{"name":"Elena Markovska","@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da"},"headline":"M\u00e9todos de integraci\u00f3n de tiempo para solucionadores de PDE: esquemas expl\u00edcitos versus impl\u00edcitos","datePublished":"2026-07-22T08:17:36+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/"},"wordCount":2839,"commentCount":0,"articleSection":["Simulaci\u00f3n &amp; Proyectos de modelado"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/","url":"https:\/\/matforge.org\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/","name":"Integraci\u00f3n de tiempo expl\u00edcita versus impl\u00edcita","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-07-22T08:17:36+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da"},"description":"Compare la integraci\u00f3n de tiempo expl\u00edcita e impl\u00edcita para los solucionadores de PDE, incluidos los l\u00edmites de CFL, la rigidez, los ejemplos de Fipy, IMEX y la divisi\u00f3n del operador.","breadcrumb":{"@id":"https:\/\/matforge.org\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/es\/time-integration-methods-for-pde-solvers-explicit-vs-implicit-schemes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/es\/"},{"@type":"ListItem","position":2,"name":"M\u00e9todos de integraci\u00f3n de tiempo para solucionadores de PDE: esquemas expl\u00edcitos versus impl\u00edcitos"}]},{"@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":"es"},{"@type":"Person","@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da","name":"Elena Markovska","image":{"@type":"ImageObject","inLanguage":"es","@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\/558","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=558"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/558\/revisions"}],"predecessor-version":[{"id":731,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/558\/revisions\/731"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}