<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Arturo Sanjuán</title>
<link>https://arturosanjuan.xyz/cursos/odes/</link>
<atom:link href="https://arturosanjuan.xyz/cursos/odes/index.xml" rel="self" type="application/rss+xml"/>
<description>.</description>
<image>
<url>https://arturosanjuan.xyz/vector.png</url>
<title>Arturo Sanjuán</title>
<link>https://arturosanjuan.xyz/cursos/odes/</link>
</image>
<generator>quarto-1.10.18</generator>
<lastBuildDate>Tue, 15 Sep 2026 05:00:00 GMT</lastBuildDate>
<item>
  <title>Reducción de Orden</title>
  <dc:creator>Arturo Sanjuán</dc:creator>
  <link>https://arturosanjuan.xyz/cursos/odes/reduccionorden/</link>
  <description><![CDATA[ 




<section id="cuando-el-orden-se-puede-bajar" class="level2" data-number="1">
<h2 data-number="1" class="anchored" data-anchor-id="cuando-el-orden-se-puede-bajar"><span class="header-section-number">1</span> Cuando el orden se puede bajar</h2>
<p>La ecuación general de segundo orden es <img src="https://latex.codecogs.com/png.latex?F(x,y,y',y'')=0">, y en general no hay ningún método sistemático para resolverla (de hecho, la mayoría de las ecuaciones de segundo orden no lineales simplemente no se pueden resolver en términos de funciones elementales). Pero hay dos situaciones estructurales, sorprendentemente comunes en las aplicaciones, en las que la ecuación se puede bajar a dos ecuaciones de primer orden que se resuelven una tras otra. En ambos casos el truco es el mismo: introducir <img src="https://latex.codecogs.com/png.latex?p=y'"> como nueva variable dependiente; la pregunta es solo respecto a qué variable conviene derivar <img src="https://latex.codecogs.com/png.latex?p">.</p>
<section id="falta-la-variable-dependiente-y" class="level3" data-number="1.1">
<h3 data-number="1.1" class="anchored" data-anchor-id="falta-la-variable-dependiente-y"><span class="header-section-number">1.1</span> Falta la variable dependiente <img src="https://latex.codecogs.com/png.latex?y"></h3>
<p>Si <img src="https://latex.codecogs.com/png.latex?y"> no aparece explícitamente en la ecuación, esta se puede escribir como</p>
<p><img src="https://latex.codecogs.com/png.latex?f(x,y',y'')=0"></p>
<p>En ese caso, con <img src="https://latex.codecogs.com/png.latex?p=y'"> y <img src="https://latex.codecogs.com/png.latex?p'=y''"> (derivando respecto a <img src="https://latex.codecogs.com/png.latex?x">, como siempre), la ecuación se convierte en</p>
<p><img src="https://latex.codecogs.com/png.latex?f(x,p,p')=0"></p>
<p>que ya es de primer orden en <img src="https://latex.codecogs.com/png.latex?p">. Si se puede resolver para <img src="https://latex.codecogs.com/png.latex?p(x)">, queda todavía una segunda integración, <img src="https://latex.codecogs.com/png.latex?y=%5Cint%20p%5C,dx">, para recuperar <img src="https://latex.codecogs.com/png.latex?y">.</p>
</section>
<section id="falta-la-variable-independiente-x" class="level3" data-number="1.2">
<h3 data-number="1.2" class="anchored" data-anchor-id="falta-la-variable-independiente-x"><span class="header-section-number">1.2</span> Falta la variable independiente <img src="https://latex.codecogs.com/png.latex?x"></h3>
<p>Si en cambio <img src="https://latex.codecogs.com/png.latex?x"> no aparece explícitamente, la ecuación tiene la forma</p>
<p><img src="https://latex.codecogs.com/png.latex?g(y,y',y'')=0"></p>
<p>Aquí conviene, en cambio, tratar a <img src="https://latex.codecogs.com/png.latex?p"> como función de <img src="https://latex.codecogs.com/png.latex?y"> (no de <img src="https://latex.codecogs.com/png.latex?x">), usando la regla de la cadena:</p>
<p><img src="https://latex.codecogs.com/png.latex?y''=%5Cfrac%7Bdp%7D%7Bdx%7D=%5Cfrac%7Bdp%7D%7Bdy%7D%5Cfrac%7Bdy%7D%7Bdx%7D=p%5Cfrac%7Bdp%7D%7Bdy%7D"></p>
<p>así que la ecuación se convierte en</p>
<p><img src="https://latex.codecogs.com/png.latex?g%5C!%5Cleft(y,p,p%5Cfrac%7Bdp%7D%7Bdy%7D%5Cright)=0"></p>
<p>que es de primer orden, ahora con <img src="https://latex.codecogs.com/png.latex?y"> haciendo las veces de variable independiente. Este segundo caso es exactamente lo que ocurre, físicamente, cuando se usa conservación de la energía en un sistema mecánico: la energía cinética depende de <img src="https://latex.codecogs.com/png.latex?p=v"> y la potencial de <img src="https://latex.codecogs.com/png.latex?y">, y derivar respecto a <img src="https://latex.codecogs.com/png.latex?y"> en vez de <img src="https://latex.codecogs.com/png.latex?x"> es, en el fondo, lo mismo que separar variables en la ecuación de energía.</p>
<p>Veamos tres aplicaciones clásicas: la primera usa el primer caso (<img src="https://latex.codecogs.com/png.latex?y"> ausente), y las otras dos, que resultan ser la misma ecuación disfrazada dos veces, usan el segundo (<img src="https://latex.codecogs.com/png.latex?x"> ausente).</p>
</section>
</section>
<section id="la-catenaria-la-forma-de-una-cadena-colgante" class="level2" data-number="2">
<h2 data-number="2" class="anchored" data-anchor-id="la-catenaria-la-forma-de-una-cadena-colgante"><span class="header-section-number">2</span> La catenaria: la forma de una cadena colgante</h2>
<p>En 1690, Jakob Bernoulli planteó como reto público el problema de encontrar la curva que forma una cadena flexible colgada de sus dos extremos, bajo su propio peso (él mismo lo había intentado sin éxito). Al año siguiente, Leibniz, Huygens y Johann Bernoulli publicaron soluciones independientes. Fue Huygens quien le dio el nombre, del latín <em>catena</em>, cadena.</p>
<p>Supongamos que el eje <img src="https://latex.codecogs.com/png.latex?y"> pasa por el punto más bajo de la cadena, y sea <img src="https://latex.codecogs.com/png.latex?s"> la longitud de arco medida desde ese punto hasta un punto variable <img src="https://latex.codecogs.com/png.latex?(x,y)">. Si <img src="https://latex.codecogs.com/png.latex?w(s)"> es la densidad lineal de la cadena, el trozo de cadena entre el punto más bajo y <img src="https://latex.codecogs.com/png.latex?(x,y)"> está en equilibrio bajo tres fuerzas: la tensión horizontal <img src="https://latex.codecogs.com/png.latex?T_0"> en el punto más bajo, la tensión <img src="https://latex.codecogs.com/png.latex?T"> en <img src="https://latex.codecogs.com/png.latex?(x,y)"> (que actúa a lo largo de la tangente, porque la cadena es flexible), y el peso de ese trozo de cadena, dirigido hacia abajo. Igualando las componentes horizontal y vertical,</p>
<p><img src="https://latex.codecogs.com/png.latex?T%5Ccos%5Ctheta=T_0,%5Cqquad%20T%5Csin%5Ctheta=%5Cint_0%5Es%20w(s)%5C,ds"></p>
<p>donde <img src="https://latex.codecogs.com/png.latex?%5Ctheta"> es el ángulo que forma la tangente con la horizontal. Dividiendo estas dos ecuaciones,</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Ctan%5Ctheta=y'=%5Cfrac%7B1%7D%7BT_0%7D%5Cint_0%5Es%20w(s)%5C,ds"></p>
<p>Derivando esta última igualdad respecto a <img src="https://latex.codecogs.com/png.latex?x">, y usando que <img src="https://latex.codecogs.com/png.latex?ds/dx=%5Csqrt%7B1+(y')%5E2%7D"> (el elemento de arco),</p>
<p><img src="https://latex.codecogs.com/png.latex?T_0y''=w(s)%5Cfrac%7Bds%7D%7Bdx%7D=w(s)%5Csqrt%7B1+(y')%5E2%7D"></p>
<p>Para una cadena de densidad uniforme <img src="https://latex.codecogs.com/png.latex?w(s)=w_0">, y llamando <img src="https://latex.codecogs.com/png.latex?a=T_0/w_0">,</p>
<p><img src="https://latex.codecogs.com/png.latex?ay''=%5Csqrt%7B1+(y')%5E2%7D"></p>
<p>Esta es una ecuación de segundo orden en la que <img src="https://latex.codecogs.com/png.latex?y"> no aparece explícitamente (solo <img src="https://latex.codecogs.com/png.latex?y'"> y <img src="https://latex.codecogs.com/png.latex?y''">): el primer caso de la sección anterior.</p>
<section id="resolviendo-por-reducción-de-orden" class="level3" data-number="2.1">
<h3 data-number="2.1" class="anchored" data-anchor-id="resolviendo-por-reducción-de-orden"><span class="header-section-number">2.1</span> Resolviendo por reducción de orden</h3>
<p>Con <img src="https://latex.codecogs.com/png.latex?p=y'">, la ecuación se convierte en</p>
<p><img src="https://latex.codecogs.com/png.latex?ap'=%5Csqrt%7B1+p%5E2%7D"></p>
<p>Aquí conviene resistir la tentación de elevar al cuadrado ambos lados para deshacerse de la raíz (eso complica innecesariamente el álgebra y puede introducir soluciones falsas al final). En cambio, separamos variables directamente,</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bdp%7D%7B%5Csqrt%7B1+p%5E2%7D%7D=%5Cfrac%7Bdx%7D%7Ba%7D"></p>
<p>y usamos el hecho de que la derivada de <img src="https://latex.codecogs.com/png.latex?%5Coperatorname%7Barcsenh%7D"> es exactamente el integrando de la izquierda (<img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bd%7D%7Bdp%7D%5Coperatorname%7Barcsenh%7D(p)=1/%5Csqrt%7B1+p%5E2%7D">, lo cual se comprueba de inmediato derivando <img src="https://latex.codecogs.com/png.latex?%5Coperatorname%7Bsenh%7D">): la antiderivada aparece de una vez, sin sustituciones adicionales, <img src="https://latex.codecogs.com/png.latex?%5Coperatorname%7Barcsenh%7D(p)=%5Clog%5C!%5Cleft(p+%5Csqrt%7B1+p%5E2%7D%5Cright)">. Integrando ambos lados,</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Coperatorname%7Barcsenh%7D(p)=%5Cfrac%7Bx%7D%7Ba%7D+C_1"></p>
<p>La pendiente en el punto más bajo es cero (<img src="https://latex.codecogs.com/png.latex?p=0"> cuando <img src="https://latex.codecogs.com/png.latex?x=0">, por construcción del eje <img src="https://latex.codecogs.com/png.latex?y">), así que <img src="https://latex.codecogs.com/png.latex?C_1=0"> y</p>
<p><img src="https://latex.codecogs.com/png.latex?p=y'=%5Coperatorname%7Bsenh%7D%5C!%5Cleft(%5Cfrac%7Bx%7D%7Ba%7D%5Cright)"></p>
<p>Una segunda integración da, finalmente,</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cboxed%7By=a%5Ccosh%5C!%5Cleft(%5Cfrac%7Bx%7D%7Ba%7D%5Cright)+C_2%7D"></p>
<p>que es la ecuación de la catenaria, con <img src="https://latex.codecogs.com/png.latex?C_2"> fijado por la altura del punto más bajo. El parámetro <img src="https://latex.codecogs.com/png.latex?a=T_0/w_0"> tiene una interpretación física directa: entre mayor la tensión horizontal <img src="https://latex.codecogs.com/png.latex?T_0"> frente al peso <img src="https://latex.codecogs.com/png.latex?w_0">, más abierta y plana es la curva cerca del origen; entre menor, más cerrada y puntiaguda.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://arturosanjuan.xyz/cursos/odes/reduccionorden/catenaria.png" class="img-fluid figure-img"></p>
<figcaption>La catenaria <img src="https://latex.codecogs.com/png.latex?y=a%5Ccosh(x/a)"> para dos valores de <img src="https://latex.codecogs.com/png.latex?a">. Entre mayor la tensión horizontal frente al peso, más plana es la curva cerca del punto más bajo.</figcaption>
</figure>
</div>
<div class="callout callout-style-default callout-tip callout-titled" title="Una curiosidad que se prueba más adelante en el curso">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Una curiosidad que se prueba más adelante en el curso
</div>
</div>
<div class="callout-body-container callout-body">
<p>Si esta curva se hace girar alrededor del eje <img src="https://latex.codecogs.com/png.latex?x">, la superficie de revolución que se genera tiene, entre todas las superficies que se apoyan en los mismos dos círculos extremos, el área mínima posible. Esto no es evidente a partir de lo que hemos visto aquí (se demuestra con cálculo de variaciones, minimizando directamente la integral del área), pero es una razón más para que esta curva, además de resolver un problema de equilibrio de fuerzas, también resuelva un problema de optimización geométrica.</p>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb1-2"></span>
<span id="cb1-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Verificamos que y=a*cosh(x/a) resuelve a*y''=sqrt(1+(y')^2) */</span></span>
<span id="cb1-4"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">a</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cosh</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">a</span>);</span>
<span id="cb1-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yp</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb1-6"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ypp</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>);</span>
<span id="cb1-7"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">chequeo</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">trigsimp</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">a</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ypp</span> - <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sqrt</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>+<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yp</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>));   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* debe dar 0 */</span></span>
<span id="cb1-8"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">chequeo</span>;</span>
<span id="cb1-9"></span>
<span id="cb1-10"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Confirmamos la antiderivada usada arriba */</span></span>
<span id="cb1-11"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">integrate</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>/<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sqrt</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>+<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">p</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">p</span>);   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* da asinh(p), la forma log(p+sqrt(1+p^2)) */</span></span></code></pre></div></div>
</div>
</div>
</section>
</section>
<section id="el-péndulo-y-el-resorte-la-misma-ecuación-dos-veces" class="level2" data-number="3">
<h2 data-number="3" class="anchored" data-anchor-id="el-péndulo-y-el-resorte-la-misma-ecuación-dos-veces"><span class="header-section-number">3</span> El péndulo y el resorte: la misma ecuación dos veces</h2>
<section id="el-péndulo-simple" class="level3" data-number="3.1">
<h3 data-number="3.1" class="anchored" data-anchor-id="el-péndulo-simple"><span class="header-section-number">3.1</span> El péndulo simple</h3>
<p>Consideremos ahora un péndulo: una masa <img src="https://latex.codecogs.com/png.latex?m"> al final de una cuerda de longitud <img src="https://latex.codecogs.com/png.latex?a"> y peso despreciable, con <img src="https://latex.codecogs.com/png.latex?%5Ctheta"> el ángulo que forma con la vertical, y <img src="https://latex.codecogs.com/png.latex?%5Calpha"> el ángulo (la amplitud) desde el que se suelta el péndulo, partiendo del reposo. Suponiendo que no hay resistencia del aire, la energía se conserva: la energía cinética en el ángulo <img src="https://latex.codecogs.com/png.latex?%5Ctheta"> más la energía potencial en <img src="https://latex.codecogs.com/png.latex?%5Ctheta"> es igual a la energía potencial inicial en <img src="https://latex.codecogs.com/png.latex?%5Calpha"> (donde la energía cinética es cero, porque se suelta desde el reposo):</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac12(a%5Cdot%5Ctheta)%5E2+ga(1-%5Ccos%5Ctheta)=ga(1-%5Ccos%5Calpha)"></p>
<p>(la velocidad a lo largo del arco es <img src="https://latex.codecogs.com/png.latex?a%5Cdot%5Ctheta">, y la altura sobre el punto más bajo es <img src="https://latex.codecogs.com/png.latex?a(1-%5Ccos%5Ctheta)">; ya dividimos entre la masa <img src="https://latex.codecogs.com/png.latex?m">). Despejando,</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cdot%5Ctheta%5E2=%5Cfrac%7B2g%7D%7Ba%7D(%5Ccos%5Ctheta-%5Ccos%5Calpha)"></p>
<p>Este es exactamente el segundo caso de la sección anterior, aplicado directamente a la ecuación de movimiento. En efecto, la segunda ley de Newton a lo largo del arco da <img src="https://latex.codecogs.com/png.latex?a%5Cddot%5Ctheta=-g%5Csin%5Ctheta">, y si en esa ecuación (donde <img src="https://latex.codecogs.com/png.latex?x">, el tiempo, no aparece explícitamente) sustituimos <img src="https://latex.codecogs.com/png.latex?p=%5Cdot%5Ctheta"> y <img src="https://latex.codecogs.com/png.latex?%5Cddot%5Ctheta=p%5C,dp/d%5Ctheta">,</p>
<p><img src="https://latex.codecogs.com/png.latex?ap%5Cfrac%7Bdp%7D%7Bd%5Ctheta%7D=-g%5Csin%5Ctheta%5Cquad%5CLongrightarrow%5Cquad%20ap%5C,dp=-g%5Csin%5Ctheta%5C,d%5Ctheta%5Cquad%5CLongrightarrow%5Cquad%20%5Cfrac%7Ba%7D%7B2%7Dp%5E2=g%5Ccos%5Ctheta+C"></p>
<p>y con la condición inicial <img src="https://latex.codecogs.com/png.latex?p=0"> en <img src="https://latex.codecogs.com/png.latex?%5Ctheta=%5Calpha"> se obtiene <img src="https://latex.codecogs.com/png.latex?C=-g%5Ccos%5Calpha">: exactamente la misma ecuación de conservación de energía de arriba. Reducir el orden de una ecuación de movimiento y conservar la energía son, en el fondo, el mismo cálculo hecho dos veces.</p>
<p><strong>El periodo exacto.</strong> Separando variables e integrando un cuarto de oscilación (de <img src="https://latex.codecogs.com/png.latex?%5Ctheta=0"> a <img src="https://latex.codecogs.com/png.latex?%5Ctheta=%5Calpha">), el periodo completo resulta</p>
<p><img src="https://latex.codecogs.com/png.latex?T=4%5Csqrt%7B%5Cfrac%7Ba%7D%7B2g%7D%7D%5Cint_0%5E%5Calpha%20%5Cfrac%7Bd%5Ctheta%7D%7B%5Csqrt%7B%5Ccos%5Ctheta-%5Ccos%5Calpha%7D%7D"></p>
<p>Con la identidad del ángulo mitad <img src="https://latex.codecogs.com/png.latex?%5Ccos%5Ctheta=1-2%5Csin%5E2(%5Ctheta/2)"> y la sustitución <img src="https://latex.codecogs.com/png.latex?%5Csin(%5Ctheta/2)=k%5Csin%5Cvarphi">, con <img src="https://latex.codecogs.com/png.latex?k=%5Csin(%5Calpha/2)"> (de modo que <img src="https://latex.codecogs.com/png.latex?%5Cvarphi"> va de <img src="https://latex.codecogs.com/png.latex?0"> a <img src="https://latex.codecogs.com/png.latex?%5Cpi/2"> cuando <img src="https://latex.codecogs.com/png.latex?%5Ctheta"> va de <img src="https://latex.codecogs.com/png.latex?0"> a <img src="https://latex.codecogs.com/png.latex?%5Calpha">), esta integral se transforma en</p>
<p><img src="https://latex.codecogs.com/png.latex?T=4%5Csqrt%7B%5Cfrac%7Ba%7D%7Bg%7D%7D%5Cint_0%5E%7B%5Cpi/2%7D%5Cfrac%7Bd%5Cvarphi%7D%7B%5Csqrt%7B1-k%5E2%5Csin%5E2%5Cvarphi%7D%7D=4%5Csqrt%7B%5Cfrac%7Ba%7D%7Bg%7D%7D%5C,K(k)"></p>
<p>donde <img src="https://latex.codecogs.com/png.latex?K(k)"> es la <strong>integral elíptica completa de primera especie</strong>. No existe forma de escribir <img src="https://latex.codecogs.com/png.latex?K(k)"> en términos de funciones elementales: hay que evaluarla numéricamente o con tablas.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Una curiosidad histórica: el error circular de los relojes de péndulo">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Una curiosidad histórica: el error circular de los relojes de péndulo
</div>
</div>
<div class="callout-body-container callout-body">
<p>Como <img src="https://latex.codecogs.com/png.latex?T"> depende de <img src="https://latex.codecogs.com/png.latex?%5Calpha">, un reloj de péndulo real se atrasa o adelanta según la amplitud con la que oscile; a este efecto se le llama, históricamente, el <em>error circular</em>. Christiaan Huygens, quien inventó el reloj de péndulo en 1656, descubrió que la única curva que hace que el periodo sea exactamente independiente de la amplitud (la propiedad <em>tautócrona</em>) no es el arco circular sino el cicloide, y llegó a construir relojes con mejillas cicloidales para forzar al péndulo a describir esa curva en vez de un arco de círculo. Es el mismo cicloide que resuelve el problema de la braquistócrona.</p>
</div>
</div>
<p><strong>La aproximación de ángulo pequeño.</strong> Cuando <img src="https://latex.codecogs.com/png.latex?%5Calpha"> es pequeño, <img src="https://latex.codecogs.com/png.latex?%5Csin%5Ctheta%5Capprox%5Ctheta"> (coinciden hasta la primera cifra decimal para <img src="https://latex.codecogs.com/png.latex?%5Ctheta"> menor a unos <img src="https://latex.codecogs.com/png.latex?0.4"> radianes), y la ecuación <img src="https://latex.codecogs.com/png.latex?a%5Cddot%5Ctheta=-g%5Csin%5Ctheta"> se aproxima por</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cddot%5Ctheta+%5Cfrac%7Bg%7D%7Ba%7D%5Ctheta=0"></p>
<p>que es la ecuación del oscilador armónico simple, con <img src="https://latex.codecogs.com/png.latex?%5Comega%5E2=g/a">. Su solución, sujeta a <img src="https://latex.codecogs.com/png.latex?%5Ctheta(0)=%5Calpha"> y <img src="https://latex.codecogs.com/png.latex?%5Cdot%5Ctheta(0)=0">, es <img src="https://latex.codecogs.com/png.latex?%5Ctheta=%5Calpha%5Ccos(%5Comega%20t)">, con periodo aproximado</p>
<p><img src="https://latex.codecogs.com/png.latex?T_0=2%5Cpi%5Csqrt%7B%5Cfrac%7Ba%7D%7Bg%7D%7D"></p>
<p>independiente de la amplitud <img src="https://latex.codecogs.com/png.latex?%5Calpha">: esta es la razón, después de todo, por la que decimos coloquialmente que el péndulo es isócrono, aunque estrictamente solo lo es en el límite de oscilaciones pequeñas.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://arturosanjuan.xyz/cursos/odes/reduccionorden/periodo.png" class="img-fluid figure-img"></p>
<figcaption>Razón entre el periodo exacto del péndulo y el periodo aproximado de ángulo pequeño, <img src="https://latex.codecogs.com/png.latex?T_0=2%5Cpi%5Csqrt%7Ba/g%7D">, en función de la amplitud <img src="https://latex.codecogs.com/png.latex?%5Calpha">. Para amplitudes menores a unos <img src="https://latex.codecogs.com/png.latex?20%C2%B0"> la aproximación es excelente; más allá, el error circular crece con rapidez.</figcaption>
</figure>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb2-2"></span>
<span id="cb2-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Comparamos el periodo exacto (integral eliptica, resuelta numericamente)</span></span>
<span id="cb2-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">   contra la aproximacion de angulo pequeno, para a=1, g=9.8 */</span></span>
<span id="cb2-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">periodo_exacto</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha_grados</span>) := <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">block</span>(</span>
<span id="cb2-6">  [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha_grados</span>*<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">%pi</span>/<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">180</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">integral</span>],</span>
<span id="cb2-7">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">integral</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">quad_qags</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>/<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sqrt</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cos</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">theta</span>)-<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cos</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha</span>)), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">theta</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha</span> - <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1e-9</span>)[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>],</span>
<span id="cb2-8">  <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sqrt</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>/(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">9.8</span>))*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">integral</span></span>
<span id="cb2-9">);</span>
<span id="cb2-10"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">T0</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">%pi</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sqrt</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>/<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">9.8</span>);</span>
<span id="cb2-11"></span>
<span id="cb2-12"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha_grados</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">20</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">45</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">90</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">150</span>] <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">do</span></span>
<span id="cb2-13">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"alpha="</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha_grados</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"grados:  T_exacto/T0 = "</span>,</span>
<span id="cb2-14">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">float</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">periodo_exacto</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha_grados</span>)/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">T0</span>));</span>
<span id="cb2-15"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* la razon crece de aproximadamente 1.0005 (alpha=5) a 1.76 (alpha=150):</span></span>
<span id="cb2-16"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">   el error circular es despreciable para oscilaciones pequenas, pero</span></span>
<span id="cb2-17"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">   muy real para amplitudes grandes */</span></span></code></pre></div></div>
</div>
</div>
</section>
<section id="el-resorte-y-la-ley-de-hooke" class="level3" data-number="3.2">
<h3 data-number="3.2" class="anchored" data-anchor-id="el-resorte-y-la-ley-de-hooke"><span class="header-section-number">3.2</span> El resorte y la ley de Hooke</h3>
<p>Consideremos ahora una masa <img src="https://latex.codecogs.com/png.latex?m"> atada a un resorte de constante <img src="https://latex.codecogs.com/png.latex?k">, sobre una superficie sin fricción, con <img src="https://latex.codecogs.com/png.latex?x"> la posición medida desde el equilibrio. La ley de Hooke dice que la fuerza restauradora es <img src="https://latex.codecogs.com/png.latex?F=-kx"> (el signo indica que se opone al desplazamiento). Por la segunda ley de Newton, <img src="https://latex.codecogs.com/png.latex?m%5Cddot%20x=-kx">, es decir</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cddot%20x+%5Cfrac%7Bk%7D%7Bm%7Dx=0"></p>
<p>Con <img src="https://latex.codecogs.com/png.latex?%5Comega%5E2=k/m">, esta es exactamente la misma ecuación que obtuvimos para el péndulo con ángulo pequeño. No es una coincidencia ni una simplificación forzada: los dos sistemas, uno gravitacional y otro elástico, comparten la misma estructura matemática porque en ambos la fuerza restauradora es, en la aproximación lineal, proporcional al desplazamiento y opuesta a él.</p>
</section>
<section id="resolviendo-yomega2y0-por-reducción-de-orden" class="level3" data-number="3.3">
<h3 data-number="3.3" class="anchored" data-anchor-id="resolviendo-yomega2y0-por-reducción-de-orden"><span class="header-section-number">3.3</span> Resolviendo <img src="https://latex.codecogs.com/png.latex?y''+%5Comega%5E2y=0"> por reducción de orden</h3>
<p>Escribamos la ecuación en la variable genérica <img src="https://latex.codecogs.com/png.latex?y"> (que representa a <img src="https://latex.codecogs.com/png.latex?%5Ctheta"> en el péndulo o a <img src="https://latex.codecogs.com/png.latex?x"> en el resorte). Con <img src="https://latex.codecogs.com/png.latex?p=y'"> y <img src="https://latex.codecogs.com/png.latex?y''=p%5C,dp/dy"> (segundo caso, <img src="https://latex.codecogs.com/png.latex?x"> ausente),</p>
<p><img src="https://latex.codecogs.com/png.latex?p%5Cfrac%7Bdp%7D%7Bdy%7D+%5Comega%5E2y=0%5Cquad%5CLongrightarrow%5Cquad%20p%5C,dp=-%5Comega%5E2y%5C,dy%5Cquad%5CLongrightarrow%5Cquad%20p%5E2+%5Comega%5E2y%5E2=C"></p>
<p>Esta constante <img src="https://latex.codecogs.com/png.latex?C"> es, salvo un factor, la energía total del sistema (cinética más potencial), conservada porque no hay fricción. Escribiendo <img src="https://latex.codecogs.com/png.latex?C=%5Comega%5E2A%5E2">, con <img src="https://latex.codecogs.com/png.latex?A"> la amplitud,</p>
<p><img src="https://latex.codecogs.com/png.latex?p=%5Cfrac%7Bdy%7D%7Bdx%7D=%5Cpm%5Comega%5Csqrt%7BA%5E2-y%5E2%7D%5Cquad%5CLongrightarrow%5Cquad%20%5Cfrac%7Bdy%7D%7B%5Csqrt%7BA%5E2-y%5E2%7D%7D=%5Cpm%5Comega%5C,dx"></p>
<p>Integrando, <img src="https://latex.codecogs.com/png.latex?%5Coperatorname%7Barcsen%7D(y/A)=%5Cpm%5Comega%20x+%5Cvarphi">, así que</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cboxed%7By=A%5Csin(%5Comega%20x+%5Cvarphi)%7D"></p>
<p>La familia de curvas <img src="https://latex.codecogs.com/png.latex?p%5E2+%5Comega%5E2y%5E2=C">, para distintos valores de <img src="https://latex.codecogs.com/png.latex?C">, es una familia de elipses en el plano <img src="https://latex.codecogs.com/png.latex?(y,p)">: cada una corresponde a una amplitud de oscilación distinta, y el sistema recorre siempre la misma elipse, nunca salta de una a otra, porque no hay fricción que disipe o añada energía.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://arturosanjuan.xyz/cursos/odes/reduccionorden/fases.png" class="img-fluid figure-img"></p>
<figcaption>Retrato de fase de <img src="https://latex.codecogs.com/png.latex?y''+%5Comega%5E2y=0"> tras la reducción de orden: las curvas de conservación <img src="https://latex.codecogs.com/png.latex?p%5E2+%5Comega%5E2y%5E2=C"> son elipses, cada una una amplitud de oscilación distinta. Las flechas marcan el sentido, horario, del recorrido.</figcaption>
</figure>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb3-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb3-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">p</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>);</span>
<span id="cb3-3"></span>
<span id="cb3-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Reduccion de orden, caso x ausente: y''+w^2*y=0 */</span></span>
<span id="cb3-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">edo</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">p</span>*<span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">p</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>) + <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">w</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span> = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>;</span>
<span id="cb3-6"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">conservacion</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">integrate</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">p</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">p</span>) + <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">w</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">integrate</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>));  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* (p^2+w^2*y^2)/2 = C */</span></span>
<span id="cb3-7"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">conservacion</span>;</span>
<span id="cb3-8"></span>
<span id="cb3-9"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Verificacion final: y=A*sin(w*x+phi) satisface y''+w^2*y=0 */</span></span>
<span id="cb3-10"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y_sol</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">A</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sin</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">w</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>+<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">phi</span>);</span>
<span id="cb3-11"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">chequeo</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y_sol</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>) + <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">w</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y_sol</span>);   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* debe dar 0 */</span></span>
<span id="cb3-12"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">chequeo</span>;</span></code></pre></div></div>
</div>
</div>
</section>
</section>
<section id="applet-dos-sistemas-la-misma-ecuación" class="level2" data-number="4">
<h2 data-number="4" class="anchored" data-anchor-id="applet-dos-sistemas-la-misma-ecuación"><span class="header-section-number">4</span> Applet: dos sistemas, la misma ecuación</h2>
<p>Para el péndulo, <img src="https://latex.codecogs.com/png.latex?%5Comega=%5Csqrt%7Bg/a%7D">; para el resorte, <img src="https://latex.codecogs.com/png.latex?%5Comega=%5Csqrt%7Bk/m%7D">. En ambos casos, soltando el sistema desde el reposo en su amplitud máxima, el movimiento es <img src="https://latex.codecogs.com/png.latex?y=A%5Ccos(%5Comega%20t)">: la misma proyección de un punto que gira uniformemente sobre un círculo de radio <img src="https://latex.codecogs.com/png.latex?A"> con velocidad angular <img src="https://latex.codecogs.com/png.latex?%5Comega">. El siguiente simulador muestra esa conexión: el punto que gira sobre el círculo, a la izquierda, tiene en cada instante la misma altura que la curva trigonométrica que traza a la derecha; abajo se dibuja, en ese mismo instante, el sistema físico real que se haya seleccionado.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Simulador: el círculo de referencia, el péndulo y el resorte">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Simulador: el círculo de referencia, el péndulo y el resorte
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:680px;margin:1em auto;font-family:sans-serif;">
  <div style="display:flex;gap:16px;align-items:center;margin-bottom:10px;flex-wrap:wrap;font-size:0.95em;">
    <strong>Sistema:</strong>
    <label><input type="radio" name="ro-modo" id="ro-modo-pendulo" checked=""> Péndulo</label>
    <label><input type="radio" name="ro-modo" id="ro-modo-resorte"> Resorte</label>
    <span style="margin-left:auto;color:#555;">Periodo actual: $T\approx$ <span id="ro-periodo">-</span> s</span>
  </div>

  <canvas id="ro-canvas-circulo" width="640" height="230" style="width:100%;height:auto;background:#fff;"></canvas>
  <canvas id="ro-canvas-fisico" width="640" height="190" style="width:100%;height:auto;background:#fff;margin-top:6px;"></canvas>

  <div id="ro-controles-pendulo" style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:12px;">
    <label>$\alpha$ (ángulo inicial): <span id="ro-alpha-val">15</span>°
      <input type="range" id="ro-alpha" min="2" max="40" step="1" value="15" style="width:100%;">
    </label>
    <label>$a$ (longitud): <span id="ro-a-val">1.00</span> m
      <input type="range" id="ro-a" min="0.3" max="2" step="0.05" value="1" style="width:100%;">
    </label>
    <label>$g$ (gravedad): <span id="ro-g-val">9.80</span> m/s²
      <input type="range" id="ro-g" min="1.6" max="25" step="0.1" value="9.8" style="width:100%;">
    </label>
  </div>

  <div id="ro-controles-resorte" style="display:none;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:12px;">
    <label>$k$ (constante del resorte): <span id="ro-k-val">10.0</span> N/m
      <input type="range" id="ro-k" min="1" max="40" step="0.5" value="10" style="width:100%;">
    </label>
    <label>$m$ (masa): <span id="ro-m-val">1.00</span> kg
      <input type="range" id="ro-m" min="0.2" max="5" step="0.1" value="1" style="width:100%;">
    </label>
    <label>$x_0$ (amplitud inicial): <span id="ro-x0-val">1.00</span>
      <input type="range" id="ro-x0" min="0.2" max="2" step="0.1" value="1" style="width:100%;">
    </label>
  </div>

  <p style="font-size:0.9em;color:#555;margin-top:10px;">
    Izquierda: un punto gira sobre un círculo de radio $A$ (la amplitud) con velocidad angular $\omega$; su altura sobre el centro es $A\cos(\omega t)$. Derecha: esa misma altura, graficada contra el tiempo, es la curva $y=A\cos(\omega t)$. Abajo: el sistema físico real, péndulo o resorte, en ese mismo instante. Al cambiar de sistema o mover un control, la animación reinicia desde la amplitud máxima, como si el sistema se soltara de nuevo desde el reposo. Nota: el dibujo del péndulo usa la aproximación de ángulo pequeño; para $\alpha$ grande el movimiento real ya no es exactamente sinusoidal, como se explica arriba con la integral elíptica.
  </p>
</div>
<script>
(function(){
  const canvasC = document.getElementById('ro-canvas-circulo');
  const ctxC = canvasC.getContext('2d');
  const canvasF = document.getElementById('ro-canvas-fisico');
  const ctxF = canvasF.getContext('2d');

  const modoPendulo = document.getElementById('ro-modo-pendulo');
  const modoResorte = document.getElementById('ro-modo-resorte');
  const ctrlPendulo = document.getElementById('ro-controles-pendulo');
  const ctrlResorte = document.getElementById('ro-controles-resorte');

  const alphaS = document.getElementById('ro-alpha');
  const aS = document.getElementById('ro-a');
  const gS = document.getElementById('ro-g');
  const kS = document.getElementById('ro-k');
  const mS = document.getElementById('ro-m');
  const x0S = document.getElementById('ro-x0');

  const alphaValEl = document.getElementById('ro-alpha-val');
  const aValEl = document.getElementById('ro-a-val');
  const gValEl = document.getElementById('ro-g-val');
  const kValEl = document.getElementById('ro-k-val');
  const mValEl = document.getElementById('ro-m-val');
  const x0ValEl = document.getElementById('ro-x0-val');
  const periodoEl = document.getElementById('ro-periodo');

  let t = 0;
  let lastTime = null;
  let historia = [];

  function actualizarModoUI(){
    if (modoPendulo.checked) {
      ctrlPendulo.style.display = 'grid';
      ctrlResorte.style.display = 'none';
    } else {
      ctrlPendulo.style.display = 'none';
      ctrlResorte.style.display = 'grid';
    }
    t = 0;
    historia = [];
  }

  modoPendulo.addEventListener('change', actualizarModoUI);
  modoResorte.addEventListener('change', actualizarModoUI);
  [alphaS, aS, gS, kS, mS, x0S].forEach((el) => {
    el.addEventListener('input', () => { t = 0; historia = []; });
  });

  function parametros(){
    if (modoPendulo.checked) {
      const alphaDeg = parseFloat(alphaS.value);
      const a = parseFloat(aS.value);
      const g = parseFloat(gS.value);
      alphaValEl.textContent = alphaDeg.toFixed(0);
      aValEl.textContent = a.toFixed(2);
      gValEl.textContent = g.toFixed(2);
      const omega = Math.sqrt(g / a);
      const alphaRad = alphaDeg * Math.PI / 180;
      return { omega: omega, amplitud: alphaRad, tipo: 'pendulo' };
    } else {
      const k = parseFloat(kS.value);
      const m = parseFloat(mS.value);
      const x0 = parseFloat(x0S.value);
      kValEl.textContent = k.toFixed(1);
      mValEl.textContent = m.toFixed(2);
      x0ValEl.textContent = x0.toFixed(2);
      const omega = Math.sqrt(k / m);
      return { omega: omega, amplitud: x0, tipo: 'resorte' };
    }
  }

  function dibujarCirculo(omega){
    const W = canvasC.width, H = canvasC.height;
    ctxC.clearRect(0, 0, W, H);

    const cx = 95, cy = H / 2, R = 68;
    ctxC.strokeStyle = '#999'; ctxC.lineWidth = 1;
    ctxC.beginPath(); ctxC.arc(cx, cy, R, 0, 2 * Math.PI); ctxC.stroke();
    ctxC.beginPath(); ctxC.moveTo(cx - R - 10, cy); ctxC.lineTo(cx + R + 10, cy); ctxC.stroke();
    ctxC.beginPath(); ctxC.moveTo(cx, cy - R - 10); ctxC.lineTo(cx, cy + R + 10); ctxC.stroke();

    const phi = omega * t;
    const px = cx + R * Math.sin(phi);
    const py = cy - R * Math.cos(phi);
    const y_norm = Math.cos(phi);

    const plotX0 = cx + R + 45;
    const plotW = W - plotX0 - 15;
    const T = 2 * Math.PI / omega;
    const ventana = 2 * T;

    ctxC.strokeStyle = '#999'; ctxC.lineWidth = 1;
    ctxC.beginPath(); ctxC.moveTo(plotX0, cy - R - 10); ctxC.lineTo(plotX0, cy + R + 10); ctxC.stroke();
    ctxC.beginPath(); ctxC.moveTo(plotX0, cy); ctxC.lineTo(plotX0 + plotW, cy); ctxC.stroke();

    historia.push({ tt: t, y: y_norm });
    while (historia.length && historia[0].tt < t - ventana) historia.shift();

    ctxC.strokeStyle = '#1f77b4'; ctxC.lineWidth = 2.2;
    ctxC.beginPath();
    historia.forEach((p, i) => {
      const px2 = plotX0 + ((p.tt - (t - ventana)) / ventana) * plotW;
      const py2 = cy - p.y * R;
      if (i === 0) ctxC.moveTo(px2, py2); else ctxC.lineTo(px2, py2);
    });
    ctxC.stroke();

    const puntaX = plotX0 + plotW;
    ctxC.setLineDash([4, 4]);
    ctxC.strokeStyle = '#aaa';
    ctxC.beginPath(); ctxC.moveTo(px, py); ctxC.lineTo(puntaX, py); ctxC.stroke();
    ctxC.setLineDash([]);

    ctxC.strokeStyle = '#d62728'; ctxC.lineWidth = 1.5;
    ctxC.beginPath(); ctxC.moveTo(cx, cy); ctxC.lineTo(px, py); ctxC.stroke();

    ctxC.fillStyle = '#d62728';
    ctxC.beginPath(); ctxC.arc(px, py, 5, 0, 2 * Math.PI); ctxC.fill();
    ctxC.beginPath(); ctxC.arc(puntaX, py, 5, 0, 2 * Math.PI); ctxC.fill();

    ctxC.fillStyle = '#333'; ctxC.font = '13px sans-serif';
    ctxC.fillText('y = A cos(ωt)', plotX0 + plotW / 2 - 48, cy - R - 14);
    ctxC.fillText('t', plotX0 + plotW - 8, cy + R + 24);

    if (periodoEl) periodoEl.textContent = T.toFixed(2);
  }

  function dibujarFisico(omega, amplitud, tipo){
    const W = canvasF.width, H = canvasF.height;
    ctxF.clearRect(0, 0, W, H);
    const cx = W / 2;

    function techo(x0, y0){
      ctxF.strokeStyle = '#333'; ctxF.lineWidth = 2;
      ctxF.beginPath(); ctxF.moveTo(x0 - 45, y0); ctxF.lineTo(x0 + 45, y0); ctxF.stroke();
      for (let i = -40; i <= 40; i += 10) {
        ctxF.beginPath(); ctxF.moveTo(x0 + i, y0); ctxF.lineTo(x0 + i - 8, y0 - 10); ctxF.stroke();
      }
    }

    if (tipo === 'pendulo') {
      const theta = amplitud * Math.cos(omega * t);
      const pivotX = cx, pivotY = 18;
      const L = 140;
      const bobX = pivotX + L * Math.sin(theta);
      const bobY = pivotY + L * Math.cos(theta);

      techo(pivotX, pivotY);
      ctxF.setLineDash([4, 4]); ctxF.strokeStyle = '#ccc';
      ctxF.beginPath(); ctxF.moveTo(pivotX, pivotY); ctxF.lineTo(pivotX, pivotY + L); ctxF.stroke();
      ctxF.setLineDash([]);

      ctxF.strokeStyle = '#555'; ctxF.lineWidth = 2;
      ctxF.beginPath(); ctxF.moveTo(pivotX, pivotY); ctxF.lineTo(bobX, bobY); ctxF.stroke();

      ctxF.fillStyle = '#333'; ctxF.beginPath(); ctxF.arc(pivotX, pivotY, 3, 0, 2 * Math.PI); ctxF.fill();
      ctxF.fillStyle = '#d62728'; ctxF.beginPath(); ctxF.arc(bobX, bobY, 13, 0, 2 * Math.PI); ctxF.fill();

      ctxF.fillStyle = '#333'; ctxF.font = '13px sans-serif';
      ctxF.fillText('θ(t) = α·cos(ωt)', 10, H - 12);
    } else {
      const x = amplitud * Math.cos(omega * t);
      const anchorX = cx, anchorY = 15;
      const L0 = 55;
      const escala = 35;
      const Lact = Math.max(20, L0 + x * escala);
      const massY = anchorY + Lact;

      techo(anchorX, anchorY);
      ctxF.setLineDash([4, 4]); ctxF.strokeStyle = '#ccc';
      ctxF.beginPath(); ctxF.moveTo(anchorX - 55, anchorY + L0); ctxF.lineTo(anchorX + 55, anchorY + L0); ctxF.stroke();
      ctxF.setLineDash([]);

      const nseg = 10;
      ctxF.strokeStyle = '#555'; ctxF.lineWidth = 2;
      ctxF.beginPath();
      ctxF.moveTo(anchorX, anchorY);
      for (let i = 1; i < nseg; i++) {
        const yy = anchorY + (Lact * i) / nseg;
        const xx = anchorX + (i % 2 === 0 ? 0 : (i % 4 === 1 ? 18 : -18));
        ctxF.lineTo(xx, yy);
      }
      ctxF.lineTo(anchorX, massY);
      ctxF.stroke();

      ctxF.fillStyle = '#d62728';
      ctxF.fillRect(anchorX - 22, massY, 44, 32);

      ctxF.fillStyle = '#333'; ctxF.font = '13px sans-serif';
      ctxF.fillText('x(t) = x₀·cos(ωt)', 10, H - 12);
    }
  }

  function loop(timestamp){
    if (lastTime === null) lastTime = timestamp;
    const dt = Math.min((timestamp - lastTime) / 1000, 0.05);
    lastTime = timestamp;
    t += dt;

    const p = parametros();
    dibujarCirculo(p.omega);
    dibujarFisico(p.omega, p.amplitud, p.tipo);

    requestAnimationFrame(loop);
  }

  actualizarModoUI();
  requestAnimationFrame(loop);
})();
</script>
</div>
</div>
<div class="callout callout-style-default callout-important callout-titled" title="Tarea">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Importante</span>Tarea
</div>
</div>
<div class="callout-body-container callout-body">
<p>Haga los ejercicios de la sección 11 (Reducción de Orden, problemas 1 y 3, páginas 85 a 88) y de la sección 12 (La Cadena Colgante, problemas 1 y 3, páginas 88 a 95) del Simmons, comprobando cada resultado con Maxima. Note que el problema 3 de la sección 12 es precisamente el caso de un puente colgante (un cable de peso despreciable que soporta una carga horizontal constante, en vez de su propio peso): compare la forma que obtiene con la catenaria de esta sección y explique, en un par de líneas, por qué son curvas distintas.</p>
</div>
</div>


</section>

 ]]></description>
  <guid>https://arturosanjuan.xyz/cursos/odes/reduccionorden/</guid>
  <pubDate>Tue, 15 Sep 2026 05:00:00 GMT</pubDate>
  <media:content url="https://arturosanjuan.xyz/cursos/odes/reduccionorden/catenaria.png" medium="image" type="image/png" height="95" width="144"/>
</item>
<item>
  <title>Ecuaciones Homogéneas y Exactas</title>
  <dc:creator>Arturo Sanjuán</dc:creator>
  <link>https://arturosanjuan.xyz/cursos/odes/homoexactas/</link>
  <description><![CDATA[ 




<section id="dos-maneras-nuevas-de-reconocer-una-ecuación" class="level2" data-number="1">
<h2 data-number="1" class="anchored" data-anchor-id="dos-maneras-nuevas-de-reconocer-una-ecuación"><span class="header-section-number">1</span> Dos maneras nuevas de reconocer una ecuación</h2>
<p>Hasta ahora hemos resuelto ecuaciones separables y las hemos usado para encontrar familias ortogonales. Pero la mayoría de las ecuaciones <img src="https://latex.codecogs.com/png.latex?y'=f(x,y)"> que uno escribe al azar no son separables: <img src="https://latex.codecogs.com/png.latex?f(x,y)"> simplemente no se deja factorizar como un producto <img src="https://latex.codecogs.com/png.latex?g(x)h(y)">. Esta sección presenta dos maneras distintas en que una ecuación así puede, sin embargo, resolverse por completo: porque tiene una simetría de escala escondida (ecuaciones homogéneas), o porque en realidad es la diferencial total de una función (ecuaciones exactas). En ambos casos el punto no es memorizar una fórmula, sino aprender a reconocer una estructura.</p>
</section>
<section id="ecuaciones-homogéneas" class="level2" data-number="2">
<h2 data-number="2" class="anchored" data-anchor-id="ecuaciones-homogéneas"><span class="header-section-number">2</span> Ecuaciones homogéneas</h2>
<section id="de-las-trayectorias-ortogonales-a-un-ángulo-cualquiera" class="level3" data-number="2.1">
<h3 data-number="2.1" class="anchored" data-anchor-id="de-las-trayectorias-ortogonales-a-un-ángulo-cualquiera"><span class="header-section-number">2.1</span> De las trayectorias ortogonales a un ángulo cualquiera</h3>
<p>En la sección de Familias Ortogonales encontramos la familia perpendicular a <img src="https://latex.codecogs.com/png.latex?y'=f(x,y)"> reemplazando la pendiente por su recíproco negativo: <img src="https://latex.codecogs.com/png.latex?y'=-1/f(x,y)">. Ese es apenas el caso particular en que el ángulo de cruce es de <img src="https://latex.codecogs.com/png.latex?90%C2%B0">. ¿Qué pasa si en cambio queremos que una segunda familia cruce a la primera en un ángulo cualquiera <img src="https://latex.codecogs.com/png.latex?%5Calpha">, el mismo en todo punto de contacto?</p>
<p>Si en el punto <img src="https://latex.codecogs.com/png.latex?P=(x,y)"> la primera curva tiene pendiente <img src="https://latex.codecogs.com/png.latex?f(x,y)=%5Ctan%5Cvarphi">, donde <img src="https://latex.codecogs.com/png.latex?%5Cvarphi"> es el ángulo que forma su tangente con el eje <img src="https://latex.codecogs.com/png.latex?x">, entonces la segunda curva, al cruzarla con ángulo <img src="https://latex.codecogs.com/png.latex?%5Calpha">, tiene una tangente que forma el ángulo <img src="https://latex.codecogs.com/png.latex?%5Cvarphi+%5Calpha"> con el eje <img src="https://latex.codecogs.com/png.latex?x">. Por la identidad de la tangente de una suma,</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Ctan(%5Cvarphi+%5Calpha)=%5Cfrac%7B%5Ctan%5Cvarphi+%5Ctan%5Calpha%7D%7B1-%5Ctan%5Cvarphi%5Ctan%5Calpha%7D"></p>
<p>así que la segunda familia satisface esta ecuación (es el problema 10 de la sección 7 del Simmons):</p>
<p><img src="https://latex.codecogs.com/png.latex?y'=%5Cfrac%7Bf(x,y)+%5Ctan%5Calpha%7D%7B1-f(x,y)%5Ctan%5Calpha%7D"></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Consistencia con el caso ortogonal">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Consistencia con el caso ortogonal
</div>
</div>
<div class="callout-body-container callout-body">
<p>Si <img src="https://latex.codecogs.com/png.latex?%5Calpha%5Cto%2090%C2%B0">, entonces <img src="https://latex.codecogs.com/png.latex?%5Ctan%5Calpha%5Cto%5Cinfty">. Dividiendo numerador y denominador entre <img src="https://latex.codecogs.com/png.latex?%5Ctan%5Calpha"> y tomando el límite, el término <img src="https://latex.codecogs.com/png.latex?f(x,y)/%5Ctan%5Calpha"> se anula y queda <img src="https://latex.codecogs.com/png.latex?y'%5Cto%20-1/f(x,y)">. La fórmula de trayectorias ortogonales es, entonces, apenas el caso límite <img src="https://latex.codecogs.com/png.latex?%5Calpha=90%C2%B0"> de esta fórmula más general.</p>
</div>
</div>
</section>
<section id="el-ejercicio-cruzar-los-círculos-concéntricos-en-45" class="level3" data-number="2.2">
<h3 data-number="2.2" class="anchored" data-anchor-id="el-ejercicio-cruzar-los-círculos-concéntricos-en-45"><span class="header-section-number">2.2</span> El ejercicio: cruzar los círculos concéntricos en <img src="https://latex.codecogs.com/png.latex?45%C2%B0"></h3>
<p>Apliquemos esto a la familia de círculos <img src="https://latex.codecogs.com/png.latex?x%5E2+y%5E2=c"> (problema 11, literal b, de la misma sección). Derivando implícitamente, <img src="https://latex.codecogs.com/png.latex?2x+2yy'=0">, así que la familia original satisface</p>
<p><img src="https://latex.codecogs.com/png.latex?y'=-%5Cfrac%7Bx%7D%7By%7D=:f(x,y)"></p>
<p>Queremos la familia que la cruza en <img src="https://latex.codecogs.com/png.latex?%5Calpha=%5Cpi/4">, es decir, con <img src="https://latex.codecogs.com/png.latex?%5Ctan%5Calpha=1">. Sustituyendo en la fórmula general y multiplicando arriba y abajo por <img src="https://latex.codecogs.com/png.latex?y">:</p>
<p><img src="https://latex.codecogs.com/png.latex?y'=%5Cfrac%7B-%5Cdfrac%7Bx%7D%7By%7D+1%7D%7B1-%5Cleft(-%5Cdfrac%7Bx%7D%7By%7D%5Cright)%7D=%5Cfrac%7By-x%7D%7By+x%7D"></p>
<p>Esta ecuación no es separable: no existe manera de escribir <img src="https://latex.codecogs.com/png.latex?(y-x)/(y+x)"> como un producto <img src="https://latex.codecogs.com/png.latex?g(x)h(y)">. Pero tiene otra propiedad notable. Si reemplazamos <img src="https://latex.codecogs.com/png.latex?x"> por <img src="https://latex.codecogs.com/png.latex?tx"> y <img src="https://latex.codecogs.com/png.latex?y"> por <img src="https://latex.codecogs.com/png.latex?ty">, para cualquier <img src="https://latex.codecogs.com/png.latex?t%5Cneq%200">, el lado derecho no cambia:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bty-tx%7D%7Bty+tx%7D=%5Cfrac%7Bt(y-x)%7D%7Bt(y+x)%7D=%5Cfrac%7By-x%7D%7By+x%7D"></p>
<p>porque el factor <img src="https://latex.codecogs.com/png.latex?t"> se cancela. Esta invariancia bajo escalamiento (estirar o encoger el plano entero desde el origen no altera la pendiente) es precisamente lo que se llama una ecuación homogénea.</p>
</section>
<section id="ecuaciones-homogéneas-la-definición-general" class="level3" data-number="2.3">
<h3 data-number="2.3" class="anchored" data-anchor-id="ecuaciones-homogéneas-la-definición-general"><span class="header-section-number">2.3</span> Ecuaciones homogéneas: la definición general</h3>
<p>Una función <img src="https://latex.codecogs.com/png.latex?f(x,y)"> es homogénea de grado <img src="https://latex.codecogs.com/png.latex?n"> si <img src="https://latex.codecogs.com/png.latex?f(tx,ty)=t%5En%20f(x,y)"> para todo <img src="https://latex.codecogs.com/png.latex?t">. La ecuación <img src="https://latex.codecogs.com/png.latex?M(x,y)%5C,dx+N(x,y)%5C,dy=0"> se llama homogénea si <img src="https://latex.codecogs.com/png.latex?M"> y <img src="https://latex.codecogs.com/png.latex?N"> son homogéneas del mismo grado; en ese caso <img src="https://latex.codecogs.com/png.latex?y'=-M/N"> resulta ser homogénea de grado <img src="https://latex.codecogs.com/png.latex?0">, es decir, depende solo del cociente <img src="https://latex.codecogs.com/png.latex?y/x"> (basta dividir arriba y abajo entre <img src="https://latex.codecogs.com/png.latex?x%5En"> para verlo).</p>
<p>Geométricamente esto significa algo muy concreto: la pendiente de la ecuación es la misma en todos los puntos de un mismo rayo que sale del origen. Si <img src="https://latex.codecogs.com/png.latex?(x_0,y_0)"> está sobre una curva solución, entonces <img src="https://latex.codecogs.com/png.latex?(kx_0,ky_0)"> da exactamente la misma pendiente, para cualquier <img src="https://latex.codecogs.com/png.latex?k%3E0">. Por eso, si escalamos una curva solución completa desde el origen, obtenemos otra curva solución: toda la familia de soluciones es invariante bajo escalamiento, la misma simetría que ya vimos en la ecuación de arriba.</p>
<p>Esa invariancia sugiere el cambio de variable natural: en vez de <img src="https://latex.codecogs.com/png.latex?(x,y)">, usar <img src="https://latex.codecogs.com/png.latex?(x,z)"> con <img src="https://latex.codecogs.com/png.latex?z=y/x">, porque <img src="https://latex.codecogs.com/png.latex?z"> permanece constante a lo largo de cada rayo. Escribiendo <img src="https://latex.codecogs.com/png.latex?y=zx">,</p>
<p><img src="https://latex.codecogs.com/png.latex?y'=z+x%5Cfrac%7Bdz%7D%7Bdx%7D"></p>
<p>y como el lado derecho de la ecuación original satisface <img src="https://latex.codecogs.com/png.latex?F(x,y)=F(1,z)"> (por ser homogénea de grado <img src="https://latex.codecogs.com/png.latex?0">), la ecuación se convierte en</p>
<p><img src="https://latex.codecogs.com/png.latex?z+x%5Cfrac%7Bdz%7D%7Bdx%7D=F(1,z)%5Cqquad%5CLongrightarrow%5Cqquad%20x%5Cfrac%7Bdz%7D%7Bdx%7D=F(1,z)-z"></p>
<p>que ya es separable en <img src="https://latex.codecogs.com/png.latex?z"> y <img src="https://latex.codecogs.com/png.latex?x">. Se resuelve por separación de variables y, al final, se recupera <img src="https://latex.codecogs.com/png.latex?y"> mediante <img src="https://latex.codecogs.com/png.latex?y=zx">.</p>
</section>
<section id="resolviendo-el-ejercicio" class="level3" data-number="2.4">
<h3 data-number="2.4" class="anchored" data-anchor-id="resolviendo-el-ejercicio"><span class="header-section-number">2.4</span> Resolviendo el ejercicio</h3>
<p>Para nuestra ecuación, <img src="https://latex.codecogs.com/png.latex?F(x,y)=(y-x)/(y+x)">, así que <img src="https://latex.codecogs.com/png.latex?F(1,z)=(z-1)/(z+1)">, y</p>
<p><img src="https://latex.codecogs.com/png.latex?x%5Cfrac%7Bdz%7D%7Bdx%7D=%5Cfrac%7Bz-1%7D%7Bz+1%7D-z=%5Cfrac%7Bz-1-z(z+1)%7D%7Bz+1%7D=-%5Cfrac%7Bz%5E2+1%7D%7Bz+1%7D"></p>
<p>Separando variables,</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bz+1%7D%7Bz%5E2+1%7D%5C,dz=-%5Cfrac%7Bdx%7D%7Bx%7D"></p>
<p>El lado izquierdo se parte en dos integrales conocidas:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cint%5Cfrac%7Bz%7D%7Bz%5E2+1%7D%5C,dz+%5Cint%5Cfrac%7B1%7D%7Bz%5E2+1%7D%5C,dz=%5Cfrac12%5Cln(z%5E2+1)+%5Carctan%20z"></p>
<p>así que</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac12%5Cln(z%5E2+1)+%5Carctan%20z=-%5Cln%7Cx%7C+C%20%5Cquad%5CLongrightarrow%5Cquad%20%5Cln%5C!%5Cleft(%7Cx%7C%5Csqrt%7Bz%5E2+1%7D%5Cright)+%5Carctan%20z=C"></p>
<p>Ahora viene el paso bonito: <img src="https://latex.codecogs.com/png.latex?%7Cx%7C%5Csqrt%7Bz%5E2+1%7D=%7Cx%7C%5Csqrt%7By%5E2/x%5E2+1%7D=%5Csqrt%7Bx%5E2+y%5E2%7D">, que es justamente <img src="https://latex.codecogs.com/png.latex?r"> en coordenadas polares, y <img src="https://latex.codecogs.com/png.latex?%5Carctan%20z=%5Carctan(y/x)=%5Ctheta">. La solución se convierte, en polares, en</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cln%20r+%5Ctheta=C%5Cqquad%5CLongrightarrow%5Cqquad%20%5Cboxed%7Br=Ae%5E%7B-%5Ctheta%7D%7D"></p>
<p>Esto es una <strong>espiral logarítmica</strong> (también llamada espiral equiangular). A diferencia de una espiral de Arquímedes, donde <img src="https://latex.codecogs.com/png.latex?r"> crece de forma lineal con <img src="https://latex.codecogs.com/png.latex?%5Ctheta">, aquí <img src="https://latex.codecogs.com/png.latex?r"> decrece de forma exponencial. La familia de círculos y la familia de espirales se cruzan siempre en el mismo ángulo de <img src="https://latex.codecogs.com/png.latex?45%C2%B0">, sin importar en qué punto se toquen: esa es, después de todo, la propiedad que usamos para construir la ecuación.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Una curiosidad histórica: la spira mirabilis de Bernoulli">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Una curiosidad histórica: la spira mirabilis de Bernoulli
</div>
</div>
<div class="callout-body-container callout-body">
<p>Jakob Bernoulli quedó fascinado con esta curva porque es autosemejante: al girarla o escalarla, se obtiene la misma espiral. La llamó <em>spira mirabilis</em> (espiral maravillosa) y pidió que se grabara en su lápida junto con la frase <em>Eadem mutata resurgo</em> (aunque cambiada, resurjo igual). Según cuenta la anécdota, el escultor no distinguió entre una espiral logarítmica y una de Arquímedes, y talló la curva equivocada; la lápida de Bernoulli, en la catedral de Basilea, todavía hoy muestra una espiral distinta de la que él pidió.</p>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Applet: la espiral que cruza los círculos en ángulo constante">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Applet: la espiral que cruza los círculos en ángulo constante
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:560px;margin:1em auto;font-family:sans-serif;">
  <canvas id="he-espiral-canvas" width="520" height="420" style="width:100%;height:auto;background:#fff;"></canvas>
  <label>Ángulo $\alpha$: <span id="he-alpha-val">45</span>°
    <input type="range" id="he-alpha" min="-85" max="85" step="1" value="45" style="width:100%;">
  </label>
  <p style="font-size:0.9em;color:#555;margin-top:8px;">
    Círculos concéntricos (azul, familia original) y la espiral logarítmica que los cruza en ángulo $\alpha$ constante (rojo). El punto marca el cruce sobre el círculo de referencia; las líneas cortas son las dos tangentes, y el sector verde muestra el ángulo $\alpha$ entre ellas. En $\alpha=0°$ la espiral coincide con el círculo ($\tan\alpha=0$); entre más grande $|\alpha|$, más rápido se enrosca la espiral hacia el origen.
  </p>
</div>
<script>
(function(){
  const canvas = document.getElementById('he-espiral-canvas');
  const ctx = canvas.getContext('2d');
  const alphaSlider = document.getElementById('he-alpha');
  const alphaValEl = document.getElementById('he-alpha-val');
  const W = canvas.width, H = canvas.height, scale = 35;
  const R0 = 3;
  function toPx(x,y){ return [W/2 + x*scale, H/2 - y*scale]; }

  function drawAngleArc(cx, cy, angle1, angle2, radius, color){
    let start = angle1, end = angle2;
    let diff = end - start;
    while (diff <= -Math.PI) diff += 2*Math.PI;
    while (diff > Math.PI) diff -= 2*Math.PI;
    if (diff < 0) { const t = start; start = end; end = t; diff = -diff; }
    ctx.beginPath();
    ctx.moveTo(cx, cy);
    ctx.arc(cx, cy, radius, start, start + diff);
    ctx.closePath();
    ctx.fillStyle = color;
    ctx.fill();
  }

  function draw(){
    const alphaDeg = parseFloat(alphaSlider.value);
    alphaValEl.textContent = alphaDeg.toFixed(0);
    const alpha = alphaDeg*Math.PI/180;
    const m = Math.tan(alpha);

    ctx.clearRect(0,0,W,H);

    ctx.strokeStyle = '#ccc'; ctx.lineWidth = 1;
    ctx.beginPath(); ctx.moveTo(0,H/2); ctx.lineTo(W,H/2);
    ctx.moveTo(W/2,0); ctx.lineTo(W/2,H); ctx.stroke();

    ctx.strokeStyle = '#bbb'; ctx.lineWidth = 1;
    for (let rr = 1; rr <= 6; rr++) {
      ctx.beginPath(); ctx.arc(W/2, H/2, rr*scale, 0, 2*Math.PI); ctx.stroke();
    }
    ctx.strokeStyle = '#1f77b4'; ctx.lineWidth = 2.5;
    ctx.beginPath(); ctx.arc(W/2, H/2, R0*scale, 0, 2*Math.PI); ctx.stroke();

    ctx.strokeStyle = '#d62728'; ctx.lineWidth = 2.5;
    ctx.beginPath();
    let drawing = false;
    const RMIN = 0.05, RMAX = 7.2;
    for (let theta = -6*Math.PI; theta <= 6*Math.PI; theta += 0.01) {
      const r = R0*Math.exp(-m*theta);
      if (r >= RMIN && r <= RMAX) {
        const [px,py] = toPx(r*Math.cos(theta), r*Math.sin(theta));
        if (!drawing) { ctx.moveTo(px,py); drawing = true; }
        else ctx.lineTo(px,py);
      } else {
        drawing = false;
      }
    }
    ctx.stroke();

    const [ppx,ppy] = toPx(R0, 0);
    ctx.fillStyle = '#222';
    ctx.beginPath(); ctx.arc(ppx,ppy,4.5,0,2*Math.PI); ctx.fill();

    const s = 0.9;
    const [c1x,c1y] = toPx(R0, s);
    const [c2x,c2y] = toPx(R0, -s);
    const normS = Math.sqrt(m*m+1);
    const [s1x,s1y] = toPx(R0 + (-m/normS)*s, (1/normS)*s);
    const [s2x,s2y] = toPx(R0 - (-m/normS)*s, -(1/normS)*s);

    ctx.strokeStyle = '#1f77b4'; ctx.lineWidth = 1.5;
    ctx.beginPath(); ctx.moveTo(c1x,c1y); ctx.lineTo(c2x,c2y); ctx.stroke();
    ctx.strokeStyle = '#d62728'; ctx.lineWidth = 1.5;
    ctx.beginPath(); ctx.moveTo(s1x,s1y); ctx.lineTo(s2x,s2y); ctx.stroke();

    if (Math.abs(alphaDeg) > 0.5) {
      const angCircle = Math.atan2(-1, 0);
      const angSpiral = Math.atan2(-1, -m);
      drawAngleArc(ppx, ppy, angCircle, angSpiral, 20, 'rgba(44,160,44,0.45)');
    }

    ctx.fillStyle = '#000'; ctx.font = '13px sans-serif';
    ctx.fillText('α = ' + alphaDeg.toFixed(0) + '°,  tan(α) = ' + m.toFixed(3), 10, 18);
  }

  alphaSlider.addEventListener('input', draw);
  draw();
})();
</script>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb1-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb1-3"></span>
<span id="cb1-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Formula general (Simmons, seccion 7, problema 10): si la familia</span></span>
<span id="cb1-5"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">   original satisface y'=f(x,y), la familia que la cruza en un angulo</span></span>
<span id="cb1-6"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">   alpha en cada punto satisface esta ecuacion */</span></span>
<span id="cb1-7"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">f</span>: -<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>;                       <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* familia original x^2+y^2=c da y'=-x/y */</span></span>
<span id="cb1-8"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">nueva_pendiente</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>((<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">f</span>+<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tan</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha</span>))/(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>-<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">f</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tan</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha</span>)));</span>
<span id="cb1-9"></span>
<span id="cb1-10"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Caso del problema 11, literal b: angulo alpha=pi/4, tan(alpha)=1 */</span></span>
<span id="cb1-11"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">nueva_pendiente_45</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tan</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha</span>)=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">nueva_pendiente</span>);</span>
<span id="cb1-12"></span>
<span id="cb1-13"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Sustitucion y=z*x para resolver la ecuacion homogenea */</span></span>
<span id="cb1-14"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">z</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb1-15"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">lado_derecho</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>=<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">z</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">nueva_pendiente_45</span>));</span>
<span id="cb1-16"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xdzdx</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">lado_derecho</span> - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">z</span>);      <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* x*dz/dx = -(z^2+1)/(z+1) */</span></span>
<span id="cb1-17"></span>
<span id="cb1-18"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Separando e integrando */</span></span>
<span id="cb1-19"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">integral_z</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">integrate</span>((<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">z</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">+1</span>)/(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">z</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2+1</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">z</span>);</span>
<span id="cb1-20"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol_implicita</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">integral_z</span> = -<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">log</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>) + <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">c1</span>;</span>
<span id="cb1-21"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol_xy</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">z</span>=<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol_implicita</span>);</span>
<span id="cb1-22"></span>
<span id="cb1-23"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Pasando a polares para reconocer la espiral */</span></span>
<span id="cb1-24"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol_polar</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">trigsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>([<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>=<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">r</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cos</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">theta</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>=<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">r</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sin</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">theta</span>)], <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol_xy</span>)));</span>
<span id="cb1-25"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* da: theta + log(r) = c1, es decir r = A*exp(-theta) */</span></span></code></pre></div></div>
</div>
</div>
</section>
</section>
<section id="ecuaciones-exactas" class="level2" data-number="3">
<h2 data-number="3" class="anchored" data-anchor-id="ecuaciones-exactas"><span class="header-section-number">3</span> Ecuaciones exactas</h2>
<section id="motivación-física-campos-conservativos-y-curvas-equipotenciales" class="level3" data-number="3.1">
<h3 data-number="3.1" class="anchored" data-anchor-id="motivación-física-campos-conservativos-y-curvas-equipotenciales"><span class="header-section-number">3.1</span> Motivación física: campos conservativos y curvas equipotenciales</h3>
<p>Consideremos ahora una fuerza central atractiva, como la gravitacional o la eléctrica de Coulomb, cuya magnitud decae con el cuadrado de la distancia al origen. Si <img src="https://latex.codecogs.com/png.latex?%5Cvec%20r=(x,y)"> y <img src="https://latex.codecogs.com/png.latex?r=%5Csqrt%7Bx%5E2+y%5E2%7D">, el campo de fuerzas es</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cvec%20F(x,y)=-%5Cfrac%7Bk%7D%7Br%5E2%7D%5Chat%20r=-%5Cfrac%7Bk%7D%7Br%5E3%7D(x,y)=(M,N)"></p>
<p>con <img src="https://latex.codecogs.com/png.latex?k%3E0"> (el signo negativo indica que la fuerza apunta hacia el origen: es atractiva) y <img src="https://latex.codecogs.com/png.latex?%5Chat(r)"> el vector unitario en la dirección de <img src="https://latex.codecogs.com/png.latex?%5Cvec%20r">. El trabajo realizado al mover una partícula una distancia infinitesimal <img src="https://latex.codecogs.com/png.latex?d%5Cvec%20s=%7C(dx,dy)%7C"> es</p>
<p><img src="https://latex.codecogs.com/png.latex?dW=%5Cvec%20F%5Ccdot%20d%5Cvec%20s=M%5C,dx+N%5C,dy"></p>
<p>Como el campo es conservativo, ese trabajo no depende del camino recorrido, solo de los puntos inicial y final: existe una función potencial <img src="https://latex.codecogs.com/png.latex?%5Cphi(x,y)"> tal que <img src="https://latex.codecogs.com/png.latex?dW=d%5Cphi">. En particular, si nos movemos a lo largo de una curva de potencial constante (una equipotencial), no se realiza trabajo neto: <img src="https://latex.codecogs.com/png.latex?d%5Cphi=0"> sobre esa curva, es decir,</p>
<p><img src="https://latex.codecogs.com/png.latex?M%5C,dx+N%5C,dy=0"></p>
<p>Esta es la ecuación diferencial de las curvas equipotenciales. No es separable ni homogénea (compruébelo): es de un tercer tipo.</p>
</section>
<section id="ecuaciones-exactas-la-definición-general" class="level3" data-number="3.2">
<h3 data-number="3.2" class="anchored" data-anchor-id="ecuaciones-exactas-la-definición-general"><span class="header-section-number">3.2</span> Ecuaciones exactas: la definición general</h3>
<p>Si <img src="https://latex.codecogs.com/png.latex?M%5C,dx+N%5C,dy"> resulta ser, como arriba, la diferencial total de alguna función <img src="https://latex.codecogs.com/png.latex?%5Cphi(x,y)">,</p>
<p><img src="https://latex.codecogs.com/png.latex?d%5Cphi=%5Cfrac%7B%5Cpartial%20%5Cphi%7D%7B%5Cpartial%20x%7D%5C,dx+%5Cfrac%7B%5Cpartial%20%5Cphi%7D%7B%5Cpartial%20y%7D%5C,dy=M%5C,dx+N%5C,dy"></p>
<p>entonces <img src="https://latex.codecogs.com/png.latex?M%5C,dx+N%5C,dy=0"> se llama una ecuación exacta, y su solución es simplemente <img src="https://latex.codecogs.com/png.latex?%5Cphi(x,y)=C">. El problema práctico es reconocer cuándo ocurre esto sin tener que adivinar <img src="https://latex.codecogs.com/png.latex?%5Cphi"> de entrada. La respuesta usa un hecho de cálculo: si <img src="https://latex.codecogs.com/png.latex?%5Cphi"> tiene derivadas parciales mixtas continuas, estas son iguales sin importar el orden en que se tomen, <img src="https://latex.codecogs.com/png.latex?%5Cphi_%7Bxy%7D=%5Cphi_%7Byx%7D">. Como <img src="https://latex.codecogs.com/png.latex?%5Cphi_x=M"> y <img src="https://latex.codecogs.com/png.latex?%5Cphi_y=N">, se sigue que</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B%5Cpartial%20M%7D%7B%5Cpartial%20y%7D=%5Cphi_%7Bxy%7D=%5Cphi_%7Byx%7D=%5Cfrac%7B%5Cpartial%20N%7D%7B%5Cpartial%20x%7D"></p>
<p>Este criterio, <img src="https://latex.codecogs.com/png.latex?%5Cpartial%20M/%5Cpartial%20y=%5Cpartial%20N/%5Cpartial%20x">, es necesario para la exactitud; en cualquier región sin agujeros donde <img src="https://latex.codecogs.com/png.latex?M"> y <img src="https://latex.codecogs.com/png.latex?N"> tengan derivadas continuas (un rectángulo, por ejemplo, o todo el plano menos el origen si evitamos rodearlo) también es suficiente. Cuando la ecuación es exacta, se encuentra <img src="https://latex.codecogs.com/png.latex?%5Cphi"> integrando <img src="https://latex.codecogs.com/png.latex?M"> respecto a <img src="https://latex.codecogs.com/png.latex?x"> y tratando a <img src="https://latex.codecogs.com/png.latex?y"> como constante, lo que deja una función arbitraria <img src="https://latex.codecogs.com/png.latex?g(y)"> por determinar; después se deriva ese resultado respecto a <img src="https://latex.codecogs.com/png.latex?y"> y se compara con <img src="https://latex.codecogs.com/png.latex?N"> para encontrar <img src="https://latex.codecogs.com/png.latex?g'(y)">, y de ahí <img src="https://latex.codecogs.com/png.latex?g(y)">.</p>
</section>
<section id="resolviendo-el-ejemplo-el-potencial-de-una-fuerza-central" class="level3" data-number="3.3">
<h3 data-number="3.3" class="anchored" data-anchor-id="resolviendo-el-ejemplo-el-potencial-de-una-fuerza-central"><span class="header-section-number">3.3</span> Resolviendo el ejemplo: el potencial de una fuerza central</h3>
<p>Para <img src="https://latex.codecogs.com/png.latex?M=-kx/r%5E3"> y <img src="https://latex.codecogs.com/png.latex?N=-ky/r%5E3">, se puede verificar (Maxima lo confirma abajo) que <img src="https://latex.codecogs.com/png.latex?%5Cpartial%20M/%5Cpartial%20y=%5Cpartial%20N/%5Cpartial%20x=3kxy/r%5E5">: la ecuación es exacta. Integrando <img src="https://latex.codecogs.com/png.latex?M"> respecto a <img src="https://latex.codecogs.com/png.latex?x">,</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cphi=%5Cint%20-%5Cfrac%7Bkx%7D%7B(x%5E2+y%5E2)%5E%7B3/2%7D%7D%5C,dx=%5Cfrac%7Bk%7D%7B%5Csqrt%7Bx%5E2+y%5E2%7D%7D+g(y)=%5Cfrac%7Bk%7D%7Br%7D+g(y)"></p>
<p>Derivando respecto a <img src="https://latex.codecogs.com/png.latex?y"> y comparando con <img src="https://latex.codecogs.com/png.latex?N">,</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B%5Cpartial%20%5Cphi%7D%7B%5Cpartial%20y%7D=-%5Cfrac%7Bky%7D%7Br%5E3%7D+g'(y)=N=-%5Cfrac%7Bky%7D%7Br%5E3%7D%5Cquad%5CLongrightarrow%5Cquad%20g'(y)=0"></p>
<p>así que <img src="https://latex.codecogs.com/png.latex?g"> es una constante, y</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cphi(x,y)=%5Cfrac%7Bk%7D%7Br%7D"></p>
<p>Las curvas equipotenciales, <img src="https://latex.codecogs.com/png.latex?%5Cphi=C">, son entonces <img src="https://latex.codecogs.com/png.latex?k/r=C">, es decir, <img src="https://latex.codecogs.com/png.latex?r=k/C">: <strong>círculos concéntricos</strong> en el origen. Tiene sentido: como la fuerza solo depende de la distancia al origen, su potencial también depende solo de <img src="https://latex.codecogs.com/png.latex?r">, y los conjuntos de nivel de una función que depende solo de <img src="https://latex.codecogs.com/png.latex?r"> son siempre círculos centrados en el origen.</p>
</section>
<section id="cerrando-el-círculo-con-la-primera-sección-del-curso" class="level3" data-number="3.4">
<h3 data-number="3.4" class="anchored" data-anchor-id="cerrando-el-círculo-con-la-primera-sección-del-curso"><span class="header-section-number">3.4</span> Cerrando el círculo con la primera sección del curso</h3>
<p>Esto conecta directamente con la sección de Familias Ortogonales. El campo de fuerzas apunta siempre en la dirección radial, hacia o desde el origen, así que sus líneas de campo son los rayos que salen del origen. Como el gradiente de una función siempre es perpendicular a sus curvas de nivel, las líneas de campo (radiales) y las líneas equipotenciales (círculos) forman, una vez más, un par de familias ortogonales: exactamente las rectas y los círculos concéntricos del primer applet de esta serie de notas.</p>
</section>
<section id="verificando-con-maxima-y-graficando-el-campo" class="level3" data-number="3.5">
<h3 data-number="3.5" class="anchored" data-anchor-id="verificando-con-maxima-y-graficando-el-campo"><span class="header-section-number">3.5</span> Verificando con Maxima y graficando el campo</h3>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb2-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">load</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">draw</span>);</span>
<span id="cb2-3"></span>
<span id="cb2-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Campo central atractivo: F = -k*(x,y)/r^3 (gravitacional o de Coulomb) */</span></span>
<span id="cb2-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">rr</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sqrt</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>+<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>);</span>
<span id="cb2-6"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Mx</span>: -<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">rr</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>;    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* componente Fx: hace de M en M dx + N dy = 0 */</span></span>
<span id="cb2-7"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Ny</span>: -<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">rr</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>;    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* componente Fy: hace de N */</span></span>
<span id="cb2-8"></span>
<span id="cb2-9"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Criterio de exactitud: dM/dy debe ser igual a dN/dx */</span></span>
<span id="cb2-10"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">es_exacta</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">is</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Mx</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>) - <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Ny</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>)) = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>);</span>
<span id="cb2-11"></span>
<span id="cb2-12"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Potencial: integramos M respecto a x, ajustamos con N */</span></span>
<span id="cb2-13"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">phi</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">integrate</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Mx</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);                 <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* phi = k/sqrt(x^2+y^2) + g(y) */</span></span>
<span id="cb2-14"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ajuste</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">phi</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>) - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Ny</span>);     <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* da 0: g es constante */</span></span>
<span id="cb2-15"></span>
<span id="cb2-16"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Grafica del campo (flechas grises) y las curvas equipotenciales</span></span>
<span id="cb2-17"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">   phi=c, que son circulos concentricos x^2+y^2=(k/c)^2 (rojo) */</span></span>
<span id="cb2-18"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">kk</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>;</span>
<span id="cb2-19"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Fx</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xx</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yy</span>) := -<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">kk</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xx</span>/(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sqrt</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xx</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>+<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yy</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>))^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>;</span>
<span id="cb2-20"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Fy</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xx</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yy</span>) := -<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">kk</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yy</span>/(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sqrt</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xx</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>+<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yy</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>))^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>;</span>
<span id="cb2-21"></span>
<span id="cb2-22"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">puntos</span>: [];</span>
<span id="cb2-23"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">i</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">-4</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">thru</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">do</span></span>
<span id="cb2-24">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">j</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">-4</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">thru</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">do</span></span>
<span id="cb2-25">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">abs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">i</span>)+<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">abs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">j</span>) &gt; <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">then</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">puntos</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">append</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">puntos</span>, [[<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">i</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">j</span>]]);</span>
<span id="cb2-26"></span>
<span id="cb2-27"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vectores</span>: [];</span>
<span id="cb2-28"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">p</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">puntos</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">do</span> (</span>
<span id="cb2-29">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x0</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">p</span>[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>], <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y0</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">p</span>[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>],</span>
<span id="cb2-30">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">fx</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Fx</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x0</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y0</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">fy</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Fy</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x0</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y0</span>),</span>
<span id="cb2-31">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">mag</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sqrt</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">fx</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>+<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">fy</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>),</span>
<span id="cb2-32">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ux</span>: <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">fx</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">mag</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">uy</span>: <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">fy</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">mag</span>,</span>
<span id="cb2-33">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vectores</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">append</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vectores</span>, [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vector</span>([<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x0</span>-<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ux</span>/<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y0</span>-<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">uy</span>/<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>],[<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ux</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">uy</span>])])</span>
<span id="cb2-34">);</span>
<span id="cb2-35"></span>
<span id="cb2-36"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">circulos</span>: [];</span>
<span id="cb2-37"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">radioC</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>,<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">3.6</span>] <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">do</span></span>
<span id="cb2-38">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">circulos</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">append</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">circulos</span>, [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ellipse</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">radioC</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">radioC</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">360</span>)]);</span>
<span id="cb2-39"></span>
<span id="cb2-40"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">opciones</span>: [</span>
<span id="cb2-41">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">terminal</span> = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">png</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">file_name</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"campo"</span>,</span>
<span id="cb2-42">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">dimensions</span> = [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">700</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">700</span>], <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xrange</span> = [<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">-4.3</span>,<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">4.3</span>], <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yrange</span> = [<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">-4.3</span>,<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">4.3</span>],</span>
<span id="cb2-43">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">proportional_axes</span> = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xy</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">head_length</span> = <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.13</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">head_angle</span> = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">25</span>,</span>
<span id="cb2-44">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">color</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"gray50"</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">line_width</span> = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb2-45">];</span>
<span id="cb2-46"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">apply</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">draw2d</span>, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">append</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">opciones</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vectores</span>,</span>
<span id="cb2-47">  [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">color</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"red"</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">line_width</span> = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">transparent</span> = <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">true</span>], <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">circulos</span>));</span></code></pre></div></div>
</div>
</div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://arturosanjuan.xyz/cursos/odes/homoexactas/campo.png" class="img-fluid figure-img"></p>
<figcaption>Campo de fuerzas central (gris) y curvas equipotenciales, círculos concéntricos (rojo). Las flechas son radiales y perpendiculares a los círculos en cada punto de cruce.</figcaption>
</figure>
</div>
<div class="callout callout-style-default callout-important callout-titled" title="Tarea">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Importante</span>Tarea
</div>
</div>
<div class="callout-body-container callout-body">
<p>Haga todos los ejercicios de la sección 7 (Ecuaciones homogéneas, problemas 1 a 11, páginas 67 a 69) y de la sección 8 (Ecuaciones exactas, problemas 1 a 22, páginas 70 a 74) del Simmons.</p>
</div>
</div>


</section>
</section>

 ]]></description>
  <guid>https://arturosanjuan.xyz/cursos/odes/homoexactas/</guid>
  <pubDate>Tue, 08 Sep 2026 05:00:00 GMT</pubDate>
  <media:content url="https://arturosanjuan.xyz/cursos/odes/homoexactas/espiral.png" medium="image" type="image/png" height="144" width="144"/>
</item>
<item>
  <title>Taller 1</title>
  <dc:creator>Arturo Sanjuán</dc:creator>
  <link>https://arturosanjuan.xyz/cursos/odes/taller-1/</link>
  <description><![CDATA[ 




<p>Una ecuación diferencial no siempre nace de la misma manera. En este taller van a recorrer tres orígenes distintos de una EDO: una condición geométrica local, una ley física de proporcionalidad, y un principio mecánico que reduce una ecuación de segundo orden a una de primer orden.</p>
<section id="familias-de-curvas-ortogonales" class="level2" data-number="1">
<h2 data-number="1" class="anchored" data-anchor-id="familias-de-curvas-ortogonales"><span class="header-section-number">1</span> Familias de curvas ortogonales</h2>
<p>Encuentren la curva tal que <em>la parte de la recta tangente cortada por los ejes queda bisecada por el punto de tangencia</em>.</p>
<ol type="1">
<li>Traduzcan la condición geométrica a una ecuación diferencial.</li>
<li>Resuelvan la ecuación y muestren que la familia de curvas es <img src="https://latex.codecogs.com/png.latex?xy=c">.</li>
<li>Encuentren la ecuación diferencial de la familia de curvas <em>ortogonales</em> a la familia hallada en el punto anterior, resuélvanla, y muestren que esta segunda familia es <img src="https://latex.codecogs.com/png.latex?y%5E2-x%5E2=k">.</li>
<li>Grafiquen ambas familias sobre los mismos ejes.</li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled" title="Solución">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Solución
</div>
</div>
<div class="callout-body-container callout-body">
<p>La recta tangente en <img src="https://latex.codecogs.com/png.latex?(x,y)"> es <img src="https://latex.codecogs.com/png.latex?Y-y=y'(X-x)">. Corta al eje <img src="https://latex.codecogs.com/png.latex?X"> en <img src="https://latex.codecogs.com/png.latex?%5Cleft(x-%5Cdfrac%7By%7D%7By'%7D,0%5Cright)"> y al eje <img src="https://latex.codecogs.com/png.latex?Y"> en <img src="https://latex.codecogs.com/png.latex?(0,%5C,y-xy')">. Que <img src="https://latex.codecogs.com/png.latex?(x,y)"> biseque ese segmento significa que <img src="https://latex.codecogs.com/png.latex?x"> es el promedio de las dos abscisas de los cortes:</p>
<p><img src="https://latex.codecogs.com/png.latex?x%20=%20%5Cfrac%7B%5Cleft(x-%5Cdfrac%7By%7D%7By'%7D%5Cright)+0%7D%7B2%7D%20%5C;%5CLongrightarrow%5C;%20x-%5Cfrac%7By%7D%7By'%7D=2x%20%5C;%5CLongrightarrow%5C;%20y'=-%5Cfrac%7By%7D%7Bx%7D"></p>
<p>Separando variables:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bdy%7D%7By%7D=-%5Cfrac%7Bdx%7D%7Bx%7D%20%5C;%5CLongrightarrow%5C;%20%5Cln%7Cy%7C=-%5Cln%7Cx%7C+C%20%5C;%5CLongrightarrow%5C;%20xy=c"></p>
<p>La pendiente ortogonal es <img src="https://latex.codecogs.com/png.latex?-1/y'%20=%20x/y">:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bdy%7D%7Bdx%7D=%5Cfrac%7Bx%7D%7By%7D%20%5C;%5CLongrightarrow%5C;%20y%5C,dy=x%5C,dx%20%5C;%5CLongrightarrow%5C;%20%5Cfrac%7By%5E2%7D%7B2%7D=%5Cfrac%7Bx%5E2%7D%7B2%7D+C'%20%5C;%5CLongrightarrow%5C;%20y%5E2-x%5E2=k"></p>
<p>Ambas familias son hipérbolas: <img src="https://latex.codecogs.com/png.latex?xy=c"> tiene por asíntotas los ejes coordenados, y <img src="https://latex.codecogs.com/png.latex?y%5E2-x%5E2=k"> tiene por asíntotas <img src="https://latex.codecogs.com/png.latex?y=%5Cpm%20x"> — la segunda familia es, geométricamente, la primera rotada 45°.</p>
</div>
</div>
</section>
<section id="la-ley-de-enfriamiento-de-newton" class="level2" data-number="2">
<h2 data-number="2" class="anchored" data-anchor-id="la-ley-de-enfriamiento-de-newton"><span class="header-section-number">2</span> La ley de enfriamiento de Newton</h2>
<p>La ley de enfriamiento de Newton establece que la tasa de cambio de la temperatura <img src="https://latex.codecogs.com/png.latex?T"> de un cuerpo es proporcional a la diferencia entre su temperatura y la del medio que lo rodea, <img src="https://latex.codecogs.com/png.latex?T_a">:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7BdT%7D%7Bdt%7D=-k(T-T_a),%20%5Cquad%20k%3E0"></p>
<p><strong>El caso:</strong> un forense muere durante una autopsia en un cuarto que se mantiene a 5°C constantes. Su cuerpo es encontrado a las 10 a.m. a 23°C, y a las 12 p.m. a 18.5°C. Su temperatura normal en vida era 37°C.</p>
<ol type="1">
<li>Resuelvan la ecuación diferencial de forma general (en términos de <img src="https://latex.codecogs.com/png.latex?T_a">, <img src="https://latex.codecogs.com/png.latex?k">, y una constante de integración).</li>
<li>Usen los dos datos de temperatura (10 a.m. y 12 p.m.) para hallar <img src="https://latex.codecogs.com/png.latex?k"> y la constante de integración.</li>
<li>Determinen a qué hora ocurrió la muerte.</li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled" title="Solución">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Solución
</div>
</div>
<div class="callout-body-container callout-body">
<p>Con <img src="https://latex.codecogs.com/png.latex?t=0"> a las 10 a.m., <img src="https://latex.codecogs.com/png.latex?T(0)=23"> y <img src="https://latex.codecogs.com/png.latex?T_a=5">:</p>
<p><img src="https://latex.codecogs.com/png.latex?T(t)%20=%205+18e%5E%7B-kt%7D"></p>
<p>Con el dato de las 12 p.m. (<img src="https://latex.codecogs.com/png.latex?t=2">, <img src="https://latex.codecogs.com/png.latex?T=18.5">):</p>
<p><img src="https://latex.codecogs.com/png.latex?18.5%20=%205+18e%5E%7B-2k%7D%20%5C;%5CLongrightarrow%5C;%20e%5E%7B-2k%7D=%5Cfrac34%20%5C;%5CLongrightarrow%5C;%20k=%5Cfrac12%5Cln%5Cfrac43"></p>
<p>Para la hora de muerte (<img src="https://latex.codecogs.com/png.latex?T=37">):</p>
<p><img src="https://latex.codecogs.com/png.latex?37=5+18e%5E%7B-kt_d%7D%20%5C;%5CLongrightarrow%5C;%20e%5E%7B-kt_d%7D=%5Cfrac%7B16%7D%7B9%7D=%5Cleft(%5Cfrac43%5Cright)%5E2%20%5C;%5CLongrightarrow%5C;%20-kt_d=2%5Cln%5Cfrac43"></p>
<p><img src="https://latex.codecogs.com/png.latex?t_d%20=%20%5Cfrac%7B-2%5Cln(4/3)%7D%7B%5Cfrac12%5Cln(4/3)%7D%20=%20-4"></p>
<p>Los logaritmos se cancelan exactamente: la muerte ocurrió 4 horas antes de las 10 a.m., <strong>a las 6:00 a.m.</strong></p>
</div>
</div>
</section>
<section id="la-velocidad-de-escape" class="level2" data-number="3">
<h2 data-number="3" class="anchored" data-anchor-id="la-velocidad-de-escape"><span class="header-section-number">3</span> La velocidad de escape</h2>
<p>En el espacio, la ley de gravitación de Newton establece que la fuerza que la Tierra ejerce sobre un cuerpo varía inversamente al cuadrado de la distancia a su centro. Esto plantea una pregunta con consecuencias muy concretas: ¿qué tan rápido hay que lanzar un proyectil hacia arriba para que <em>nunca</em> regrese, escapando para siempre de la atracción terrestre? La respuesta la <em>velocidad de escape</em> es la razón por la que los cohetes necesitan alcanzar una velocidad mínima muy específica para salir de la órbita terrestre.</p>
<p>Sea <img src="https://latex.codecogs.com/png.latex?x"> la distancia del proyectil al centro de la Tierra, <img src="https://latex.codecogs.com/png.latex?R"> el radio terrestre, y <img src="https://latex.codecogs.com/png.latex?v=dx/dt"> su velocidad. Si se desprecia la resistencia del aire, la segunda ley de Newton da</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bd%5E2x%7D%7Bdt%5E2%7D%20=%20-%5Cfrac%7BgR%5E2%7D%7Bx%5E2%7D"></p>
<ol type="1">
<li><strong>Reducción de orden.</strong> Usen la regla de la cadena, <img src="https://latex.codecogs.com/png.latex?%5Cdfrac%7Bd%5E2x%7D%7Bdt%5E2%7D=v%5Cdfrac%7Bdv%7D%7Bdx%7D">, para reescribir la ecuación anterior como una ecuación de primer orden y separable en <img src="https://latex.codecogs.com/png.latex?v"> y <img src="https://latex.codecogs.com/png.latex?x">.</li>
<li><strong>Integren</strong>, usando la condición inicial <img src="https://latex.codecogs.com/png.latex?v=v_0"> cuando <img src="https://latex.codecogs.com/png.latex?x=R">, para mostrar que <img src="https://latex.codecogs.com/png.latex?v%5E2%20=%20v_0%5E2-2gR%5Cleft(1-%5Cdfrac%7BR%7D%7Bx%7D%5Cright)">.</li>
<li><strong>Velocidad de escape.</strong> El proyectil escapa (nunca regresa) si <img src="https://latex.codecogs.com/png.latex?v%5E2%5Cge0"> se mantiene incluso cuando <img src="https://latex.codecogs.com/png.latex?x%5Cto%5Cinfty">. Usen esta condición para mostrar que la velocidad inicial mínima requerida es <img src="https://latex.codecogs.com/png.latex?v_e=%5Csqrt%7B2gR%7D">.</li>
<li><strong>Si no escapa.</strong> Supongan ahora que <img src="https://latex.codecogs.com/png.latex?v_0%3Cv_e">, de modo que el proyectil sube pero eventualmente regresa. Encuentren la altura máxima <img src="https://latex.codecogs.com/png.latex?h"> que alcanza sobre la superficie (el valor de <img src="https://latex.codecogs.com/png.latex?x-R"> cuando <img src="https://latex.codecogs.com/png.latex?v=0">).</li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled" title="Solución">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Solución
</div>
</div>
<div class="callout-body-container callout-body">
<p>Con <img src="https://latex.codecogs.com/png.latex?%5Cdfrac%7Bd%5E2x%7D%7Bdt%5E2%7D=v%5Cdfrac%7Bdv%7D%7Bdx%7D">:</p>
<p><img src="https://latex.codecogs.com/png.latex?v%5Cfrac%7Bdv%7D%7Bdx%7D%20=%20-%5Cfrac%7BgR%5E2%7D%7Bx%5E2%7D"></p>
<p>Separando e integrando:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bv%5E2%7D%7B2%7D%20=%20%5Cfrac%7BgR%5E2%7D%7Bx%7D+C"></p>
<p>Con <img src="https://latex.codecogs.com/png.latex?v=v_0"> en <img src="https://latex.codecogs.com/png.latex?x=R">: <img src="https://latex.codecogs.com/png.latex?C=%5Cdfrac%7Bv_0%5E2%7D%7B2%7D-gR">, así que</p>
<p><img src="https://latex.codecogs.com/png.latex?v%5E2%20=%20v_0%5E2-2gR%5Cleft(1-%5Cfrac%7BR%7D%7Bx%7D%5Cright)"></p>
<p>Cuando <img src="https://latex.codecogs.com/png.latex?x%5Cto%5Cinfty">, <img src="https://latex.codecogs.com/png.latex?v%5E2%5Cto%20v_0%5E2-2gR">. Para que nunca sea negativo se necesita <img src="https://latex.codecogs.com/png.latex?v_0%5E2%5Cge%202gR">, es decir</p>
<p><img src="https://latex.codecogs.com/png.latex?v_e%20=%20%5Csqrt%7B2gR%7D%20%5Capprox%2011.2%5Ctext%7B%20km/s%7D"></p>
<p>(con <img src="https://latex.codecogs.com/png.latex?g%5Capprox9.8%5Ctext%7B%20m/s%7D%5E2"> y <img src="https://latex.codecogs.com/png.latex?R%5Capprox6371%5Ctext%7B%20km%7D">).</p>
<p>Si <img src="https://latex.codecogs.com/png.latex?v_0%3Cv_e">, la altura máxima es donde <img src="https://latex.codecogs.com/png.latex?v=0">:</p>
<p><img src="https://latex.codecogs.com/png.latex?0%20=%20v_0%5E2-2gR%5Cleft(1-%5Cfrac%7BR%7D%7Bx%7D%5Cright)%20%5C;%5CLongrightarrow%5C;%20x=%5Cfrac%7B2gR%5E2%7D%7B2gR-v_0%5E2%7D%20%5C;%5CLongrightarrow%5C;%20h=x-R=%5Cfrac%7BRv_0%5E2%7D%7B2gR-v_0%5E2%7D"></p>
<p>Equivalente, en términos de <img src="https://latex.codecogs.com/png.latex?v_e">: <img src="https://latex.codecogs.com/png.latex?h=%5Cdfrac%7BRv_0%5E2%7D%7Bv_e%5E2-v_0%5E2%7D">, crece sin límite a medida que <img src="https://latex.codecogs.com/png.latex?v_0%5Cto%20v_e">.</p>
</div>
</div>


</section>

 ]]></description>
  <guid>https://arturosanjuan.xyz/cursos/odes/taller-1/</guid>
  <pubDate>Fri, 04 Sep 2026 05:00:00 GMT</pubDate>
</item>
<item>
  <title>Factores Integrantes</title>
  <dc:creator>Arturo Sanjuán</dc:creator>
  <link>https://arturosanjuan.xyz/cursos/odes/fintegrante/</link>
  <description><![CDATA[ 




<section id="cuando-una-ecuación-no-exacta-se-puede-volver-exacta" class="level2" data-number="1">
<h2 data-number="1" class="anchored" data-anchor-id="cuando-una-ecuación-no-exacta-se-puede-volver-exacta"><span class="header-section-number">1</span> Cuando una ecuación no exacta se puede volver exacta</h2>
<p>La sección anterior dejó una herramienta poderosa pero frágil: si <img src="https://latex.codecogs.com/png.latex?M%5C,dx+N%5C,dy=0"> es exacta, se resuelve por integración directa. El problema es que la exactitud es una coincidencia algebraica —basta cambiar un signo o un coeficiente para destruirla— así que la mayoría de las ecuaciones que uno encuentra en la práctica no son exactas tal como están escritas.</p>
<p>La pregunta natural es si una ecuación no exacta se puede <em>forzar</em> a ser exacta multiplicándola por una función auxiliar <img src="https://latex.codecogs.com/png.latex?%5Cmu(x,y)">, de modo que</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cmu%20M%5C,dx+%5Cmu%20N%5C,dy=0"></p>
<p>sí lo sea. A esa función <img src="https://latex.codecogs.com/png.latex?%5Cmu"> se le llama <strong>factor integrante</strong>. Ya conoces un ejemplo sin saberlo: <img src="https://latex.codecogs.com/png.latex?y%5C,dx-x%5C,dy=0"> no es exacta, pero al multiplicarla por <img src="https://latex.codecogs.com/png.latex?1/x%5E2"> se convierte en <img src="https://latex.codecogs.com/png.latex?-d(y/x)=0">, que se integra de inmediato. Euler, hacia la década de 1730, fue de los primeros en sistematizar esta idea de “multiplicador” para ecuaciones que de otro modo no cedían a los métodos conocidos.</p>
<p><strong>¿Cuándo existe un factor así, y cómo se encuentra?</strong> Exigir que <img src="https://latex.codecogs.com/png.latex?%5Cmu%20M%5C,dx+%5Cmu%20N%5C,dy=0"> sea exacta significa exigir</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B%5Cpartial(%5Cmu%20M)%7D%7B%5Cpartial%20y%7D=%5Cfrac%7B%5Cpartial(%5Cmu%20N)%7D%7B%5Cpartial%20x%7D%20%5Cquad%5CLongrightarrow%5Cquad%20%5Cmu_y%20M+%5Cmu%20M_y%20=%20%5Cmu_x%20N+%5Cmu%20N_x"></p>
<p>En general esto es una ecuación en derivadas parciales para <img src="https://latex.codecogs.com/png.latex?%5Cmu">, tan difícil como la original. Pero si uno <em>supone</em> que <img src="https://latex.codecogs.com/png.latex?%5Cmu"> depende solo de <img src="https://latex.codecogs.com/png.latex?x"> (es decir, <img src="https://latex.codecogs.com/png.latex?%5Cmu_y=0">), la ecuación colapsa a una EDO de primer orden en <img src="https://latex.codecogs.com/png.latex?%5Cmu">:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cmu_x%20N%20=%20%5Cmu(M_y-N_x)%20%5Cquad%5CLongrightarrow%5Cquad%20%5Cfrac%7B%5Cmu'%7D%7B%5Cmu%7D%20=%20%5Cfrac%7BM_y-N_x%7D%7BN%7D"></p>
<p>Si el lado derecho resulta depender solo de <img src="https://latex.codecogs.com/png.latex?x"> —llamémoslo <img src="https://latex.codecogs.com/png.latex?g(x)">— entonces se puede integrar directamente:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cmu(x)%20=%20e%5E%7B%5Cint%20g(x)%5C,dx%7D,%20%5Cqquad%20g(x)=%5Cfrac%7BM_y-N_x%7D%7BN%7D"></p>
<p>Por simetría, si en cambio <img src="https://latex.codecogs.com/png.latex?%5Cmu"> depende solo de <img src="https://latex.codecogs.com/png.latex?y">, el mismo argumento da</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cmu(y)%20=%20e%5E%7B%5Cint%20h(y)%5C,dy%7D,%20%5Cqquad%20h(y)=%5Cfrac%7BN_x-M_y%7D%7BM%7D"></p>
<p>En ambos casos la receta es la misma: calcular la expresión indicada, comprobar que depende de una sola variable, e integrarla. Si no depende de una sola variable, este método particular no aplica y hace falta otra estrategia (agrupar términos reconociendo diferenciales conocidas, buscar <img src="https://latex.codecogs.com/png.latex?%5Cmu"> como función de <img src="https://latex.codecogs.com/png.latex?xy"> o de <img src="https://latex.codecogs.com/png.latex?x+y">, etc.).</p>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb1-2"></span>
<span id="cb1-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Ejemplo: y dx + (x^2 y - x) dy = 0, no exacta */</span></span>
<span id="cb1-4"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">M</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>;</span>
<span id="cb1-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span> - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>;</span>
<span id="cb1-6"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">M</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>) - <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* no es cero: no es exacta */</span></span>
<span id="cb1-7"></span>
<span id="cb1-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* buscamos mu(x): (M_y - N_x)/N debe depender solo de x */</span></span>
<span id="cb1-9"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">g</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>((<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">M</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>) - <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>))/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>);</span>
<span id="cb1-10"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">mu</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">exp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">integrate</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">g</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>));</span>
<span id="cb1-11"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">mu</span>;  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* mu = 1/x^2 */</span></span>
<span id="cb1-12"></span>
<span id="cb1-13"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* comprobacion de exactitud tras multiplicar */</span></span>
<span id="cb1-14"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Mp</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">mu</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">M</span>; <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Np</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">mu</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>;</span>
<span id="cb1-15"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Mp</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>) - <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Np</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>));  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* debe dar 0 */</span></span></code></pre></div></div>
</div>
</div>
</section>
<section id="ejercicio-simmons-sección-9-problema-2d" class="level2" data-number="2">
<h2 data-number="2" class="anchored" data-anchor-id="ejercicio-simmons-sección-9-problema-2d"><span class="header-section-number">2</span> Ejercicio (Simmons, sección 9, problema 2d)</h2>
<p><img src="https://latex.codecogs.com/png.latex?e%5Ex%5C,dx+%5Cleft(e%5Ex%5Ccot%20y+2y%5Ccsc%20y%5Cright)dy=0"></p>
<p><strong>Probando exactitud.</strong> Con <img src="https://latex.codecogs.com/png.latex?M=e%5Ex"> y <img src="https://latex.codecogs.com/png.latex?N=e%5Ex%5Ccot%20y+2y%5Ccsc%20y">: <img src="https://latex.codecogs.com/png.latex?M_y=0"> y <img src="https://latex.codecogs.com/png.latex?N_x=e%5Ex%5Ccot%20y">, así que <img src="https://latex.codecogs.com/png.latex?M_y%5Cneq%20N_x"> y la ecuación <strong>no</strong> es exacta.</p>
<p><strong>Buscando el factor integrante.</strong> Como <img src="https://latex.codecogs.com/png.latex?M"> no depende de <img src="https://latex.codecogs.com/png.latex?y">, probamos <img src="https://latex.codecogs.com/png.latex?%5Cmu(y)">:</p>
<p><img src="https://latex.codecogs.com/png.latex?h(y)=%5Cfrac%7BN_x-M_y%7D%7BM%7D=%5Cfrac%7Be%5Ex%5Ccot%20y%7D%7Be%5Ex%7D=%5Ccot%20y"></p>
<p>que depende solo de <img src="https://latex.codecogs.com/png.latex?y">. Entonces</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cmu(y)%20=%20e%5E%7B%5Cint%5Ccot%20y%5C,dy%7D%20=%20e%5E%7B%5Cln(%5Csin%20y)%7D%20=%20%5Csin%20y"></p>
<p><strong>Multiplicando por <img src="https://latex.codecogs.com/png.latex?%5Cmu=%5Csin%20y"></strong>, la ecuación se transforma en</p>
<p><img src="https://latex.codecogs.com/png.latex?e%5Ex%5Csin%20y%5C,dx+%5Cleft(e%5Ex%5Ccos%20y+2y%5Cright)dy=0"></p>
<p>y ahora sí es exacta: <img src="https://latex.codecogs.com/png.latex?%5Cdfrac%7B%5Cpartial%7D%7B%5Cpartial%20y%7D(e%5Ex%5Csin%20y)=e%5Ex%5Ccos%20y=%5Cdfrac%7B%5Cpartial%7D%7B%5Cpartial%20x%7D(e%5Ex%5Ccos%20y+2y)">.</p>
<p><strong>Integrando.</strong> De <img src="https://latex.codecogs.com/png.latex?f_x=e%5Ex%5Csin%20y"> se sigue <img src="https://latex.codecogs.com/png.latex?f=e%5Ex%5Csin%20y+g(y)">. Derivando respecto a <img src="https://latex.codecogs.com/png.latex?y"> e igualando a <img src="https://latex.codecogs.com/png.latex?N'=e%5Ex%5Ccos%20y+2y">:</p>
<p><img src="https://latex.codecogs.com/png.latex?e%5Ex%5Ccos%20y+g'(y)%20=%20e%5Ex%5Ccos%20y+2y%20%5Cquad%5CLongrightarrow%5Cquad%20g'(y)=2y%20%5Cquad%5CLongrightarrow%5Cquad%20g(y)=y%5E2"></p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cboxed%7Be%5Ex%5Csin%20y+y%5E2=C%7D"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb2-2"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">M</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">exp</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb2-3"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">exp</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>)*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cot</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>) + <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">csc</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>);</span>
<span id="cb2-4"></span>
<span id="cb2-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">h</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>((<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>) - <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">M</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>))/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">M</span>);   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* h(y) = cot(y) */</span></span>
<span id="cb2-6"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">mu</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">trigsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">exp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">integrate</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">h</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>)));        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* mu = sin(y)   */</span></span>
<span id="cb2-7"></span>
<span id="cb2-8"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Mp</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">mu</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">M</span>);</span>
<span id="cb2-9"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Np</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">trigsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">mu</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>));</span>
<span id="cb2-10"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Mp</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>) - <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Np</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>));         <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* chequeo: 0    */</span></span>
<span id="cb2-11"></span>
<span id="cb2-12"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">f</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">integrate</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Mp</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb2-13"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">gp</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">trigsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Np</span> - <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">f</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>)));</span>
<span id="cb2-14"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">g</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">integrate</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">gp</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>);</span>
<span id="cb2-15"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">f</span> + <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">g</span>;   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* e^x*sin(y) + y^2 */</span></span></code></pre></div></div>
</div>
</div>
</section>
<section id="la-ecuación-de-bernoulli" class="level2" data-number="3">
<h2 data-number="3" class="anchored" data-anchor-id="la-ecuación-de-bernoulli"><span class="header-section-number">3</span> La ecuación de Bernoulli</h2>
<p>Hay un tipo de ecuación no lineal que, aunque no es exacta ni lineal tal como se presenta, se reduce a una ecuación lineal con el cambio de variable correcto. Se trata de la <strong>ecuación de Bernoulli</strong>,</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bdy%7D%7Bdx%7D+P(x)y%20=%20Q(x)y%5En"></p>
<p>llamada así por Jacob Bernoulli, quien la planteó en 1695 como un reto a sus contemporáneos (entre ellos su hermano Johann y Leibniz, quien la resolvió ese mismo año). Si <img src="https://latex.codecogs.com/png.latex?n=0"> o <img src="https://latex.codecogs.com/png.latex?n=1"> ya es lineal y no hay nada que reducir. Para cualquier otro <img src="https://latex.codecogs.com/png.latex?n">, la sustitución</p>
<p><img src="https://latex.codecogs.com/png.latex?z%20=%20y%5E%7B1-n%7D"></p>
<p>la convierte en una ecuación <strong>lineal</strong> en <img src="https://latex.codecogs.com/png.latex?z">. La razón: derivando, <img src="https://latex.codecogs.com/png.latex?z'=(1-n)y%5E%7B-n%7Dy'">; dividiendo la ecuación original entre <img src="https://latex.codecogs.com/png.latex?y%5En">,</p>
<p><img src="https://latex.codecogs.com/png.latex?y%5E%7B-n%7Dy'+P(x)y%5E%7B1-n%7D=Q(x)"></p>
<p>y sustituyendo <img src="https://latex.codecogs.com/png.latex?z=y%5E%7B1-n%7D"> (con <img src="https://latex.codecogs.com/png.latex?y%5E%7B-n%7Dy'%20=%20%5Cdfrac%7Bz'%7D%7B1-n%7D">), queda</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bz'%7D%7B1-n%7D+P(x)z=Q(x)%20%5Cquad%5CLongrightarrow%5Cquad%20z'+(1-n)P(x)z=(1-n)Q(x)"></p>
<p>que es lineal en <img src="https://latex.codecogs.com/png.latex?z"> y se resuelve con factor integrante como en la sección anterior del curso.</p>
</section>
<section id="ejercicio-simmons-sección-10-problema-3a" class="level2" data-number="4">
<h2 data-number="4" class="anchored" data-anchor-id="ejercicio-simmons-sección-10-problema-3a"><span class="header-section-number">4</span> Ejercicio (Simmons, sección 10, problema 3a)</h2>
<p><img src="https://latex.codecogs.com/png.latex?xy'+y=x%5E4y%5E3"></p>
<p><strong>Identificando la ecuación.</strong> Dividiendo entre <img src="https://latex.codecogs.com/png.latex?x">: <img src="https://latex.codecogs.com/png.latex?y'+%5Cdfrac%7B1%7D%7Bx%7Dy=x%5E3y%5E3">, que es Bernoulli con <img src="https://latex.codecogs.com/png.latex?n=3">, <img src="https://latex.codecogs.com/png.latex?P(x)=1/x">, <img src="https://latex.codecogs.com/png.latex?Q(x)=x%5E3">.</p>
<p><strong>Sustitución.</strong> Con <img src="https://latex.codecogs.com/png.latex?n=3">, <img src="https://latex.codecogs.com/png.latex?z=y%5E%7B1-n%7D=y%5E%7B-2%7D">. Dividiendo la ecuación entre <img src="https://latex.codecogs.com/png.latex?y%5E3">:</p>
<p><img src="https://latex.codecogs.com/png.latex?y%5E%7B-3%7Dy'+%5Cfrac%7B1%7D%7Bx%7Dy%5E%7B-2%7D=x%5E3"></p>
<p>y con <img src="https://latex.codecogs.com/png.latex?z=y%5E%7B-2%7D">, <img src="https://latex.codecogs.com/png.latex?z'=-2y%5E%7B-3%7Dy'">, es decir <img src="https://latex.codecogs.com/png.latex?y%5E%7B-3%7Dy'=-%5Cdfrac%7Bz'%7D%7B2%7D">:</p>
<p><img src="https://latex.codecogs.com/png.latex?-%5Cfrac%7Bz'%7D%7B2%7D+%5Cfrac%7Bz%7D%7Bx%7D=x%5E3%20%5Cquad%5CLongrightarrow%5Cquad%20z'-%5Cfrac%7B2%7D%7Bx%7Dz=-2x%5E3"></p>
<p><strong>Resolviendo la ecuación lineal en <img src="https://latex.codecogs.com/png.latex?z">.</strong> El factor integrante es</p>
<p><img src="https://latex.codecogs.com/png.latex?e%5E%7B%5Cint%20-2/x%5C,dx%7D%20=%20e%5E%7B-2%5Cln%20x%7D%20=%20x%5E%7B-2%7D"></p>
<p>Multiplicando y reconociendo la derivada de un producto:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cleft(x%5E%7B-2%7Dz%5Cright)'%20=%20-2x%20%5Cquad%5CLongrightarrow%5Cquad%20x%5E%7B-2%7Dz%20=%20-x%5E2+C%20%5Cquad%5CLongrightarrow%5Cquad%20z%20=%20x%5E2%5Cleft(C-x%5E2%5Cright)"></p>
<p><strong>Deshaciendo la sustitución.</strong> Como <img src="https://latex.codecogs.com/png.latex?z=y%5E%7B-2%7D">:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cboxed%7By%5E%7B-2%7D%20=%20x%5E2(C-x%5E2)%20%5Cquad%5CLongleftrightarrow%5Cquad%20y%20=%20%5Cpm%5Cfrac%7B1%7D%7Bx%5Csqrt%7BC-x%5E2%7D%7D%7D"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb3-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb3-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb3-3"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">edo</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>*<span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>) + <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span> = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>;</span>
<span id="cb3-4"></span>
<span id="cb3-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">n</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>;</span>
<span id="cb3-6"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yprime</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">solve</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">edo</span>, <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>))[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>]);</span>
<span id="cb3-7"></span>
<span id="cb3-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* dz/dx en terminos de z, con z = y^(1-n) */</span></span>
<span id="cb3-9"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">dzdx</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>((<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>-<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">n</span>)*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>^(-<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">n</span>)*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yprime</span>);</span>
<span id="cb3-10"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">dzdx_z</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span> = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">z</span>^(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>/(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>-<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">n</span>)), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">dzdx</span>));</span>
<span id="cb3-11"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">dzdx_z</span>;   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* 2*z/x - 2*x^3 */</span></span>
<span id="cb3-12"></span>
<span id="cb3-13"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* ecuacion lineal en z */</span></span>
<span id="cb3-14"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">z</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb3-15"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">edo_z</span>: <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">z</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>) - (<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>)*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">z</span> = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">-2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>;</span>
<span id="cb3-16"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol_z</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">edo_z</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">z</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb3-17"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol_z</span>;    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* z = x^2*(%c - x^2) */</span></span></code></pre></div></div>
</div>
</div>
</section>
<section id="aplicación-una-cadena-de-desintegración-radioactiva" class="level2" data-number="5">
<h2 data-number="5" class="anchored" data-anchor-id="aplicación-una-cadena-de-desintegración-radioactiva"><span class="header-section-number">5</span> Aplicación — una cadena de desintegración radioactiva</h2>
<p>Una sustancia radioactiva <img src="https://latex.codecogs.com/png.latex?A"> se desintegra en una segunda sustancia <img src="https://latex.codecogs.com/png.latex?B">, y <img src="https://latex.codecogs.com/png.latex?B"> a su vez se desintegra en una tercera sustancia <img src="https://latex.codecogs.com/png.latex?C"> (este es, de hecho, el comportamiento real de muchas cadenas de desintegración natural, como la del uranio-238 hasta llegar al plomo estable). Sea <img src="https://latex.codecogs.com/png.latex?N_0"> la cantidad inicial de <img src="https://latex.codecogs.com/png.latex?A">, y sean <img src="https://latex.codecogs.com/png.latex?k_1,k_2"> las constantes de desintegración de cada paso. Si <img src="https://latex.codecogs.com/png.latex?x(t)"> y <img src="https://latex.codecogs.com/png.latex?y(t)"> son las cantidades de <img src="https://latex.codecogs.com/png.latex?A"> y <img src="https://latex.codecogs.com/png.latex?B"> en el instante <img src="https://latex.codecogs.com/png.latex?t">:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bdx%7D%7Bdt%7D=-k_1x,%20%5Cqquad%20x(0)=N_0"></p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bdy%7D%7Bdt%7D=k_1x-k_2y,%20%5Cqquad%20y(0)=0"></p>
<p>La primera ecuación es de variables separables y da <img src="https://latex.codecogs.com/png.latex?x(t)=N_0e%5E%7B-k_1t%7D">: el mecanismo de desintegración simple que ya se estudió en la sección de modelación. La segunda dice que <img src="https://latex.codecogs.com/png.latex?B"> gana lo que <img src="https://latex.codecogs.com/png.latex?A"> pierde (el término <img src="https://latex.codecogs.com/png.latex?+k_1x">) pero al mismo tiempo se desintegra por su cuenta (el término <img src="https://latex.codecogs.com/png.latex?-k_2y">).</p>
<p><strong>Resolviendo para <img src="https://latex.codecogs.com/png.latex?y(t)">.</strong> Sustituyendo <img src="https://latex.codecogs.com/png.latex?x(t)=N_0e%5E%7B-k_1t%7D"> en la segunda ecuación, queda una ecuación <strong>lineal</strong> de primer orden en <img src="https://latex.codecogs.com/png.latex?y">:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bdy%7D%7Bdt%7D+k_2y%20=%20k_1N_0e%5E%7B-k_1t%7D"></p>
<p>El factor integrante es <img src="https://latex.codecogs.com/png.latex?e%5E%7Bk_2t%7D">:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cleft(e%5E%7Bk_2t%7Dy%5Cright)'%20=%20k_1N_0e%5E%7B(k_2-k_1)t%7D"></p>
<p>Integrando y despejando <img src="https://latex.codecogs.com/png.latex?y">:</p>
<p><img src="https://latex.codecogs.com/png.latex?y(t)%20=%20%5Cfrac%7Bk_1N_0%7D%7Bk_2-k_1%7De%5E%7B-k_1t%7D+Ce%5E%7B-k_2t%7D"></p>
<p>Con la condición inicial <img src="https://latex.codecogs.com/png.latex?y(0)=0"> se obtiene <img src="https://latex.codecogs.com/png.latex?C=-%5Cdfrac%7Bk_1N_0%7D%7Bk_2-k_1%7D">, así que</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cboxed%7By(t)%20=%20%5Cfrac%7Bk_1N_0%7D%7Bk_2-k_1%7D%5Cleft(e%5E%7B-k_1t%7D-e%5E%7B-k_2t%7D%5Cright)%7D"></p>
<p>(esta fórmula asume <img src="https://latex.codecogs.com/png.latex?k_1%5Cneq%20k_2">; si las dos tasas coinciden, el mismo procedimiento con integración directa da <img src="https://latex.codecogs.com/png.latex?y(t)=k_1N_0%5C,t%5C,e%5E%7B-k_1t%7D">). Por conservación de la materia, la cantidad de <img src="https://latex.codecogs.com/png.latex?C"> es simplemente lo que falta: <img src="https://latex.codecogs.com/png.latex?z(t)=N_0-x(t)-y(t)">.</p>
<div class="callout callout-style-default callout-tip callout-titled" title="Un detalle cualitativo: B siempre tiene un máximo">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Un detalle cualitativo: B siempre tiene un máximo
</div>
</div>
<div class="callout-body-container callout-body">
<p>Mientras <img src="https://latex.codecogs.com/png.latex?A"> todavía existe, alimenta a <img src="https://latex.codecogs.com/png.latex?B"> más rápido de lo que <img src="https://latex.codecogs.com/png.latex?B"> se desintegra, así que <img src="https://latex.codecogs.com/png.latex?y(t)"> crece. Pero a medida que <img src="https://latex.codecogs.com/png.latex?A"> se agota, ese suministro cae, y en algún momento la desintegración de <img src="https://latex.codecogs.com/png.latex?B"> hacia <img src="https://latex.codecogs.com/png.latex?C"> empieza a dominar: <img src="https://latex.codecogs.com/png.latex?y(t)"> alcanza un máximo y luego decae hacia cero. Ese instante se encuentra en <img src="https://latex.codecogs.com/png.latex?y'(t%5E*)=0">:</p>
<p><img src="https://latex.codecogs.com/png.latex?t%5E*%20=%20%5Cfrac%7B%5Cln(k_1/k_2)%7D%7Bk_1-k_2%7D"></p>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb4-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb4-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb4-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb4-4"></span>
<span id="cb4-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">edoA</span>: <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) = -<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k1</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>;</span>
<span id="cb4-6"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solA</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ic1</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">edoA</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>=<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N0</span>);</span>
<span id="cb4-7"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xt_expr</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solA</span>);</span>
<span id="cb4-8"></span>
<span id="cb4-9"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">edoB</span>: <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k1</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xt_expr</span> - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>;</span>
<span id="cb4-10"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solB</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ic1</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">edoB</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>);</span>
<span id="cb4-11"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yt_expr</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">radcan</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solB</span>));</span>
<span id="cb4-12"></span>
<span id="cb4-13"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* chequeo: yt_expr debe satisfacer la EDO original */</span></span>
<span id="cb4-14"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">radcan</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yt_expr</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) - (<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k1</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xt_expr</span> - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yt_expr</span>));   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* debe dar 0 */</span></span>
<span id="cb4-15"></span>
<span id="cb4-16"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* ejemplo numerico: N0=100, k1=0.3, k2=0.1 */</span></span>
<span id="cb4-17"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vals</span>: [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N0</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k1</span>=<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.3</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k2</span>=<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>];</span>
<span id="cb4-18"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xnum</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) := <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">''</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vals</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xt_expr</span>));</span>
<span id="cb4-19"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ynum</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) := <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">''</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vals</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">yt_expr</span>));</span>
<span id="cb4-20"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">znum</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) := <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span> - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xnum</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ynum</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb4-21"></span>
<span id="cb4-22"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tmax_expr</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">log</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k1</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k2</span>)/(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k1</span>-<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k2</span>);</span>
<span id="cb4-23"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tmax_num</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">float</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vals</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tmax_expr</span>));</span>
<span id="cb4-24"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"t* = "</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tmax_num</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"  y(t*) = "</span>, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">float</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ynum</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tmax_num</span>)));</span>
<span id="cb4-25"></span>
<span id="cb4-26"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">load</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">draw</span>);</span>
<span id="cb4-27"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">draw2d</span>(</span>
<span id="cb4-28">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">terminal</span> = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">png</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">file_name</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"cadena"</span>,</span>
<span id="cb4-29">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xlabel</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"t"</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ylabel</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"cantidad"</span>,</span>
<span id="cb4-30">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">color</span> = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">blue</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">key</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"A(t)"</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">explicit</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xnum</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">30</span>),</span>
<span id="cb4-31">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">color</span> = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">red</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">key</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"B(t)"</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">explicit</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ynum</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">30</span>),</span>
<span id="cb4-32">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">color</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"dark-green"</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">key</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"C(t)"</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">explicit</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">znum</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">30</span>)</span>
<span id="cb4-33">);</span></code></pre></div></div>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Simulador — cadena de desintegración A → B → C">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Simulador — cadena de desintegración A → B → C
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:640px;margin:1em auto;font-family:sans-serif;">
  <canvas id="cad-canvas" width="580" height="380" style="width:100%;height:auto;background:#fff;"></canvas>
  <div style="display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-top:10px;">
    <label>Tasa $k_1$ ($A\to B$): <span id="cad-k1-val">0.30</span>
      <input type="range" id="cad-k1" min="0.02" max="1" step="0.01" value="0.3" style="width:100%;">
    </label>
    <label>Tasa $k_2$ ($B\to C$): <span id="cad-k2-val">0.10</span>
      <input type="range" id="cad-k2" min="0.02" max="1" step="0.01" value="0.1" style="width:100%;">
    </label>
  </div>
  <p style="font-size:0.9em;color:#555;margin-top:10px;">
    $N_0=100$ fijo (no cambia la forma de las curvas, solo la escala). Azul: $A(t)$; rojo: $B(t)$;
    verde: $C(t)$. El punto rojo marca el máximo de $B$
    ($t^*=$ <span id="cad-tstar">-</span>, $B_{max}=$ <span id="cad-ymax">-</span>). Prueba acercar
    $k_1$ y $k_2$: el máximo de $B$ se vuelve más ancho y bajo; con $k_1\gg k_2$, $B$ crece rápido y
    decae lento (cuello de botella en el segundo paso); con $k_1\ll k_2$ ocurre lo opuesto.
  </p>
</div>
<script>
(function(){
  const canvas = document.getElementById('cad-canvas');
  const ctx = canvas.getContext('2d');
  const k1s = document.getElementById('cad-k1');
  const k2s = document.getElementById('cad-k2');
  const k1valEl = document.getElementById('cad-k1-val');
  const k2valEl = document.getElementById('cad-k2-val');
  const tstarEl = document.getElementById('cad-tstar');
  const ymaxEl = document.getElementById('cad-ymax');

  const N0 = 100;
  const YMAX_FIJO = 100; // fijo, ya que N0 no cambia
  const W = canvas.width, H = canvas.height;
  const margin = {left: 55, right: 20, top: 30, bottom: 40};

  function A(t, k1){ return N0*Math.exp(-k1*t); }
  function B(t, k1, k2){
    if (Math.abs(k1-k2) < 1e-4) return N0*k1*t*Math.exp(-k1*t);
    return (k1*N0/(k2-k1))*(Math.exp(-k1*t) - Math.exp(-k2*t));
  }
  function C(t, k1, k2){ return N0 - A(t,k1) - B(t,k1,k2); }

  function peak(k1, k2){
    if (Math.abs(k1-k2) < 1e-4) return [1/k1, N0/Math.E];
    const ts = Math.log(k1/k2)/(k1-k2);
    return [ts, B(ts,k1,k2)];
  }

  function draw(){
    const k1 = parseFloat(k1s.value);
    const k2 = parseFloat(k2s.value);
    k1valEl.textContent = k1.toFixed(2);
    k2valEl.textContent = k2.toFixed(2);

    const [tstar, ymax] = peak(k1, k2);
    tstarEl.textContent = tstar.toFixed(2);
    ymaxEl.textContent = ymax.toFixed(1);

    const Tmax = Math.max(5/Math.min(k1,k2), 3*tstar);

    ctx.clearRect(0,0,W,H);
    const plotW = W - margin.left - margin.right;
    const plotH = H - margin.top - margin.bottom;

    function toPx(t, v){
      const px = margin.left + (t/Tmax) * plotW;
      const py = margin.top + plotH - (v/YMAX_FIJO) * plotH;
      return [px, py];
    }

    // ejes
    ctx.strokeStyle = '#333'; ctx.lineWidth = 1;
    ctx.beginPath();
    ctx.moveTo(margin.left, margin.top);
    ctx.lineTo(margin.left, margin.top + plotH);
    ctx.lineTo(margin.left + plotW, margin.top + plotH);
    ctx.stroke();

    function curva(fn, color){
      ctx.strokeStyle = color; ctx.lineWidth = 2.2;
      ctx.beginPath();
      let first = true;
      for (let t = 0; t <= Tmax; t += Tmax/300) {
        const [px, py] = toPx(t, fn(t));
        if (first) { ctx.moveTo(px,py); first = false; } else ctx.lineTo(px,py);
      }
      ctx.stroke();
    }

    curva((t) => A(t,k1), '#1f77b4');
    curva((t) => B(t,k1,k2), '#d62728');
    curva((t) => C(t,k1,k2), '#2f7d32');

    // punto maximo de B
    const [mx, my] = toPx(tstar, ymax);
    ctx.fillStyle = '#d62728';
    ctx.beginPath(); ctx.arc(mx, my, 4.5, 0, 2*Math.PI); ctx.fill();

    // leyenda
    const leg = [['A(t)','#1f77b4'], ['B(t)','#d62728'], ['C(t)','#2f7d32']];
    ctx.font = '12px sans-serif';
    leg.forEach(([label,color], i) => {
      const lx = margin.left + 10 + i*70, ly = margin.top - 12;
      ctx.fillStyle = color;
      ctx.fillRect(lx, ly-8, 10, 10);
      ctx.fillStyle = '#333';
      ctx.fillText(label, lx+14, ly);
    });

    // etiquetas de ejes
    ctx.fillStyle = '#333'; ctx.font = '12px sans-serif';
    ctx.fillText('t', margin.left + plotW - 8, margin.top + plotH + 20);
    ctx.save();
    ctx.translate(14, margin.top + plotH/2);
    ctx.rotate(-Math.PI/2);
    ctx.fillText('cantidad', 0, 0);
    ctx.restore();
    ctx.fillText('0', margin.left - 12, margin.top + plotH + 4);
  }

  [k1s, k2s].forEach(el => el.addEventListener('input', draw));
  draw();
})();
</script>
</div>
</div>
<div class="callout callout-style-default callout-important callout-titled" title="Tarea">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Importante</span>Tarea
</div>
</div>
<div class="callout-body-container callout-body">
<p>Hacer los ejercicios de la sección 9 (factores integrantes) y sección 10, problema 3 (Bernoulli) del Simmons, comprobando cada resultado con Maxima. Además, resolver la cadena de desintegración para el caso <img src="https://latex.codecogs.com/png.latex?k_1=k_2"> (integrando directamente, sin la fórmula general de arriba) y verificar que coincide con el límite <img src="https://latex.codecogs.com/png.latex?k_2%5Cto%20k_1"> de la solución obtenida.</p>
</div>
</div>


</section>

 ]]></description>
  <guid>https://arturosanjuan.xyz/cursos/odes/fintegrante/</guid>
  <pubDate>Sat, 29 Aug 2026 05:00:00 GMT</pubDate>
  <media:content url="https://arturosanjuan.xyz/cursos/odes/fintegrante/cadena.png" medium="image" type="image/png" height="120" width="144"/>
</item>
<item>
  <title>Coordenadas Polares</title>
  <dc:creator>Arturo Sanjuán</dc:creator>
  <link>https://arturosanjuan.xyz/cursos/odes/polares/</link>
  <description><![CDATA[ 




<section id="coordenadas-polares" class="level2" data-number="1">
<h2 data-number="1" class="anchored" data-anchor-id="coordenadas-polares"><span class="header-section-number">1</span> Coordenadas polares</h2>
<p>Un punto en el plano se puede describir con la distancia <img src="https://latex.codecogs.com/png.latex?r"> al origen (el <strong>polo</strong>) y el ángulo <img src="https://latex.codecogs.com/png.latex?%5Ctheta"> respecto al eje <img src="https://latex.codecogs.com/png.latex?x"> (el <strong>eje polar</strong>). La relación con las coordenadas cartesianas es</p>
<p><img src="https://latex.codecogs.com/png.latex?x%20=%20r%5Ccos%5Ctheta%20%5Cqquad%20y%20=%20r%5Csin%5Ctheta"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Applet — conversión entre coordenadas">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Applet — conversión entre coordenadas
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:560px;margin:1em auto;font-family:sans-serif;">
  <canvas id="pol-conv-canvas" width="480" height="420" style="width:100%;height:auto;background:#fff;"></canvas>
  <div style="display:flex;gap:16px;margin-top:8px;flex-wrap:wrap;">
    <label>r: <input type="range" id="pol-conv-r" min="0.5" max="4" step="0.05" value="2.5"></label>
    <label>θ: <input type="range" id="pol-conv-theta" min="0" max="360" step="1" value="50"></label>
  </div>
  <p id="pol-conv-label" style="font-size:0.9em;color:#555;margin-top:8px;"></p>
</div>
<script>
(function(){
  const canvas=document.getElementById('pol-conv-canvas');
  const ctx=canvas.getContext('2d');
  const rs=document.getElementById('pol-conv-r'), ts=document.getElementById('pol-conv-theta');
  const lbl=document.getElementById('pol-conv-label');
  const W=canvas.width,H=canvas.height,scale=70;
  function toPx(x,y){return [W/2+x*scale,H/2-y*scale];}
  function draw(){
    ctx.clearRect(0,0,W,H);
    ctx.strokeStyle='#ccc'; ctx.lineWidth=1;
    ctx.beginPath(); ctx.moveTo(0,H/2); ctx.lineTo(W,H/2); ctx.moveTo(W/2,0); ctx.lineTo(W/2,H); ctx.stroke();
    const r=parseFloat(rs.value), theta=parseFloat(ts.value)*Math.PI/180;
    const x=r*Math.cos(theta), y=r*Math.sin(theta);
    const [Px,Py]=toPx(x,y);
    const [Ox,Oy]=toPx(0,0);
    const [Ax,Ay]=toPx(x,0);

    // radio vector
    ctx.strokeStyle='#1f77b4'; ctx.lineWidth=2;
    ctx.beginPath(); ctx.moveTo(Ox,Oy); ctx.lineTo(Px,Py); ctx.stroke();
    // proyeccion x (y=0)
    ctx.strokeStyle='#d62728'; ctx.setLineDash([4,3]);
    ctx.beginPath(); ctx.moveTo(Px,Py); ctx.lineTo(Ax,Ay); ctx.stroke();
    ctx.beginPath(); ctx.moveTo(Ox,Oy); ctx.lineTo(Ax,Ay); ctx.stroke();
    ctx.setLineDash([]);
    // arco de theta
    ctx.strokeStyle='#2ca02c';
    ctx.beginPath(); ctx.arc(Ox,Oy,25,-theta,0, theta>0); ctx.stroke();

    ctx.fillStyle='#333';
    [[Px,Py],[Ax,Ay],[Ox,Oy]].forEach(p=>{ctx.beginPath();ctx.arc(p[0],p[1],3.5,0,2*Math.PI);ctx.fill();});
    ctx.font='13px sans-serif';
    ctx.fillText('P (r,θ)', Px+6, Py-6);
    ctx.fillText('(x,0)', Ax-10, Ay+16);
    ctx.fillText('θ', Ox+30, Oy-8);

    lbl.innerHTML = `r = ${r.toFixed(2)},  θ = ${(theta*180/Math.PI).toFixed(0)}°  →  x = r cos θ = ${x.toFixed(2)},  y = r sin θ = ${y.toFixed(2)}`;
  }
  rs.addEventListener('input',draw); ts.addEventListener('input',draw); draw();
})();
</script>
</div>
</div>
<section id="ejemplo-la-familia-r2acostheta" class="level3" data-number="1.1">
<h3 data-number="1.1" class="anchored" data-anchor-id="ejemplo-la-familia-r2acostheta"><span class="header-section-number">1.1</span> Ejemplo — la familia <img src="https://latex.codecogs.com/png.latex?r=2a%5Ccos%5Ctheta"></h3>
<p>Grafiquemos esta familia (¡la misma que ya trabajamos con la técnica de las trayectorias ortogonales!) para distintos rayos <img src="https://latex.codecogs.com/png.latex?%5Ctheta">, y construyamos la tabla de valores.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Applet — r = 2a cos θ, con tabla de rayos">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Applet — r = 2a cos θ, con tabla de rayos
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:640px;margin:1em auto;font-family:sans-serif;">
  <canvas id="pol-2acos-canvas" width="480" height="420" style="width:100%;height:auto;background:#fff;"></canvas>
  <label>a: <input type="range" id="pol-2acos-a" min="0.5" max="3" step="0.1" value="1.5" style="width:100%;"></label>
  
<table id="pol-2acos-table" class="caption-top" style="width:100%;border-collapse:collapse;margin-top:10px;font-size:0.85em;text-align:center;">
<thead>
<tr class="header">
<th data-quarto-table-cell-role="th" style="border-bottom: 1px solid #ccc">θ</th>
</tr>
</thead>
<tbody>
</tbody>
</table>

</div>
<script>
(function(){
  const canvas=document.getElementById('pol-2acos-canvas');
  const ctx=canvas.getContext('2d');
  const as=document.getElementById('pol-2acos-a');
  const table=document.getElementById('pol-2acos-table');
  const W=canvas.width,H=canvas.height,scale=60;
  function toPx(x,y){return [W/2+x*scale,H/2-y*scale];}
  const rays_deg=[-60,-45,-30,0,30,45,60,90];

  function draw(){
    ctx.clearRect(0,0,W,H);
    ctx.strokeStyle='#ccc'; ctx.lineWidth=1;
    ctx.beginPath(); ctx.moveTo(0,H/2); ctx.lineTo(W,H/2); ctx.moveTo(W/2,0); ctx.lineTo(W/2,H); ctx.stroke();
    const a=parseFloat(as.value);

    // curva
    ctx.strokeStyle='#1f77b4'; ctx.lineWidth=2.5;
    ctx.beginPath();
    let first=true;
    for(let t=-Math.PI/2;t<=Math.PI/2+0.01;t+=0.02){
      const r=2*a*Math.cos(t);
      const [px,py]=toPx(r*Math.cos(t), r*Math.sin(t));
      if(first){ctx.moveTo(px,py);first=false;} else ctx.lineTo(px,py);
    }
    ctx.stroke();

    // rayos y puntos
    let rows='<tr><td>θ (grados)</td>' + rays_deg.map(d=>`<td>${d}°</td>`).join('') + '</tr>';
    rows += '<tr><td>r = 2a cos θ</td>' + rays_deg.map(d=>{
      const t=d*Math.PI/180, r=2*a*Math.cos(t);
      return `<td>${r.toFixed(2)}</td>`;
    }).join('') + '</tr>';
    table.querySelector('tbody').innerHTML = rows;

    ctx.strokeStyle='#f0c0c0';
    rays_deg.forEach(d=>{
      const t=d*Math.PI/180;
      const [x1,y1]=toPx(6*Math.cos(t),6*Math.sin(t));
      const [x2,y2]=toPx(0,0);
      ctx.beginPath(); ctx.moveTo(x1,y1); ctx.lineTo(x2,y2); ctx.stroke();
      const r=2*a*Math.cos(t);
      const [px,py]=toPx(r*Math.cos(t), r*Math.sin(t));
      ctx.fillStyle='#d62728'; ctx.beginPath(); ctx.arc(px,py,3.5,0,2*Math.PI); ctx.fill();
    });
  }
  as.addEventListener('input',draw); draw();
})();
</script>
</div>
</div>
</section>
<section id="ejemplo-3-apostol-vol.-1-p.-136-la-lemniscata-de-bernoulli" class="level3" data-number="1.2">
<h3 data-number="1.2" class="anchored" data-anchor-id="ejemplo-3-apostol-vol.-1-p.-136-la-lemniscata-de-bernoulli"><span class="header-section-number">1.2</span> Ejemplo 3 (Apostol, Vol. 1, p.&nbsp;136) — la lemniscata de Bernoulli</h3>
<p>Pasar a coordenadas polares la ecuación <img src="https://latex.codecogs.com/png.latex?(x%5E2+y%5E2)%5E2%20=%20x%5E2-y%5E2">, con <img src="https://latex.codecogs.com/png.latex?y%5E2%5Cleq%20x%5E2">.</p>
<p>Con <img src="https://latex.codecogs.com/png.latex?x=r%5Ccos%5Ctheta">, <img src="https://latex.codecogs.com/png.latex?y=r%5Csin%5Ctheta">, <img src="https://latex.codecogs.com/png.latex?x%5E2+y%5E2=r%5E2">, la ecuación se convierte en</p>
<p><img src="https://latex.codecogs.com/png.latex?r%5E4%20=%20r%5E2(%5Ccos%5E2%5Ctheta-%5Csin%5E2%5Ctheta)%20=%20r%5E2%5Ccos(2%5Ctheta)"></p>
<p><img src="https://latex.codecogs.com/png.latex?%5CLongrightarrow%5Cquad%20r%5E2%20=%20%5Ccos(2%5Ctheta)"></p>
<p>que solo tiene sentido si <img src="https://latex.codecogs.com/png.latex?%5Ccos(2%5Ctheta)%5Cgeq0">, es decir <img src="https://latex.codecogs.com/png.latex?2%5Ctheta%5Cin%5Cleft%5B-%5Cdfrac%5Cpi2,%5Cdfrac%5Cpi2%5Cright%5D%20%5CRightarrow%20%5Ctheta%5Cin%5Cleft%5B-%5Cdfrac%5Cpi4,%5Cdfrac%5Cpi4%5Cright%5D"> (más su reflejo por <img src="https://latex.codecogs.com/png.latex?%5Cpi">, para el segundo lóbulo). La figura que se genera se conoce como la <strong>lemniscata de Bernoulli</strong>, y se asocia al símbolo <img src="https://latex.codecogs.com/png.latex?%5Cinfty">.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Applet — explorador de curvas polares clásicas">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Applet — explorador de curvas polares clásicas
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:560px;margin:1em auto;font-family:sans-serif;">
  <canvas id="pol-explorer-canvas" width="480" height="480" style="width:100%;height:auto;background:#fff;"></canvas>
  <div style="margin-top:8px;">
    <select id="pol-explorer-type" style="width:100%;padding:4px;">
      <option value="spiral">Espiral de Arquímedes: r = aθ</option>
      <option value="rose">Rosa/trébol: r = a·cos(nθ)</option>
      <option value="cardioid">Cardioide: r = a(1+cosθ)</option>
      <option value="limacon">Caracol de Pascal: r = b + a·cosθ</option>
    </select>
  </div>
  <div style="display:flex;gap:16px;margin-top:8px;flex-wrap:wrap;">
    <label>a: <input type="range" id="pol-explorer-a" min="0.2" max="3" step="0.1" value="1.5"></label>
    <label id="pol-explorer-n-label">n: <input type="range" id="pol-explorer-n" min="1" max="8" step="1" value="3"></label>
    <label id="pol-explorer-b-label">b: <input type="range" id="pol-explorer-b" min="-2" max="2" step="0.1" value="1"></label>
  </div>
</div>
<script>
(function(){
  const canvas=document.getElementById('pol-explorer-canvas');
  const ctx=canvas.getContext('2d');
  const typeSel=document.getElementById('pol-explorer-type');
  const as=document.getElementById('pol-explorer-a'), ns=document.getElementById('pol-explorer-n'), bs=document.getElementById('pol-explorer-b');
  const nLabel=document.getElementById('pol-explorer-n-label'), bLabel=document.getElementById('pol-explorer-b-label');
  const W=canvas.width,H=canvas.height;
  function draw(){
    const type=typeSel.value;
    nLabel.style.display = (type==='rose') ? 'inline' : 'none';
    bLabel.style.display = (type==='limacon') ? 'inline' : 'none';
    const a=parseFloat(as.value), n=parseInt(ns.value), b=parseFloat(bs.value);

    let rmax = 6;
    if(type==='spiral') rmax = a*4*Math.PI;
    const scale = Math.min(W,H)/2/ (rmax*1.15);
    function toPx(x,y){return [W/2+x*scale,H/2-y*scale];}

    ctx.clearRect(0,0,W,H);
    ctx.strokeStyle='#ccc'; ctx.lineWidth=1;
    ctx.beginPath(); ctx.moveTo(0,H/2); ctx.lineTo(W,H/2); ctx.moveTo(W/2,0); ctx.lineTo(W/2,H); ctx.stroke();

    let tmax = 2*Math.PI;
    if(type==='spiral') tmax = 4*Math.PI;

    ctx.strokeStyle='#1f77b4'; ctx.lineWidth=2.2;
    ctx.beginPath();
    let first=true;
    for(let t=0;t<=tmax+0.01;t+=0.01){
      let r;
      if(type==='spiral') r=a*t;
      else if(type==='rose') r=a*Math.cos(n*t);
      else if(type==='cardioid') r=a*(1+Math.cos(t));
      else r=b+a*Math.cos(t);
      const [px,py]=toPx(r*Math.cos(t), r*Math.sin(t));
      if(first){ctx.moveTo(px,py);first=false;} else ctx.lineTo(px,py);
    }
    ctx.stroke();
  }
  [typeSel,as,ns,bs].forEach(el=>el.addEventListener('input',draw));
  draw();
})();
</script>
</div>
</div>
</section>
</section>
<section id="pendientes-en-coordenadas-polares" class="level2" data-number="2">
<h2 data-number="2" class="anchored" data-anchor-id="pendientes-en-coordenadas-polares"><span class="header-section-number">2</span> Pendientes en coordenadas polares</h2>
<p>Con <img src="https://latex.codecogs.com/png.latex?%5Cvarphi"> denotamos el ángulo de la pendiente de la recta tangente en el punto <img src="https://latex.codecogs.com/png.latex?(r,%5Ctheta)">; entonces <img src="https://latex.codecogs.com/png.latex?%5Ctan%5Cvarphi%20=%20y'">. Denotamos <img src="https://latex.codecogs.com/png.latex?r'=dr/d%5Ctheta">. Ya dedujimos (viendo <img src="https://latex.codecogs.com/png.latex?x=r%5Ccos%5Ctheta">, <img src="https://latex.codecogs.com/png.latex?y=r%5Csin%5Ctheta"> como una parametrización) que</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Ctan%5Cvarphi%20=%20y'%20=%20%5Cfrac%7Br'%5Csin%5Ctheta%20+%20r%5Ccos%5Ctheta%7D%7Br'%5Ccos%5Ctheta%20-%20r%5Csin%5Ctheta%7D"></p>
<p>Si despejamos <img src="https://latex.codecogs.com/png.latex?r'"> de esta ecuación:</p>
<p><img src="https://latex.codecogs.com/png.latex?r'%20=%20%5Cfrac%7Br(%5Ccos%5Ctheta+%5Ctan%5Cvarphi%5Csin%5Ctheta)%7D%7B%5Ccos%5Ctheta%5Ctan%5Cvarphi%20-%20%5Csin%5Ctheta%7D%20=%20F(r,%5Ctheta)"></p>
<p>Esta es la ecuación diferencial asociada a las pendientes de las rectas tangentes de la familia original. Para la familia <strong>ortogonal</strong>, reemplazamos <img src="https://latex.codecogs.com/png.latex?%5Ctan%5Cvarphi"> por <img src="https://latex.codecogs.com/png.latex?-1/%5Ctan%5Cvarphi"> (la pendiente perpendicular):</p>
<p><img src="https://latex.codecogs.com/png.latex?r'%20=%20%5Cfrac%7Br(%5Csin%5Ctheta%20-%20%5Ccos%5Ctheta%5Ctan%5Cvarphi)%7D%7B%5Ccos%5Ctheta+%5Csin%5Ctheta%5Ctan%5Cvarphi%7D%20=%20G(r,%5Ctheta)"></p>
<p>Y si calculamos directamente <img src="https://latex.codecogs.com/png.latex?-r%5E2/F(r,%5Ctheta)">, coincide exactamente con <img src="https://latex.codecogs.com/png.latex?G(r,%5Ctheta)">. Por eso: <strong>si la familia de rectas tangentes satisface <img src="https://latex.codecogs.com/png.latex?r'=F(r,%5Ctheta)">, la ecuación de las curvas ortogonales satisface <img src="https://latex.codecogs.com/png.latex?r'=-r%5E2/F(r,%5Ctheta)"></strong> — queda demostrado.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Hacer las cuentas — código Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Hacer las cuentas — código Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb1-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb1-3"></span>
<span id="cb1-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* pendiente cartesiana en terminos de r, theta, r'=dr/dtheta */</span></span>
<span id="cb1-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tanphi</span>: (<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">rp</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sin</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">theta</span>)+<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">r</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cos</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">theta</span>)) / (<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">rp</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cos</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">theta</span>)-<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">r</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sin</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">theta</span>));</span>
<span id="cb1-6"></span>
<span id="cb1-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* despejamos rp = F(r,theta) */</span></span>
<span id="cb1-8"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">F</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">solve</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tanphi</span> = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tphi</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">rp</span>)[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>]);</span>
<span id="cb1-9"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">F</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">F</span>);</span>
<span id="cb1-10"></span>
<span id="cb1-11"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* familia ortogonal: reemplazamos tphi por -1/tphi */</span></span>
<span id="cb1-12"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">G</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tphi</span> = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">-1</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tphi</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">F</span>));</span>
<span id="cb1-13"></span>
<span id="cb1-14"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* chequeo: -r^2/F debe coincidir con G */</span></span>
<span id="cb1-15"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(-<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">r</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">F</span> - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">G</span>);   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* debe dar 0 */</span></span></code></pre></div></div>
</div>
</div>
<section id="aplicando-la-técnica-a-r2acostheta" class="level3" data-number="2.1">
<h3 data-number="2.1" class="anchored" data-anchor-id="aplicando-la-técnica-a-r2acostheta"><span class="header-section-number">2.1</span> Aplicando la técnica a <img src="https://latex.codecogs.com/png.latex?r=2a%5Ccos%5Ctheta"></h3>
<p><img src="https://latex.codecogs.com/png.latex?%5Ctan%5Cvarphi%20=%20%5Cfrac%7Br'%5Csin%5Ctheta+r%5Ccos%5Ctheta%7D%7Br'%5Ccos%5Ctheta-r%5Csin%5Ctheta%7D%20=%20-%5Ccot(2%5Ctheta)"></p>
<p>(la última identidad se puede probar con algo de paciencia, sustituyendo <img src="https://latex.codecogs.com/png.latex?r=2a%5Ccos%5Ctheta">, <img src="https://latex.codecogs.com/png.latex?r'=-2a%5Csin%5Ctheta"> y usando las identidades del ángulo doble). Y eliminando <img src="https://latex.codecogs.com/png.latex?a"> de <img src="https://latex.codecogs.com/png.latex?r'=-2a%5Csin%5Ctheta"> con <img src="https://latex.codecogs.com/png.latex?a=r/(2%5Ccos%5Ctheta)">:</p>
<p><img src="https://latex.codecogs.com/png.latex?F(r,%5Ctheta)%20=%20-r%5Ctan%5Ctheta"></p>
<p>Entonces la ecuación a resolver para la familia ortogonal es</p>
<p><img src="https://latex.codecogs.com/png.latex?r'%20=%20%5Cfrac%7B-r%5E2%7D%7B-r%5Ctan%5Ctheta%7D%20=%20r%5Ccot%5Ctheta%20%5Cquad%5CLongrightarrow%5Cquad%20%5Cfrac%7Bdr%7D%7Br%7D=%5Ccot%5Ctheta%5C,d%5Ctheta%20%5Cquad%5CLongrightarrow%5Cquad%20%5Cln%20r%20=%20%5Cln(%5Csin%5Ctheta)+C%20%5Cquad%5CLongrightarrow%5Cquad%20r%20=%20C%5Csin%5Ctheta"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Applet — simulación de la familia ortogonal, variando C">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Applet — simulación de la familia ortogonal, variando C
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:560px;margin:1em auto;font-family:sans-serif;">
  <canvas id="pol-orth-canvas" width="480" height="420" style="width:100%;height:auto;background:#fff;"></canvas>
  <div style="display:flex;gap:16px;margin-top:8px;flex-wrap:wrap;">
    <label>a (r=2a cos θ): <input type="range" id="pol-orth-a" min="0.3" max="2.5" step="0.1" value="1.2"></label>
    <label>C (r=C sin θ): <input type="range" id="pol-orth-C" min="0.3" max="2.5" step="0.1" value="1.2"></label>
  </div>
</div>
<script>
(function(){
  const canvas=document.getElementById('pol-orth-canvas');
  const ctx=canvas.getContext('2d');
  const as=document.getElementById('pol-orth-a'), cs=document.getElementById('pol-orth-C');
  const W=canvas.width,H=canvas.height,scale=70;
  function toPx(x,y){return [W/2+x*scale,H/2-y*scale];}
  function drawCircleFamily(k, dir, color, lw){
    // dir=1: r=2k cos(theta); dir=0: r=k sin(theta)
    ctx.strokeStyle=color; ctx.lineWidth=lw;
    ctx.beginPath();
    let first=true;
    for(let t=0;t<=2*Math.PI+0.01;t+=0.02){
      const r = dir? 2*k*Math.cos(t) : k*Math.sin(t);
      const [px,py]=toPx(r*Math.cos(t), r*Math.sin(t));
      if(first){ctx.moveTo(px,py);first=false;} else ctx.lineTo(px,py);
    }
    ctx.stroke();
  }
  function draw(){
    ctx.clearRect(0,0,W,H);
    ctx.strokeStyle='#ccc'; ctx.lineWidth=1;
    ctx.beginPath(); ctx.moveTo(0,H/2); ctx.lineTo(W,H/2); ctx.moveTo(W/2,0); ctx.lineTo(W/2,H); ctx.stroke();

    [0.4,0.8,1.6,2.2].forEach(k=>drawCircleFamily(k,1,'#ddd',1));
    [0.4,0.8,1.6,2.2].forEach(k=>drawCircleFamily(k,0,'#f3c6c6',1));

    const a=parseFloat(as.value), C=parseFloat(cs.value);
    drawCircleFamily(a,1,'#1f77b4',2.5);
    drawCircleFamily(C,0,'#d62728',2.5);

    // interseccion (ambas circunferencias pasan por el origen; la otra interseccion:
    // r=2a cos t = C sin t  -> tan t = 2a/C
    const t = Math.atan2(2*a, C);
    const r = C*Math.sin(t);
    const [px,py]=toPx(r*Math.cos(t), r*Math.sin(t));
    ctx.fillStyle='#333'; ctx.beginPath(); ctx.arc(px,py,4,0,2*Math.PI); ctx.fill();

    ctx.fillStyle='#000'; ctx.font='13px sans-serif';
    ctx.fillText('a = '+a.toFixed(2)+',  C = '+C.toFixed(2), 10, 18);
  }
  as.addEventListener('input',draw); cs.addEventListener('input',draw); draw();
})();
</script>
</div>
</div>
</section>
<section id="un-enfoque-más-elegante-el-ángulo-psi" class="level3" data-number="2.2">
<h3 data-number="2.2" class="anchored" data-anchor-id="un-enfoque-más-elegante-el-ángulo-psi"><span class="header-section-number">2.2</span> Un enfoque más elegante: el ángulo <img src="https://latex.codecogs.com/png.latex?%5Cpsi"></h3>
<p>Este enfoque (con <img src="https://latex.codecogs.com/png.latex?%5Ctan%5Cvarphi">) no es el más acertado necesariamente. En vez de <img src="https://latex.codecogs.com/png.latex?%5Cvarphi"> (ángulo de la tangente con el eje <img src="https://latex.codecogs.com/png.latex?x">), conviene trabajar con <img src="https://latex.codecogs.com/png.latex?%5Cpsi">, el ángulo <strong>entre el radio vector y la recta tangente</strong>.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Applet — deducción de tan ψ con P, Q, N">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Applet — deducción de tan ψ con P, Q, N
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:560px;margin:1em auto;font-family:sans-serif;">
  <canvas id="pol-pqn-canvas" width="480" height="380" style="width:100%;height:auto;background:#fff;"></canvas>
  <label>dθ (ilustrativo, no infinitesimal real): <input type="range" id="pol-pqn-dtheta" min="3" max="35" step="1" value="20" style="width:100%;"></label>
  <p style="font-size:0.9em;color:#555;margin-top:8px;">
    Al achicar dθ, el triángulo $OPQ$ se hace más y más parecido al triángulo rectángulo $PNQ$, con $PN\approx dr$ y $QN\approx r\,d\theta$ — de ahí $\tan\psi = r\,d\theta/dr$.
  </p>
</div>
<script>
(function(){
  const canvas=document.getElementById('pol-pqn-canvas');
  const ctx=canvas.getContext('2d');
  const ds=document.getElementById('pol-pqn-dtheta');
  const W=canvas.width,H=canvas.height,scale=150;
  const Ox=60, Oy=H-40;
  function toPx(x,y){return [Ox+x*scale,Oy-y*scale];}
  function draw(){
    ctx.clearRect(0,0,W,H);
    const theta0=0.5, r0=1.3;
    const dtheta=parseFloat(ds.value)*Math.PI/180;
    const r1=r0+0.35; // r+dr fijo para que se vea bien
    const theta1=theta0+dtheta;

    const O=[0,0];
    const P=[r0*Math.cos(theta0), r0*Math.sin(theta0)];
    const Q=[r1*Math.cos(theta1), r1*Math.sin(theta1)];
    // N: pie de perpendicular desde Q a la recta OP
    const dirOP=[Math.cos(theta0), Math.sin(theta0)];
    const ON = Q[0]*dirOP[0]+Q[1]*dirOP[1];
    const N=[ON*dirOP[0], ON*dirOP[1]];

    const [Opx,Opy]=toPx(...O);
    const [Ppx,Ppy]=toPx(...P);
    const [Qpx,Qpy]=toPx(...Q);
    const [Npx,Npy]=toPx(...N);

    ctx.strokeStyle='#1f77b4'; ctx.lineWidth=2;
    ctx.beginPath(); ctx.moveTo(Opx,Opy); ctx.lineTo(Npx,Npy); ctx.stroke(); // O-P-N misma recta
    ctx.strokeStyle='#d62728'; ctx.lineWidth=2;
    ctx.beginPath(); ctx.moveTo(Opx,Opy); ctx.lineTo(Qpx,Qpy); ctx.stroke(); // O-Q
    ctx.strokeStyle='#2ca02c'; ctx.lineWidth=2;
    ctx.beginPath(); ctx.moveTo(Ppx,Ppy); ctx.lineTo(Qpx,Qpy); ctx.stroke(); // P-Q (~tangente)
    ctx.strokeStyle='#999'; ctx.setLineDash([3,3]);
    ctx.beginPath(); ctx.moveTo(Qpx,Qpy); ctx.lineTo(Npx,Npy); ctx.stroke(); // Q-N (perpendicular)
    ctx.setLineDash([]);

    ctx.fillStyle='#333';
    [[Opx,Opy],[Ppx,Ppy],[Qpx,Qpy],[Npx,Npy]].forEach(p=>{ctx.beginPath();ctx.arc(p[0],p[1],3.5,0,2*Math.PI);ctx.fill();});
    ctx.font='13px sans-serif'; ctx.fillStyle='#000';
    ctx.fillText('O', Opx-14, Opy+4);
    ctx.fillText('P (r)', Ppx+6, Ppy-6);
    ctx.fillText('Q (r+dr)', Qpx+6, Qpy-6);
    ctx.fillText('N', Npx+6, Npy+14);
    ctx.fillText('dθ', Opx+25, Opy-15);
    ctx.fillText('tan ψ = QN/PN ≈ (r dθ)/dr', 10, 20);
  }
  ds.addEventListener('input',draw); draw();
})();
</script>
</div>
</div>
<p>Analíticamente se comprueba con <img src="https://latex.codecogs.com/png.latex?%5Ctan%5Cpsi=%5Ctan(%5Cvarphi-%5Ctheta)=%5Cdfrac%7B%5Ctan%5Cvarphi-%5Ctan%5Ctheta%7D%7B1+%5Ctan%5Cvarphi%5Ctan%5Ctheta%7D">, sustituyendo <img src="https://latex.codecogs.com/png.latex?%5Ctan%5Cvarphi"> (la fórmula de arriba) y <img src="https://latex.codecogs.com/png.latex?%5Ctan%5Ctheta=y/x">, y simplificando (queda, después de algo de álgebra, <img src="https://latex.codecogs.com/png.latex?%5Ctan%5Cpsi%20=%20r/r'">, es decir <img src="https://latex.codecogs.com/png.latex?%5Ctan%5Cpsi%20=%20r%5C,d%5Ctheta/dr">).</p>
<p>Como <img src="https://latex.codecogs.com/png.latex?%5Cpsi+%5Cpi/2"> es perpendicular a <img src="https://latex.codecogs.com/png.latex?%5Cpsi"> y <img src="https://latex.codecogs.com/png.latex?%5Ctan(%5Cpsi+%5Cpi/2)=-%5Ccot%5Cpsi">, la ecuación de las familias ortogonales, en esta notación, es</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cleft(r%5Cfrac%7Bd%5Ctheta%7D%7Bdr%7D%5Cright)_%7B%5Ctext%7Bortogonal%7D%7D%20=%20-%5Cfrac%7B1%7D%7Br%5C,d%5Ctheta/dr%7D"></p>
<p>Si hacemos esto con <img src="https://latex.codecogs.com/png.latex?r=2a%5Ccos%5Ctheta">: <img src="https://latex.codecogs.com/png.latex?r'=-2a%5Csin%5Ctheta">, y reemplazando <img src="https://latex.codecogs.com/png.latex?a"> obtenemos <img src="https://latex.codecogs.com/png.latex?r%5C,d%5Ctheta/dr%20=%20-%5Ccot%5Ctheta"> — <strong>esta</strong> es la forma en la que <strong>Simmons</strong> presenta la ecuación a resolver (no es una ecuación distinta a la de arriba, es la misma, solo escrita “boca abajo”).</p>
<div class="callout callout-style-default callout-tip callout-titled" title="Ejercicio">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Ejercicio
</div>
</div>
<div class="callout-body-container callout-body">
<p>Usa esta manera de pensar (con <img src="https://latex.codecogs.com/png.latex?%5Cpsi">) para resolver el problema 3 (el de <img src="https://latex.codecogs.com/png.latex?r=2c%5Csin%5Ctheta">, en Familias Ortogonales) de una forma más elegante. Con esto ya puedes hacer todos los ejercicios de la sección.</p>
</div>
</div>
</section>
</section>
<section id="bonus-cálculo-de-área-en-coordenadas-polares" class="level2" data-number="3">
<h2 data-number="3" class="anchored" data-anchor-id="bonus-cálculo-de-área-en-coordenadas-polares"><span class="header-section-number">3</span> Bonus: cálculo de área en coordenadas polares</h2>
<p>Aproximamos el área bajo una curva <img src="https://latex.codecogs.com/png.latex?r=f(%5Ctheta)"> con sectores circulares delgados: el área de cada sector de ángulo <img src="https://latex.codecogs.com/png.latex?d%5Ctheta"> es <img src="https://latex.codecogs.com/png.latex?%5Ctfrac12%20r%5E2%5C,d%5Ctheta">, así que</p>
<p><img src="https://latex.codecogs.com/png.latex?A%20=%20%5Cfrac12%5Cint_%5Calpha%5E%5Cbeta%20r(%5Ctheta)%5E2%5C,d%5Ctheta"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Applet — aproximación por sectores">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Applet — aproximación por sectores
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:520px;margin:1em auto;font-family:sans-serif;">
  <canvas id="pol-area-canvas" width="440" height="440" style="width:100%;height:auto;background:#fff;"></canvas>
  <label>Número de sectores n: <input type="range" id="pol-area-n" min="3" max="60" step="1" value="8" style="width:100%;"></label>
  <p id="pol-area-label" style="font-size:0.9em;color:#555;margin-top:8px;"></p>
</div>
<script>
(function(){
  const canvas=document.getElementById('pol-area-canvas');
  const ctx=canvas.getContext('2d');
  const ns=document.getElementById('pol-area-n');
  const lbl=document.getElementById('pol-area-label');
  const W=canvas.width,H=canvas.height,scale=350;
  const Ox=W/2, Oy=H*0.85;
  function toPx(x,y){return [Ox+x*scale,Oy-y*scale];}
  function r(t){return Math.sin(t);}
  function draw(){
    ctx.clearRect(0,0,W,H);
    const n=parseInt(ns.value);
    const dt=Math.PI/n;
    let approxArea=0;
    for(let i=0;i<n;i++){
      const t0=i*dt, t1=(i+1)*dt, tm=(t0+t1)/2;
      const rm=r(tm);
      approxArea += 0.5*rm*rm*dt;
      const [Opx,Opy]=toPx(0,0);
      const [P1x,P1y]=toPx(rm*Math.cos(t0), rm*Math.sin(t0));
      const [P2x,P2y]=toPx(rm*Math.cos(t1), rm*Math.sin(t1));
      ctx.fillStyle='rgba(31,119,180,0.35)'; ctx.strokeStyle='#1f77b4'; ctx.lineWidth=1;
      ctx.beginPath(); ctx.moveTo(Opx,Opy); ctx.lineTo(P1x,P1y); ctx.lineTo(P2x,P2y); ctx.closePath();
      ctx.fill(); ctx.stroke();
    }
    // curva real
    ctx.strokeStyle='#d62728'; ctx.lineWidth=2;
    ctx.beginPath();
    let first=true;
    for(let t=0;t<=Math.PI;t+=0.01){
      const rr=r(t);
      const [px,py]=toPx(rr*Math.cos(t), rr*Math.sin(t));
      if(first){ctx.moveTo(px,py);first=false;} else ctx.lineTo(px,py);
    }
    ctx.stroke();
    lbl.innerHTML = `Área aproximada con ${n} sectores: ${approxArea.toFixed(5)}  (valor exacto: π/4 ≈ ${(Math.PI/4).toFixed(5)})`;
  }
  ns.addEventListener('input',draw); draw();
})();
</script>
</div>
</div>
<section id="ejemplo-área-de-un-pétalo-de-rsintheta" class="level3" data-number="3.1">
<h3 data-number="3.1" class="anchored" data-anchor-id="ejemplo-área-de-un-pétalo-de-rsintheta"><span class="header-section-number">3.1</span> Ejemplo — área de un pétalo de <img src="https://latex.codecogs.com/png.latex?r=%5Csin%5Ctheta"></h3>
<p>Para <img src="https://latex.codecogs.com/png.latex?%5Ctheta%5Cin%5B0,%5Cpi/2%5D">:</p>
<p><img src="https://latex.codecogs.com/png.latex?A%20=%20%5Cfrac12%5Cint_0%5E%7B%5Cpi/2%7D%20%5Csin%5E2%5Ctheta%5C,d%5Ctheta%20=%20%5Cfrac14%5Cint_0%5E%7B%5Cpi/2%7D(1-%5Ccos2%5Ctheta)%5C,d%5Ctheta%20=%20%5Cfrac14%5Cleft%5B%5Ctheta-%5Cfrac12%5Csin2%5Ctheta%5Cright%5D_0%5E%7B%5Cpi/2%7D%20=%20%5Cfrac%7B%5Cpi%7D%7B8%7D"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Hacer las cuentas — código Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Hacer las cuentas — código Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb2-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">integrate</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>/<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sin</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">theta</span>)^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">theta</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">%pi</span>/<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>);</span></code></pre></div></div>
</div>
</div>
<div class="callout callout-style-default callout-important callout-titled" title="Tarea">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Importante</span>Tarea
</div>
</div>
<div class="callout-body-container callout-body">
<p>Dibujar a mano (y luego verificar en GeoGebra) y calcular el área del cardioide <img src="https://latex.codecogs.com/png.latex?r=a(1+%5Ccos%5Ctheta)"> y del caracol <img src="https://latex.codecogs.com/png.latex?r=2+%5Ccos%5Ctheta">, con <img src="https://latex.codecogs.com/png.latex?%5Ctheta%5Cin%5B0,2%5Cpi%5D">. Terminar <em>todos</em> los ejercicios de la sección de curvas ortogonales.</p>
</div>
</div>


</section>
</section>

 ]]></description>
  <guid>https://arturosanjuan.xyz/cursos/odes/polares/</guid>
  <pubDate>Sun, 23 Aug 2026 05:00:00 GMT</pubDate>
  <media:content url="https://arturosanjuan.xyz/cursos/odes/polares/flor.png" medium="image" type="image/png" height="151" width="144"/>
</item>
<item>
  <title>Problemas de Movimiento</title>
  <dc:creator>Arturo Sanjuán</dc:creator>
  <link>https://arturosanjuan.xyz/cursos/odes/movimiento/</link>
  <description><![CDATA[ 




<section id="de-galileo-a-newton-la-ecuación-del-movimiento" class="level2" data-number="1">
<h2 data-number="1" class="anchored" data-anchor-id="de-galileo-a-newton-la-ecuación-del-movimiento"><span class="header-section-number">1</span> De Galileo a Newton: la ecuación del movimiento</h2>
<p>La segunda ley de Newton, en su versión abreviada, dice que la fuerza aplicada sobre un objeto es proporcional a la aceleración que produce, y la constante de proporcionalidad es la masa:</p>
<p><img src="https://latex.codecogs.com/png.latex?F%20=%20ma"></p>
<p>Esto es más profundo de lo que parece: si conocemos la fuerza, y la aceleración es una derivada (de hecho, la <em>segunda</em> derivada de la posición respecto al tiempo — ver la introducción del curso), entonces <img src="https://latex.codecogs.com/png.latex?F=ma"> <strong>es</strong> una ecuación diferencial. Conocer la fuerza es conocer el movimiento.</p>
<p>Galileo demostró experimentalmente, usando planos inclinados, que la aceleración de un cuerpo que cae es constante e independiente de su masa: <img src="https://latex.codecogs.com/png.latex?g%5Capprox%209.8%5C%20%5Ctext%7Bm/s%7D%5E2">. Newton, con su ley de gravitación universal, explicó <em>por qué</em>: cerca de la superficie terrestre, la fuerza gravitacional sobre un objeto de masa <img src="https://latex.codecogs.com/png.latex?m"> es</p>
<p><img src="https://latex.codecogs.com/png.latex?F%20=%20mg"></p>
<p>y como <img src="https://latex.codecogs.com/png.latex?F=m%5Cddot%20x"> también, la masa se cancela y queda <img src="https://latex.codecogs.com/png.latex?%5Cddot%20x%20=%20g"> para <em>cualquier</em> objeto — el resultado empírico de Galileo, ahora derivado de una ley más profunda.</p>
</section>
<section id="caída-libre-sin-resistencia" class="level2" data-number="2">
<h2 data-number="2" class="anchored" data-anchor-id="caída-libre-sin-resistencia"><span class="header-section-number">2</span> Caída libre sin resistencia</h2>
<p>Partiendo de <img src="https://latex.codecogs.com/png.latex?%5Cddot%20x%20=%20g"> e integrando dos veces:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cdot%20x(t)%20=%20gt%20+%20v_0,%20%5Cqquad%20x(t)%20=%20x_0%20+%20v_0t%20+%20%5Cfrac%7B1%7D%7B2%7Dgt%5E2"></p>
<p>Si el cuerpo cae desde el reposo (<img src="https://latex.codecogs.com/png.latex?v_0=0">) y tomamos el origen en el punto de partida (<img src="https://latex.codecogs.com/png.latex?x_0=0">), con <img src="https://latex.codecogs.com/png.latex?x"> midiendo la distancia recorrida hacia abajo:</p>
<p><img src="https://latex.codecogs.com/png.latex?x(t)%20=%20%5Cfrac%7B1%7D%7B2%7Dgt%5E2,%20%5Cqquad%20v(t)%20=%20gt"></p>
<p>Eliminando <img src="https://latex.codecogs.com/png.latex?t"> entre las dos ecuaciones (<img src="https://latex.codecogs.com/png.latex?t=v/g">) se obtiene una relación directa entre velocidad y distancia recorrida, sin pasar por el tiempo:</p>
<p><img src="https://latex.codecogs.com/png.latex?v%20=%20%5Csqrt%7B2gx%7D"></p>
<div class="callout callout-style-default callout-note callout-titled" title="La misma relación, vista como conservación de energía">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>La misma relación, vista como conservación de energía
</div>
</div>
<div class="callout-body-container callout-body">
<p>Si en vez de cinemática pura usamos energía, con el origen de energía potencial en <img src="https://latex.codecogs.com/png.latex?x=0">:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B1%7D%7B2%7Dmv%5E2%20-%20mgx%20=%200%20%5Cquad%5CLongrightarrow%5Cquad%20v%20=%20%5Csqrt%7B2gx%7D"></p>
<p>Es el mismo resultado por un camino distinto — un buen ejemplo de cómo la mecánica newtoniana y la conservación de energía son dos caras de la misma moneda para este tipo de problemas.</p>
</div>
</div>
</section>
<section id="caída-libre-con-resistencia-del-aire" class="level2" data-number="3">
<h2 data-number="3" class="anchored" data-anchor-id="caída-libre-con-resistencia-del-aire"><span class="header-section-number">3</span> Caída libre con resistencia del aire</h2>
<p>Experimentalmente, cuando hay resistencia del aire, la razón de cambio de la velocidad ya no es constante: decrece a medida que la velocidad aumenta. El modelo más simple (y sorprendentemente bueno) es que la fuerza de resistencia es <strong>proporcional a la velocidad</strong>, <img src="https://latex.codecogs.com/png.latex?F_%7B%5Ctext%7Bres%7D%7D%20=%20-cv">, lo que da</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cdot%20v%20=%20g%20-%20cv"></p>
<p>Esta es una EDO lineal de primer orden; su solución (con <img src="https://latex.codecogs.com/png.latex?v(0)=0">) es</p>
<p><img src="https://latex.codecogs.com/png.latex?v(t)%20=%20%5Cfrac%7Bg%7D%7Bc%7D%5Cleft(1-e%5E%7B-ct%7D%5Cright)"></p>
<p>Cuando <img src="https://latex.codecogs.com/png.latex?t%5Cto%5Cinfty">, <img src="https://latex.codecogs.com/png.latex?v%5Cto%20g/c"> — la <strong>velocidad terminal</strong>: a partir de cierto punto el cuerpo cae prácticamente a velocidad constante, porque la resistencia iguala al peso. Nota que si <img src="https://latex.codecogs.com/png.latex?c=0"> (sin resistencia) este fenómeno desaparece por completo y la velocidad crece sin cota, como en la sección anterior.</p>
</section>
<section id="ejercicio-simmons-lanzamiento-vertical-con-resistencia-proporcional-a-la-velocidad" class="level2" data-number="4">
<h2 data-number="4" class="anchored" data-anchor-id="ejercicio-simmons-lanzamiento-vertical-con-resistencia-proporcional-a-la-velocidad"><span class="header-section-number">4</span> Ejercicio (Simmons) — lanzamiento vertical con resistencia proporcional a la velocidad</h2>
<p>Una masa <img src="https://latex.codecogs.com/png.latex?m"> se lanza <strong>hacia arriba</strong> desde la superficie de la tierra con velocidad inicial <img src="https://latex.codecogs.com/png.latex?v_0">. La resistencia del aire es proporcional a la velocidad, con constante <img src="https://latex.codecogs.com/png.latex?k">. ¿Cuál es la altura máxima que alcanza?</p>
<p><strong>Planteamiento.</strong> Tomamos el eje <img src="https://latex.codecogs.com/png.latex?x"> positivo hacia arriba, con <img src="https://latex.codecogs.com/png.latex?x(0)=0">. La resistencia del aire siempre se opone al movimiento — así que su signo depende de si el cuerpo sube o baja. Pero si escribimos la fuerza de resistencia como <img src="https://latex.codecogs.com/png.latex?-kv"> (con <img src="https://latex.codecogs.com/png.latex?v"> la velocidad <em>con signo</em>, positiva hacia arriba), el signo se ajusta automáticamente: cuando <img src="https://latex.codecogs.com/png.latex?v%3E0"> (subiendo) la resistencia es negativa, hacia abajo; cuando <img src="https://latex.codecogs.com/png.latex?v%3C0"> (bajando) la resistencia es positiva, hacia arriba. <strong>Una sola ecuación describe todo el vuelo</strong>, sin necesidad de separar casos:</p>
<p><img src="https://latex.codecogs.com/png.latex?m%5Cdot%20v%20=%20-mg%20-%20kv%20%5Cqquad%5CLongrightarrow%5Cqquad%20%5Cdot%20v%20+%20%5Cfrac%7Bk%7D%7Bm%7Dv%20=%20-g"></p>
<p><strong>Resolviendo.</strong> Es lineal de primer orden. Con la condición inicial <img src="https://latex.codecogs.com/png.latex?v(0)=v_0">:</p>
<p><img src="https://latex.codecogs.com/png.latex?v(t)%20=%20%5Cleft(v_0+%5Cfrac%7Bmg%7D%7Bk%7D%5Cright)e%5E%7B-%5Cfrac%7Bk%7D%7Bm%7Dt%7D%20-%20%5Cfrac%7Bmg%7D%7Bk%7D"></p>
<p>Integrando de nuevo, con <img src="https://latex.codecogs.com/png.latex?x(0)=0">:</p>
<p><img src="https://latex.codecogs.com/png.latex?x(t)%20=%20%5Cfrac%7Bm%7D%7Bk%7D%5Cleft(v_0+%5Cfrac%7Bmg%7D%7Bk%7D%5Cright)%5Cleft(1-e%5E%7B-%5Cfrac%7Bk%7D%7Bm%7Dt%7D%5Cright)%20-%20%5Cfrac%7Bmg%7D%7Bk%7D%5C,t"></p>
<p><strong>Altura máxima.</strong> Ocurre cuando <img src="https://latex.codecogs.com/png.latex?v(t%5E*)=0"> (el instante en que el cuerpo deja de subir):</p>
<p><img src="https://latex.codecogs.com/png.latex?t%5E*%20=%20%5Cfrac%7Bm%7D%7Bk%7D%5Clog%5Cleft(1+%5Cfrac%7Bkv_0%7D%7Bmg%7D%5Cright)"></p>
<p>Sustituyendo <img src="https://latex.codecogs.com/png.latex?t%5E*"> en <img src="https://latex.codecogs.com/png.latex?x(t)"> y simplificando (los términos se cancelan de forma más limpia de lo que uno esperaría):</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cboxed%7Bx_%7B%5Cmax%7D%20=%20%5Cfrac%7Bmv_0%7D%7Bk%7D%20-%20%5Cfrac%7Bm%5E2g%7D%7Bk%5E2%7D%5Clog%5Cleft(1+%5Cfrac%7Bkv_0%7D%7Bmg%7D%5Cright)%7D"></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Un detalle conceptual: solo importa la razón k/m">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Un detalle conceptual: solo importa la razón k/m
</div>
</div>
<div class="callout-body-container callout-body">
<p>Si defines <img src="https://latex.codecogs.com/png.latex?%5Cgamma%20=%20k/m"> (la resistencia <em>por unidad de masa</em>), las fórmulas de arriba se reescriben enteramente en términos de <img src="https://latex.codecogs.com/png.latex?%5Cgamma">:</p>
<p><img src="https://latex.codecogs.com/png.latex?t%5E*%20=%20%5Cfrac%7B1%7D%7B%5Cgamma%7D%5Clog%5Cleft(1+%5Cfrac%7B%5Cgamma%20v_0%7D%7Bg%7D%5Cright),%20%5Cqquad%20x_%7B%5Cmax%7D%20=%20%5Cfrac%7Bv_0%7D%7B%5Cgamma%7D%20-%20%5Cfrac%7Bg%7D%7B%5Cgamma%5E2%7D%5Clog%5Cleft(1+%5Cfrac%7B%5Cgamma%20v_0%7D%7Bg%7D%5Cright)"></p>
<p>Es decir: la masa <strong>no</strong> afecta la trayectoria por sí sola, solo a través de <img src="https://latex.codecogs.com/png.latex?%5Cgamma=k/m">. Dos objetos con la misma <img src="https://latex.codecogs.com/png.latex?k/m"> (mismo “arrastre por kilo”) suben exactamente igual de alto, sin importar cuánto pesen por separado — el mismo tipo de cancelación que ya vimos con <img src="https://latex.codecogs.com/png.latex?F=mg"> en la caída libre.</p>
</div>
</div>
<p><strong>¿Y el tiempo de caída hasta el suelo?</strong> Buscar <img src="https://latex.codecogs.com/png.latex?t_%7B%5Ctext%7Bsuelo%7D%7D%3Et%5E*"> tal que <img src="https://latex.codecogs.com/png.latex?x(t_%7B%5Ctext%7Bsuelo%7D%7D)=0"> lleva a una ecuación <strong>trascendente</strong> (mezcla un término lineal en <img src="https://latex.codecogs.com/png.latex?t"> con uno exponencial): no tiene solución en forma cerrada, y hay que resolverla numéricamente.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb1-2"></span>
<span id="cb1-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Ecuación de movimiento: -mg - kv, válida en ascenso y descenso */</span></span>
<span id="cb1-4"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">eq</span>: <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">v</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>),<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) = -<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">g</span> - (<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">m</span>)*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">v</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb1-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">gensol</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">eq</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">v</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb1-6"></span>
<span id="cb1-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* imponer v(0) = vi despejando la constante de integración */</span></span>
<span id="cb1-8"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">c_val</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">solve</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">gensol</span>)) = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vi</span>, %<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">c</span>)[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>];</span>
<span id="cb1-9"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol_v</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">radcan</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">c_val</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">gensol</span>));</span>
<span id="cb1-10"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vt_expr</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol_v</span>);</span>
<span id="cb1-11"></span>
<span id="cb1-12"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* posición, con x(0) = 0 */</span></span>
<span id="cb1-13"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xt_expr</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">radcan</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">integrate</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vt_expr</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) - <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">integrate</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vt_expr</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>)));</span>
<span id="cb1-14"></span>
<span id="cb1-15"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* tiempo de altura máxima y altura máxima */</span></span>
<span id="cb1-16"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tstar_expr</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">radcan</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">solve</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vt_expr</span> = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>)[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>]));</span>
<span id="cb1-17"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">hmax_expr</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">radcan</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">logcontract</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>=<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tstar_expr</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xt_expr</span>)));</span>
<span id="cb1-18"></span>
<span id="cb1-19"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* ejemplo numérico: m=2 kg, k=0.5, g=9.8, v0=15 m/s */</span></span>
<span id="cb1-20"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vals</span>: [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">m</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k</span>=<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">g</span>=<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">9.8</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vi</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">15</span>];</span>
<span id="cb1-21"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vt</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) := <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">''</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vals</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vt_expr</span>));</span>
<span id="cb1-22"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xt</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) := <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">''</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vals</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xt_expr</span>));</span>
<span id="cb1-23"></span>
<span id="cb1-24"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tstar</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">find_root</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vt</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">20</span>);</span>
<span id="cb1-25"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tsuelo</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">find_root</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xt</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tstar</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">20</span>);   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* t_suelo: numérico, ecuación trascendente */</span></span>
<span id="cb1-26"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"t* = "</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tstar</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"  x_max = "</span>, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">float</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xt</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tstar</span>)), <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"  t_suelo = "</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tsuelo</span>);</span>
<span id="cb1-27"></span>
<span id="cb1-28"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* gráfica de la trayectoria hasta que toca el suelo */</span></span>
<span id="cb1-29"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">load</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">draw</span>);</span>
<span id="cb1-30"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">draw2d</span>(</span>
<span id="cb1-31">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">terminal</span> = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">png</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">file_name</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"trayectoria"</span>,</span>
<span id="cb1-32">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xlabel</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"t (s)"</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ylabel</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"x (m)"</span>,</span>
<span id="cb1-33">  <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">explicit</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xt</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tsuelo</span>)</span>
<span id="cb1-34">);</span></code></pre></div></div>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Simulador — trayectoria vertical con resistencia lineal">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Simulador — trayectoria vertical con resistencia lineal
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:640px;margin:1em auto;font-family:sans-serif;">
  <canvas id="mov-canvas" width="580" height="380" style="width:100%;height:auto;background:#fff;"></canvas>
  <div style="display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-top:10px;">
    <label>Velocidad inicial $v_0$ (m/s): <span id="mov-v0-val">15</span>
      <input type="range" id="mov-v0" min="1" max="40" step="0.5" value="15" style="width:100%;">
    </label>
    <label>Resistencia por unidad de masa $\gamma=k/m$ (1/s): <span id="mov-gamma-val">0.25</span>
      <input type="range" id="mov-gamma" min="0.02" max="1.5" step="0.01" value="0.25" style="width:100%;">
    </label>
  </div>
  <p style="font-size:0.9em;color:#555;margin-top:10px;">
    Curva azul: $x(t)$ desde el lanzamiento hasta que toca el suelo, con <strong>escala vertical fija</strong>
    (0–90 m) para poder comparar de un ajuste a otro. El punto verde marca la altura máxima
    ($t^*=$ <span id="mov-tstar">-</span> s, $x_{max}=$ <span id="mov-hmax">-</span> m); el punto rojo marca
    la llegada al suelo ($t_{suelo}=$ <span id="mov-tsuelo">-</span> s, obtenido numéricamente — la ecuación
    es trascendente). Con $\gamma\to 0$ recuperas la parábola simétrica de la caída libre sin resistencia.
  </p>
</div>
<script>
(function(){
  const canvas = document.getElementById('mov-canvas');
  const ctx = canvas.getContext('2d');
  const v0s = document.getElementById('mov-v0');
  const gs = document.getElementById('mov-gamma');
  const v0valEl = document.getElementById('mov-v0-val');
  const gvalEl = document.getElementById('mov-gamma-val');
  const tstarEl = document.getElementById('mov-tstar');
  const hmaxEl = document.getElementById('mov-hmax');
  const tsueloEl = document.getElementById('mov-tsuelo');

  const g = 9.8;
  const YMAX_FIJO = 90; // techo fijo del eje vertical (m) — cubre v0 hasta 40 y gamma desde 0.02
  const W = canvas.width, H = canvas.height;
  const margin = {left: 55, right: 20, top: 20, bottom: 40};

  function xOf(t, v0, gamma){
    return (1/gamma)*(v0 + g/gamma)*(1 - Math.exp(-gamma*t)) - (g/gamma)*t;
  }

  function landingTime(v0, gamma, tstar){
    let lo = tstar, hi = tstar + 0.5;
    let tries = 0;
    while (xOf(hi, v0, gamma) > 0 && tries < 60) { hi *= 1.4; tries++; }
    for (let i = 0; i < 60; i++) {
      const mid = (lo + hi) / 2;
      if (xOf(mid, v0, gamma) > 0) lo = mid; else hi = mid;
    }
    return (lo + hi) / 2;
  }

  function draw(){
    const v0 = parseFloat(v0s.value);
    const gamma = parseFloat(gs.value);
    v0valEl.textContent = v0.toFixed(1);
    gvalEl.textContent = gamma.toFixed(2);

    const tstar = (1/gamma) * Math.log(1 + gamma*v0/g);
    const hmax = v0/gamma - (g/(gamma*gamma)) * Math.log(1 + gamma*v0/g);
    const tsuelo = landingTime(v0, gamma, tstar);

    tstarEl.textContent = tstar.toFixed(2);
    hmaxEl.textContent = hmax.toFixed(2);
    tsueloEl.textContent = tsuelo.toFixed(2);

    ctx.clearRect(0,0,W,H);

    const plotW = W - margin.left - margin.right;
    const plotH = H - margin.top - margin.bottom;
    const Tmax = tsuelo;
    const yMax = YMAX_FIJO; // <-- fijo, ya no depende de hmax

    function toPx(t, x){
      const px = margin.left + (t/Tmax) * plotW;
      const py = margin.top + plotH - (x/yMax) * plotH;
      return [px, py];
    }

    // ejes
    ctx.strokeStyle = '#333'; ctx.lineWidth = 1;
    ctx.beginPath();
    ctx.moveTo(margin.left, margin.top);
    ctx.lineTo(margin.left, margin.top + plotH);
    ctx.lineTo(margin.left + plotW, margin.top + plotH);
    ctx.stroke();

    // curva x(t)
    ctx.strokeStyle = '#1f77b4'; ctx.lineWidth = 2.5;
    ctx.beginPath();
    let first = true;
    for (let t = 0; t <= Tmax; t += Tmax/300) {
      const x = Math.max(xOf(t, v0, gamma), 0);
      const [px, py] = toPx(t, x);
      if (first) { ctx.moveTo(px,py); first = false; } else ctx.lineTo(px,py);
    }
    ctx.stroke();

    // punto de altura maxima
    const [ax, ay] = toPx(tstar, hmax);
    ctx.fillStyle = '#2ca02c';
    ctx.beginPath(); ctx.arc(ax, ay, 4.5, 0, 2*Math.PI); ctx.fill();
    ctx.fillStyle = '#2ca02c'; ctx.font = '12px sans-serif';
    ctx.fillText('máximo', ax+8, ay-8);

    // punto de aterrizaje
    const [lx, ly] = toPx(tsuelo, 0);
    ctx.fillStyle = '#d62728';
    ctx.beginPath(); ctx.arc(lx, ly, 4.5, 0, 2*Math.PI); ctx.fill();

    // etiquetas de ejes
    ctx.fillStyle = '#333'; ctx.font = '12px sans-serif';
    ctx.fillText('t (s)', margin.left + plotW - 30, margin.top + plotH + 20);
    ctx.save();
    ctx.translate(14, margin.top + plotH/2);
    ctx.rotate(-Math.PI/2);
    ctx.fillText('x(t) (m)', 0, 0);
    ctx.restore();
    ctx.fillText('0', margin.left - 12, margin.top + plotH + 4);
  }

  [v0s, gs].forEach(el => el.addEventListener('input', draw));
  draw();
})();
</script>
</div>
</div>
</section>
<section id="tarea" class="level2" data-number="5">
<h2 data-number="5" class="anchored" data-anchor-id="tarea"><span class="header-section-number">5</span> Tarea</h2>
<p>Hacer los ejercicios 1 al 8 de la sección correspondiente del Simmons.</p>


</section>

 ]]></description>
  <guid>https://arturosanjuan.xyz/cursos/odes/movimiento/</guid>
  <pubDate>Sun, 23 Aug 2026 05:00:00 GMT</pubDate>
  <media:content url="https://arturosanjuan.xyz/cursos/odes/movimiento/trayectoria.png" medium="image" type="image/png" height="120" width="144"/>
</item>
<item>
  <title>Familias Ortogonales</title>
  <dc:creator>Arturo Sanjuán</dc:creator>
  <link>https://arturosanjuan.xyz/cursos/odes/familiasortogonales/</link>
  <description><![CDATA[ 




<section id="algo-de-geometría-con-ecuaciones-diferenciales" class="level2" data-number="1">
<h2 data-number="1" class="anchored" data-anchor-id="algo-de-geometría-con-ecuaciones-diferenciales"><span class="header-section-number">1</span> Algo de geometría con ecuaciones diferenciales</h2>
<p>Una familia paramétrica de curvas <img src="https://latex.codecogs.com/png.latex?F(x,y,C)=0"> (un parámetro <img src="https://latex.codecogs.com/png.latex?C">) tiene, escondida, una ecuación diferencial: basta con derivar implícitamente y usar la ecuación original para <strong>eliminar el parámetro</strong>. Lo que queda es una ecuación <img src="https://latex.codecogs.com/png.latex?y'=f(x,y)"> que satisface <em>cada</em> curva de la familia — no importa cuál sea el valor de <img src="https://latex.codecogs.com/png.latex?C">.</p>
<p>Esto es interesante porque la pendiente <img src="https://latex.codecogs.com/png.latex?y'=f(x,y)"> en un punto <img src="https://latex.codecogs.com/png.latex?(x,y)"> es un dato puramente geométrico. Y si conocemos la pendiente de una familia de curvas en cada punto del plano, también conocemos la pendiente de la familia <strong>perpendicular</strong> en cada punto: si una recta tiene pendiente <img src="https://latex.codecogs.com/png.latex?m">, la perpendicular tiene pendiente <img src="https://latex.codecogs.com/png.latex?-1/m">. Entonces:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Ctext%7Bfamilia%20original:%20%7D%20y'%20=%20f(x,y)%20%5Cqquad%5CLongrightarrow%5Cqquad%20%5Ctext%7Bfamilia%20ortogonal:%20%7D%20y'%20=%20-%5Cfrac%7B1%7D%7Bf(x,y)%7D"></p>
<p>Resolver esta segunda ecuación diferencial da la familia de curvas que cruza a la primera <strong>siempre en ángulo recto</strong>, en cualquier punto donde se toquen.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Applet — el ejemplo más simple: circunferencias y rectas radiales">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Applet — el ejemplo más simple: circunferencias y rectas radiales
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:560px;margin:1em auto;font-family:sans-serif;">
  <canvas id="fo-generic-canvas" width="520" height="420" style="width:100%;height:auto;background:#fff;"></canvas>
  <div style="display:flex;gap:16px;margin-top:8px;flex-wrap:wrap;">
    <label>Radio r: <input type="range" id="fo-generic-r" min="1" max="5" step="0.1" value="2"></label>
    <label>Ángulo θ: <input type="range" id="fo-generic-theta" min="0" max="360" step="1" value="40"></label>
  </div>
  <p style="font-size:0.9em;color:#555;margin-top:8px;">
    Las circunferencias $x^2+y^2=r^2$ (gris) son ortogonales a las rectas $y=mx$ que pasan por el origen (azul claro): el radio y la tangente a la circunferencia siempre son perpendiculares. Mueve los controles y observa el ángulo recto (verde) donde se cruzan.
  </p>
</div>
<script>
(function(){
  const canvas = document.getElementById('fo-generic-canvas');
  const ctx = canvas.getContext('2d');
  const rSlider = document.getElementById('fo-generic-r');
  const thetaSlider = document.getElementById('fo-generic-theta');
  const W = canvas.width, H = canvas.height, scale = 35;
  function toPx(x,y){ return [W/2 + x*scale, H/2 - y*scale]; }

  function draw(){
    ctx.clearRect(0,0,W,H);
    ctx.strokeStyle = '#ccc'; ctx.lineWidth = 1;
    ctx.beginPath(); ctx.moveTo(0,H/2); ctx.lineTo(W,H/2);
    ctx.moveTo(W/2,0); ctx.lineTo(W/2,H); ctx.stroke();

    ctx.strokeStyle = '#bbb';
    for (let rr = 1; rr <= 5; rr++) {
      ctx.beginPath(); ctx.arc(W/2, H/2, rr*scale, 0, 2*Math.PI); ctx.stroke();
    }
    ctx.strokeStyle = '#a8c8f0';
    for (let deg = 0; deg < 360; deg += 30) {
      const rad = deg*Math.PI/180;
      const [x1,y1] = toPx(6*Math.cos(rad), 6*Math.sin(rad));
      const [x2,y2] = toPx(-6*Math.cos(rad), -6*Math.sin(rad));
      ctx.beginPath(); ctx.moveTo(x1,y1); ctx.lineTo(x2,y2); ctx.stroke();
    }

    const r = parseFloat(rSlider.value);
    const theta = parseFloat(thetaSlider.value)*Math.PI/180;

    ctx.strokeStyle = '#d62728'; ctx.lineWidth = 2;
    ctx.beginPath(); ctx.arc(W/2, H/2, r*scale, 0, 2*Math.PI); ctx.stroke();

    ctx.strokeStyle = '#1f77b4'; ctx.lineWidth = 2;
    const [lx1,ly1] = toPx(6*Math.cos(theta), 6*Math.sin(theta));
    const [lx2,ly2] = toPx(-6*Math.cos(theta), -6*Math.sin(theta));
    ctx.beginPath(); ctx.moveTo(lx1,ly1); ctx.lineTo(lx2,ly2); ctx.stroke();

    const px = r*Math.cos(theta), py = r*Math.sin(theta);
    const [ppx,ppy] = toPx(px,py);
    ctx.fillStyle = '#333';
    ctx.beginPath(); ctx.arc(ppx,ppy,4,0,2*Math.PI); ctx.fill();

    const s = 12;
    const tx = -Math.sin(theta), ty = Math.cos(theta);
    const lxn = Math.cos(theta), lyn = Math.sin(theta);
    ctx.strokeStyle = '#2ca02c'; ctx.lineWidth = 1.5;
    ctx.beginPath();
    ctx.moveTo(ppx, ppy);
    ctx.lineTo(ppx + tx*s, ppy - ty*s);
    ctx.lineTo(ppx + tx*s + lxn*s, ppy - ty*s - lyn*s);
    ctx.lineTo(ppx + lxn*s, ppy - lyn*s);
    ctx.closePath(); ctx.stroke();

    ctx.fillStyle = '#000'; ctx.font = '13px sans-serif';
    ctx.fillText('r = ' + r.toFixed(2) + ',  θ = ' + (theta*180/Math.PI).toFixed(0) + '°', 10, 18);
  }
  rSlider.addEventListener('input', draw);
  thetaSlider.addEventListener('input', draw);
  draw();
})();
</script>
</div>
</div>
</section>
<section id="ejemplo-1-trayectorias-ortogonales-de-una-familia-de-parábolas-ejercicio-1-b" class="level2" data-number="2">
<h2 data-number="2" class="anchored" data-anchor-id="ejemplo-1-trayectorias-ortogonales-de-una-familia-de-parábolas-ejercicio-1-b"><span class="header-section-number">2</span> Ejemplo 1 — Trayectorias ortogonales de una familia de parábolas (Ejercicio 1-b)</h2>
<p>Esboce la familia <img src="https://latex.codecogs.com/png.latex?y%20=%20Cx%5E2"> y encuentre sus trayectorias ortogonales.</p>
<p>Por geometría analítica, cada curva de la familia es una parábola con vértice en el origen: si <img src="https://latex.codecogs.com/png.latex?C%3E0"> abre hacia arriba, si <img src="https://latex.codecogs.com/png.latex?C%3C0"> abre hacia abajo, si <img src="https://latex.codecogs.com/png.latex?C=0"> es el eje <img src="https://latex.codecogs.com/png.latex?x">, y entre más grande <img src="https://latex.codecogs.com/png.latex?%7CC%7C"> más rápido crece (más “cerrada” la parábola).</p>
<p><strong>Paso 1 — encontrar la ecuación diferencial de la familia.</strong> Derivamos <img src="https://latex.codecogs.com/png.latex?y=Cx%5E2"> implícitamente:</p>
<p><img src="https://latex.codecogs.com/png.latex?y'%20=%202Cx"></p>
<p>Esta ecuación todavía tiene el parámetro <img src="https://latex.codecogs.com/png.latex?C">; lo eliminamos usando la familia original, <img src="https://latex.codecogs.com/png.latex?C%20=%20y/x%5E2">:</p>
<p><img src="https://latex.codecogs.com/png.latex?y'%20=%202x%5Ccdot%5Cfrac%7By%7D%7Bx%5E2%7D%20=%20%5Cfrac%7B2y%7D%7Bx%7D"></p>
<p><strong>Paso 2 — familia ortogonal.</strong> Cambiamos <img src="https://latex.codecogs.com/png.latex?y'"> por <img src="https://latex.codecogs.com/png.latex?-1/y'">:</p>
<p><img src="https://latex.codecogs.com/png.latex?y'%20=%20-%5Cfrac%7Bx%7D%7B2y%7D"></p>
<p>Es de variables separables:</p>
<p><img src="https://latex.codecogs.com/png.latex?2y%5C,dy%20=%20-x%5C,dx%20%5Cquad%5CLongrightarrow%5Cquad%20y%5E2%20=%20-%5Cfrac%7Bx%5E2%7D%7B2%7D+C%20%5Cquad%5CLongrightarrow%5Cquad%20x%5E2+2y%5E2%20=%20k%20%5Cqquad%20(k=2C%5Cgeq%200)"></p>
<p>Es una familia de <strong>elipses</strong> centradas en el origen, con semieje mayor <img src="https://latex.codecogs.com/png.latex?%5Csqrt%7Bk%7D"> (en <img src="https://latex.codecogs.com/png.latex?x">) y semieje menor <img src="https://latex.codecogs.com/png.latex?%5Csqrt%7Bk/2%7D"> (en <img src="https://latex.codecogs.com/png.latex?y">). Lo bonito: la excentricidad <strong>no depende de <img src="https://latex.codecogs.com/png.latex?k"></strong> — todas las elipses de la familia son semejantes:</p>
<p><img src="https://latex.codecogs.com/png.latex?e%20=%20%5Csqrt%7B1-%5Cfrac%7Bk/2%7D%7Bk%7D%7D%20=%20%5Cfrac%7B1%7D%7B%5Csqrt2%7D%5Capprox%200.707"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb1-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb1-3"></span>
<span id="cb1-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Familia original y su derivada implícita */</span></span>
<span id="cb1-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">fam</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span> = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">C</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>;</span>
<span id="cb1-6"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">dfam</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">fam</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);                    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* diff(y,x) = 2*C*x */</span></span>
<span id="cb1-7"></span>
<span id="cb1-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Eliminamos C usando la familia original */</span></span>
<span id="cb1-9"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Cval</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">solve</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">fam</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">C</span>)[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>];</span>
<span id="cb1-10"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode_familia</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Cval</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">dfam</span>));   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* diff(y,x) = 2*y/x */</span></span>
<span id="cb1-11"></span>
<span id="cb1-12"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Ecuación de la familia ortogonal: y' -&gt; -1/y' */</span></span>
<span id="cb1-13"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode_ortho</span>: <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>) = -<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>/(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>);</span>
<span id="cb1-14"></span>
<span id="cb1-15"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Resolvemos (variables separables) */</span></span>
<span id="cb1-16"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode_ortho</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb1-17"></span>
<span id="cb1-18"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Excentricidad de la familia de elipses x^2 + 2y^2 = k,</span></span>
<span id="cb1-19"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">   escrita como x^2/k + y^2/(k/2) = 1 */</span></span>
<span id="cb1-20"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">a2</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k</span>; <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">b2</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k</span>/<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>;</span>
<span id="cb1-21"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">e</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sqrt</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span> - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">b2</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">a2</span>));   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* -&gt; 1/sqrt(2), no depende de k */</span></span></code></pre></div></div>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Applet — parábolas y elipses ortogonales">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Applet — parábolas y elipses ortogonales
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:560px;margin:1em auto;font-family:sans-serif;">
  <canvas id="fo-ex1-canvas" width="520" height="420" style="width:100%;height:auto;background:#fff;"></canvas>
  <div style="display:flex;gap:16px;margin-top:8px;flex-wrap:wrap;">
    <label>C (parábola $y=Cx^2$): <input type="range" id="fo-ex1-C" min="-2" max="2" step="0.1" value="1"></label>
    <label>k (elipse $x^2+2y^2=k$): <input type="range" id="fo-ex1-k" min="0.5" max="8" step="0.1" value="3"></label>
  </div>
  <p style="font-size:0.9em;color:#555;margin-top:8px;">
    Parábolas de la familia (azul/gris) y elipses de la familia ortogonal (rojo/rosado). El marcador verde muestra el ángulo recto donde la parábola y la elipse seleccionadas se cruzan.
  </p>
</div>
<script>
(function(){
  const canvas = document.getElementById('fo-ex1-canvas');
  const ctx = canvas.getContext('2d');
  const Cs = document.getElementById('fo-ex1-C');
  const ks = document.getElementById('fo-ex1-k');
  const W = canvas.width, H = canvas.height, s\!\(\*
Graphics3DBox[
{RGBColor[
    0.9372549019607843, 0.596078431372549, 0.47843137254901963`], 
    Opacity[0.8], 
    GraphicsComplex3DBox[
     NCache[{{0, 0, 
        Rational[-1, 2] (
          Rational[1, 2] (5 - 5^Rational[1, 2]))^Rational[1, 2]}, {0, 
        0, Rational[
         1, 2] (Rational[1, 2] (5 - 5^Rational[1, 2]))^Rational[
          1, 2]}, {(
         Rational[1, 8] + Rational[1, 8] 5^Rational[-1, 2])^Rational[
         1, 2], (-1)/(1 + 5^Rational[1, 2]), 
        Rational[-1, 2] (
          Rational[1, 10] (5 - 5^Rational[1, 2]))^Rational[1, 2]}, {(
         Rational[1, 8] + Rational[1, 8] 5^Rational[-1, 2])^Rational[
         1, 2], (1 + 5^Rational[1, 2])^(-1), 
        Rational[-1, 2] (
          Rational[1, 10] (5 - 5^Rational[1, 2]))^Rational[1, 2]}, {-(
          Rational[1, 8] + Rational[1, 8] 5^Rational[-1, 2])^Rational[
          1, 2], (-1)/(1 + 5^Rational[1, 2]), 
        Rational[
         1, 2] (Rational[1, 10] (5 - 5^Rational[1, 2]))^Rational[
          1, 2]}, {-(
          Rational[1, 8] + Rational[1, 8] 5^Rational[-1, 2])^Rational[
          1, 2], (1 + 5^Rational[1, 2])^(-1), 
        Rational[
         1, 2] (Rational[1, 10] (5 - 5^Rational[1, 2]))^Rational[
          1, 2]}, {(Rational[1, 10] (5 - 5^Rational[1, 2]))^Rational[
         1, 2], 0, 
        Rational[
         1, 2] (Rational[1, 10] (5 - 5^Rational[1, 2]))^Rational[
          1, 2]}, {-(Rational[1, 10] (5 - 5^Rational[1, 2]))^Rational[
          1, 2], 0, 
        Rational[-1, 2] (
          Rational[1, 10] (5 - 5^Rational[1, 2]))^Rational[
          1, 2]}, {Rational[-1, 2] (1 - 2 5^Rational[-1, 2])^Rational[
          1, 2], Rational[-1, 2], 
        Rational[-1, 2] (
          Rational[1, 10] (5 - 5^Rational[1, 2]))^Rational[
          1, 2]}, {Rational[-1, 2] (1 - 2 5^Rational[-1, 2])^Rational[
          1, 2], Rational[1, 2], 
        Rational[-1, 2] (
          Rational[1, 10] (5 - 5^Rational[1, 2]))^Rational[
          1, 2]}, {Rational[
         1, 2] (1 - 2 5^Rational[-1, 2])^Rational[1, 2], 
        Rational[-1, 2], 
        Rational[
         1, 2] (Rational[1, 10] (5 - 5^Rational[1, 2]))^Rational[
          1, 2]}, {Rational[
         1, 2] (1 - 2 5^Rational[-1, 2])^Rational[1, 2], Rational[
        1, 2], Rational[
         1, 2] (Rational[1, 10] (5 - 5^Rational[1, 2]))^Rational[
          1, 2]}}, {{0, 0, -0.5877852522924731}, {0, 0, 
        0.5877852522924731}, {
       0.42532540417601994`, -0.3090169943749474, \
-0.2628655560595668}, {0.42532540417601994`, 
       0.3090169943749474, -0.2628655560595668}, \
{-0.42532540417601994`, -0.3090169943749474, 
       0.2628655560595668}, {-0.42532540417601994`, 
       0.3090169943749474, 
       0.2628655560595668}, {0.5257311121191336, 0, 
        0.2628655560595668}, {-0.5257311121191336, 
        0, -0.2628655560595668}, {-0.16245984811645317`, -0.5, \
-0.2628655560595668}, {-0.16245984811645317`, 
       0.5, -0.2628655560595668}, {0.16245984811645317`, -0.5, 
       0.2628655560595668}, {0.16245984811645317`, 0.5, 
       0.2628655560595668}}], 
     Polygon3DBox[{{1, 7, 5}, {6, 7, 1}, {1, 5, 12}, {11, 6, 1}, {12, 
      11, 1}, {2, 8, 3}, {4, 8, 2}, {2, 3, 10}, {9, 4, 2}, {10, 9, 
      2}, {12, 3, 8}, {8, 4, 11}, {8, 11, 12}, {10, 5, 7}, {7, 6, 
      9}, {7, 9, 10}, {3, 5, 10}, {12, 5, 3}, {9, 6, 4}, {4, 6, 
      11}}]]},
Boxed->False,
ImageSize->100,
ImageSizeRaw->Automatic,
ViewPoint->{-1.8529379144773177`, -2.298965737742867, \
-1.6526879989208019`},
ViewVertical->{-0.9826148910405178, -0.16058983618144432`, 
    0.09316050891149363}]\)cale = 35;
  function toPx(x,y){ return [W/2 + x*scale, H/2 - y*scale]; }

  function drawParabola(C, color, lw){
    ctx.strokeStyle = color; ctx.lineWidth = lw;
    ctx.beginPath();
    let first = true;
    for (let x = -6; x <= 6; x += 0.05) {
      const y = C*x*x;
      if (Math.abs(y) > 8) { first = true; continue; }
      const [px,py] = toPx(x,y);
      if (first) { ctx.moveTo(px,py); first = false; } else ctx.lineTo(px,py);
    }
    ctx.stroke();
  }
  function drawEllipse(k, color, lw){
    ctx.strokeStyle = color; ctx.lineWidth = lw;
    ctx.beginPath();
    const a = Math.sqrt(k), b = Math.sqrt(k/2);
    for (let t = 0; t <= 2*Math.PI+0.01; t += 0.02) {
      const [px,py] = toPx(a*Math.cos(t), b*Math.sin(t));
      if (t === 0) ctx.moveTo(px,py); else ctx.lineTo(px,py);
    }
    ctx.stroke();
  }

  function draw(){
    ctx.clearRect(0,0,W,H);
    ctx.strokeStyle = '#ccc'; ctx.lineWidth = 1;
    ctx.beginPath(); ctx.moveTo(0,H/2); ctx.lineTo(W,H/2);
    ctx.moveTo(W/2,0); ctx.lineTo(W/2,H); ctx.stroke();

    [-2,-1,-0.5,0.5,1,2].forEach(c => drawParabola(c, '#ddd', 1));
    [1,2,4,6,8].forEach(kk => drawEllipse(kk, '#f3c6c6', 1));

    const C = parseFloat(Cs.value), k = parseFloat(ks.value);
    drawParabola(C, '#1f77b4', 2.5);
    drawEllipse(k, '#d62728', 2.5);

    let bestX = null, bestErr = Infinity;
    for (let x = 0.01; x <= Math.sqrt(k)+0.5; x += 0.01) {
      const yP = C*x*x, rhs = k - x*x;
      if (rhs < 0) continue;
      const yE = Math.sqrt(rhs/2);
      const err = Math.abs(yP-yE);
      if (err < bestErr) { bestErr = err; bestX = x; }
    }
    if (bestX !== null && bestErr < 0.05) {
      const x0 = bestX, y0 = C*x0*x0;
      const [ppx,ppy] = toPx(x0,y0);
      ctx.fillStyle = '#333';
      ctx.beginPath(); ctx.arc(ppx,ppy,4,0,2*Math.PI); ctx.fill();

      const mP = 2*C*x0;
      const mE = y0 !== 0 ? -x0/(2*y0) : 1e9;
      function unit(m){ const n = Math.sqrt(1+m*m); return [1/n, m/n]; }
      const [ux1,uy1] = unit(mP), [ux2,uy2] = unit(mE);
      const s = 12;
      ctx.strokeStyle = '#2ca02c'; ctx.lineWidth = 1.5;
      ctx.beginPath();
      ctx.moveTo(ppx,ppy);
      ctx.lineTo(ppx+ux1*s, ppy-uy1*s);
      ctx.lineTo(ppx+ux1*s+ux2*s, ppy-uy1*s-uy2*s);
      ctx.lineTo(ppx+ux2*s, ppy-uy2*s);
      ctx.closePath(); ctx.stroke();
    }

    ctx.fillStyle = '#000'; ctx.font = '13px sans-serif';
    ctx.fillText('C = ' + C.toFixed(2) + ',  k = ' + k.toFixed(2), 10, 18);
  }
  Cs.addEventListener('input', draw);
  ks.addEventListener('input', draw);
  draw();
})();
</script>
</div>
</div>
<div class="callout callout-style-default callout-tip callout-titled" title="Ejercicio">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Ejercicio
</div>
</div>
<div class="callout-body-container callout-body">
<p>Verifique con GeoGebra que la respuesta es correcta.</p>
</div>
</div>
</section>
<section id="ejemplo-2-una-condición-geométrica-sobre-la-normal-ejercicio-6-b" class="level2" data-number="3">
<h2 data-number="3" class="anchored" data-anchor-id="ejemplo-2-una-condición-geométrica-sobre-la-normal-ejercicio-6-b"><span class="header-section-number">3</span> Ejemplo 2 — Una condición geométrica sobre la normal (Ejercicio 6-b)</h2>
<p>Encuentre la familia de curvas tal que <strong>la proyección sobre el eje <img src="https://latex.codecogs.com/png.latex?x"> del segmento de la normal entre el punto <img src="https://latex.codecogs.com/png.latex?(x_0,y_0)"> de la curva y el eje <img src="https://latex.codecogs.com/png.latex?x"> tiene longitud 1</strong>.</p>
<p><strong>Planteamiento.</strong> Si la curva satisface <img src="https://latex.codecogs.com/png.latex?y'=f(x,y)">, la recta normal en <img src="https://latex.codecogs.com/png.latex?(x_0,y_0)"> tiene pendiente <img src="https://latex.codecogs.com/png.latex?-1/f(x_0,y_0)"> y ecuación</p>
<p><img src="https://latex.codecogs.com/png.latex?y%20-%20y_0%20=%20-%5Cfrac%7B1%7D%7Bf(x_0,y_0)%7D(x-x_0)"></p>
<p>Esta recta corta al eje <img src="https://latex.codecogs.com/png.latex?x"> (donde <img src="https://latex.codecogs.com/png.latex?y=0">) en el punto <img src="https://latex.codecogs.com/png.latex?x_1"> que se despeja de</p>
<p><img src="https://latex.codecogs.com/png.latex?-y_0%20=%20-%5Cfrac%7B1%7D%7Bf(x_0,y_0)%7D(x_1-x_0)%20%5Cquad%5CLongrightarrow%5Cquad%20x_1-x_0%20=%20y_0%5C,f(x_0,y_0)"></p>
<p>La proyección sobre el eje <img src="https://latex.codecogs.com/png.latex?x"> del segmento normal es justamente <img src="https://latex.codecogs.com/png.latex?%7Cx_1-x_0%7C%20=%20%7Cy_0%5C,f(x_0,y_0)%7C">. Por hipótesis esto vale <img src="https://latex.codecogs.com/png.latex?1">, y como <img src="https://latex.codecogs.com/png.latex?f(x,y)=y'">:</p>
<p><img src="https://latex.codecogs.com/png.latex?y%5C,y'%20=%20%5Cpm%201"></p>
<p><strong>Resolviendo:</strong> separando variables, <img src="https://latex.codecogs.com/png.latex?y%5C,dy%20=%20%5Cpm%20dx">, así</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7By%5E2%7D%7B2%7D%20=%20%5Cpm%20x%20+%20C%20%5Cquad%5CLongrightarrow%5Cquad%20y%5E2%20=%20%5Cpm%202x%20+%20C"></p>
<p>Es una familia de parábolas que abren hacia la derecha o hacia la izquierda.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb2-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb2-3"></span>
<span id="cb2-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* La ecuación diferencial de la familia */</span></span>
<span id="cb2-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>*<span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>) = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>;</span>
<span id="cb2-6"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* y^2 = 2x + %c */</span></span>
<span id="cb2-7"></span>
<span id="cb2-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Verificación geométrica: para un punto (x0,y0) sobre y^2 = 2x,</span></span>
<span id="cb2-9"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">   comprobamos que la normal corta al eje x exactamente en x0+1 */</span></span>
<span id="cb2-10"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">curva</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span> = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>;</span>
<span id="cb2-11"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">pend</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">solve</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">curva</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>), <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>))[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>]);   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* pendiente y' = 1/y en general */</span></span>
<span id="cb2-12"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">pend0</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>([<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>=<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x0</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>=<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sqrt</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x0</span>)], <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">pend</span>);</span>
<span id="cb2-13"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">pend_normal</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">-1</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">pend0</span>;</span>
<span id="cb2-14"></span>
<span id="cb2-15"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Recta normal: 0 - y0 = pend_normal*(xx - x0), despejamos xx */</span></span>
<span id="cb2-16"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y0</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sqrt</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x0</span>);</span>
<span id="cb2-17"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xx</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">solve</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span> - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y0</span> = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">pend_normal</span>*(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xxvar</span> - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x0</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xxvar</span>)[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>];</span>
<span id="cb2-18"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ratsimp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xx</span>) - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x0</span>);       <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* debe dar exactamente 1 */</span></span></code></pre></div></div>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Applet — la condición geométrica en acción">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Applet — la condición geométrica en acción
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:560px;margin:1em auto;font-family:sans-serif;">
  <canvas id="fo-ex2-canvas" width="520" height="360" style="width:100%;height:auto;background:#fff;"></canvas>
  <label>Posición del punto $x_0$: <input type="range" id="fo-ex2-x0" min="0.2" max="4" step="0.05" value="1.5" style="width:100%;"></label>
  <p style="font-size:0.9em;color:#555;margin-top:8px;">
    Curva $y^2=2x$ (azul), segmento normal en $(x_0,y_0)$ hasta el eje $x$ (rojo) y su proyección horizontal (verde). Mueve el control: la proyección mide siempre <strong>1</strong>, sin importar dónde esté el punto — así es como se construyó la ecuación diferencial.
  </p>
</div>
<script>
(function(){
  const canvas = document.getElementById('fo-ex2-canvas');
  const ctx = canvas.getContext('2d');
  const x0s = document.getElementById('fo-ex2-x0');
  const W = canvas.width, H = canvas.height, scale = 60;
  const originX = 60, originY = H - 40;
  function toPx(x,y){ return [originX + x*scale, originY - y*scale]; }

  function draw(){
    ctx.clearRect(0,0,W,H);
    ctx.strokeStyle = '#ccc'; ctx.lineWidth = 1;
    ctx.beginPath(); ctx.moveTo(0,originY); ctx.lineTo(W,originY);
    ctx.moveTo(originX,0); ctx.lineTo(originX,H); ctx.stroke();

    ctx.strokeStyle = '#1f77b4'; ctx.lineWidth = 2;
    ctx.beginPath();
    let first = true;
    for (let x = 0; x <= 6.5; x += 0.03) {
      const y = Math.sqrt(2*x);
      const [px,py] = toPx(x,y);
      if (first) { ctx.moveTo(px,py); first = false; } else ctx.lineTo(px,py);
    }
    ctx.stroke();

    const x0 = parseFloat(x0s.value);
    const y0 = Math.sqrt(2*x0);
    const x1 = x0 + 1;

    const [P0x,P0y] = toPx(x0,y0);
    const [P1x,P1y] = toPx(x1,0);
    const [Ax,Ay] = toPx(x0,0);

    ctx.strokeStyle = '#d62728'; ctx.lineWidth = 2;
    ctx.beginPath(); ctx.moveTo(P0x,P0y); ctx.lineTo(P1x,P1y); ctx.stroke();

    ctx.strokeStyle = '#2ca02c'; ctx.lineWidth = 4;
    ctx.beginPath(); ctx.moveTo(Ax,Ay); ctx.lineTo(P1x,P1y); ctx.stroke();

    ctx.strokeStyle = '#999'; ctx.setLineDash([4,3]); ctx.lineWidth = 1;
    ctx.beginPath(); ctx.moveTo(P0x,P0y); ctx.lineTo(Ax,Ay); ctx.stroke();
    ctx.setLineDash([]);

    ctx.fillStyle = '#333';
    [[P0x,P0y],[P1x,P1y],[Ax,Ay]].forEach(p => {
      ctx.beginPath(); ctx.arc(p[0],p[1],3.5,0,2*Math.PI); ctx.fill();
    });

    ctx.font = '13px sans-serif'; ctx.fillStyle = '#000';
    ctx.fillText('(x₀, y₀)', P0x+6, P0y-6);
    ctx.fillText('(x₀,0)', Ax-10, Ay+16);
    ctx.fillText('(x₀+1, 0)', P1x-10, P1y+16);
    ctx.fillText('proyección = 1', (Ax+P1x)/2-30, Ay+32);
  }
  x0s.addEventListener('input', draw);
  draw();
})();
</script>
</div>
</div>
<div class="callout callout-style-default callout-tip callout-titled" title="Explicación de cómo verificar en Geogebra">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Explicación de cómo verificar en Geogebra
</div>
</div>
<div class="callout-body-container callout-body">
<div style="max-width:720px;margin:1.5em auto;">
<p><video controls="" style="width:100%;border-radius:8px;"> <source src="https://www.dropbox.com/scl/fi/y76709lub6hnj358ctqt8/explicacion-geogebra.mp4?rlkey=5ikqqd192fjo41ooqj9vzs1q0&amp;raw=1" type="video/mp4"> Tu navegador no soporta el elemento de video. </video></p>
</div>
</div>
</div>
<div class="callout callout-style-default callout-important callout-titled" title="Tarea">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Importante</span>Tarea
</div>
</div>
<div class="callout-body-container callout-body">
<p>Página 17–18: 1-a, 1-d, 2, 5, 6-a,d,e,f.&nbsp;7, 8. Página 49–6. Verifique sus respuestas en Geogebra.</p>
</div>
</div>


</section>

 ]]></description>
  <guid>https://arturosanjuan.xyz/cursos/odes/familiasortogonales/</guid>
  <pubDate>Fri, 21 Aug 2026 05:00:00 GMT</pubDate>
  <media:content url="https://arturosanjuan.xyz/cursos/odes/familiasortogonales/circulos.png" medium="image" type="image/png" height="144" width="144"/>
</item>
<item>
  <title>Modelación con Ecuaciones Diferenciales</title>
  <dc:creator>Arturo Sanjuán</dc:creator>
  <link>https://arturosanjuan.xyz/cursos/odes/modelacion/</link>
  <description><![CDATA[ 




<section id="modelo-interés-compuesto-y-el-número-e" class="level2" data-number="1">
<h2 data-number="1" class="anchored" data-anchor-id="modelo-interés-compuesto-y-el-número-e"><span class="header-section-number">1</span> Modelo — interés compuesto y el número <img src="https://latex.codecogs.com/png.latex?e"></h2>
<p>Las cajitas de Nu funcionan con interés compuesto <strong>capitalizado diariamente</strong>: el interés del día se calcula sobre el capital más el interés ya acumulado. Si la tasa efectiva anual es <img src="https://latex.codecogs.com/png.latex?i_%7BEA%7D">, la tasa diaria <img src="https://latex.codecogs.com/png.latex?i_d"> satisface</p>
<p><img src="https://latex.codecogs.com/png.latex?(1+i_d)%5E%7B365%7D%20=%201+i_%7BEA%7D"></p>
<p>Con <img src="https://latex.codecogs.com/png.latex?i_%7BEA%7D=9.25%5C%25">, despejando obtenemos <img src="https://latex.codecogs.com/png.latex?i_d%5Capprox%200.02458%5C%25">, y la tasa nominal anual asociada es</p>
<p><img src="https://latex.codecogs.com/png.latex?r%20=%20365%5C,i_d%20%5Capprox%208.97%5C%25"></p>
<p>Si <img src="https://latex.codecogs.com/png.latex?n"> es el número de días transcurridos y <img src="https://latex.codecogs.com/png.latex?A_0"> el capital inicial (sin nuevos aportes), el capital en el día <img src="https://latex.codecogs.com/png.latex?n"> es</p>
<p><img src="https://latex.codecogs.com/png.latex?A(n)%20=%20A_0%5Cleft(1+%5Cfrac%7Br%7D%7B365%7D%5Cright)%5E%7Bn%7D"></p>
<div class="callout callout-style-default callout-note callout-titled" title="¿Qué pasa si en vez de 365 capitalizamos $n$ veces, con $n\to\infty$?">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>¿Qué pasa si en vez de 365 capitalizamos <img src="https://latex.codecogs.com/png.latex?n"> veces, con <img src="https://latex.codecogs.com/png.latex?n%5Cto%5Cinfty">?
</div>
</div>
<div class="callout-body-container callout-body">
<p>Esta es exactamente la pregunta que se hizo <strong>Jacob Bernoulli</strong> en 1683, estudiando el mismo problema de interés compuesto: ¿converge <img src="https://latex.codecogs.com/png.latex?%5Cleft(1+%5Cdfrac%7Br%7D%7Bn%7D%5Cright)%5En"> cuando <img src="https://latex.codecogs.com/png.latex?n%5Cto%5Cinfty">? Bernoulli mostró que sí, y que para <img src="https://latex.codecogs.com/png.latex?r=1"> el límite está entre 2 y 3 — el primer encuentro documentado con lo que hoy llamamos <img src="https://latex.codecogs.com/png.latex?e">, sin nombre ni notación todavía.</p>
<p>Fue <strong>Euler</strong>, en 1748 (<em>Introductio in analysin infinitorum</em>), quien le dio el nombre <img src="https://latex.codecogs.com/png.latex?e">, demostró que es irracional (vía fracciones continuas — la prueba rigurosa con la serie <img src="https://latex.codecogs.com/png.latex?%5Csum%201/k!"> es de <strong>Fourier</strong>, 1815), y notó la propiedad crucial: <img src="https://latex.codecogs.com/png.latex?(e%5Ex)'%20=%20e%5Ex">. Es decir, <img src="https://latex.codecogs.com/png.latex?e%5E%7Bkt%7D"> satisface la ecuación diferencial <img src="https://latex.codecogs.com/png.latex?y'=ky">.</p>
</div>
</div>
<p><strong>Comparación numérica.</strong> Si depositamos $100.000 en una cajita a <img src="https://latex.codecogs.com/png.latex?i_%7BEA%7D=9.25%5C%25"> y lo dejamos un año:</p>
<p><img src="https://latex.codecogs.com/png.latex?100%7B.%7D000%5Ccdot(1+i_%7BEA%7D)%20=%20100%7B.%7D000%5Ccdot(1+9.25%5C%25)%20=%20%5C$109%7B.%7D250"></p>
<p>Si en cambio capitalizáramos <strong>continuamente</strong> (el límite <img src="https://latex.codecogs.com/png.latex?n%5Cto%5Cinfty">), usando <img src="https://latex.codecogs.com/png.latex?A(t)=A_0%20e%5E%7Brt%7D"> con la tasa nominal <img src="https://latex.codecogs.com/png.latex?r%5Capprox%208.97%5C%25">:</p>
<p><img src="https://latex.codecogs.com/png.latex?100%7B.%7D000%5Ccdot%20e%5E%7B0.0897%7D%20%5Capprox%20%5C$109%7B.%7D385"></p>
<p>La diferencia es de apenas $135 sobre cien mil pesos en un año — el modelo continuo aproxima extraordinariamente bien al discreto, aun con solo 365 capitalizaciones.</p>
<div class="callout callout-style-default callout-note callout-titled" title="De dónde sale la EDO">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>De dónde sale la EDO
</div>
</div>
<div class="callout-body-container callout-body">
<p>Si <img src="https://latex.codecogs.com/png.latex?A(t)%20=%20A_0%20e%5E%7Bkt%7D">, entonces <img src="https://latex.codecogs.com/png.latex?A'(t)%20=%20k%20A_0%20e%5E%7Bkt%7D%20=%20kA(t)">, es decir</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7BdA%7D%7Bdt%7D%20=%20kA%20%5Cqquad%5CLongleftrightarrow%5Cqquad%20%5Cfrac%7B1%7D%7BA%7D%5Cfrac%7BdA%7D%7Bdt%7D%20=%20k"></p>
<p>El cambio <strong>fraccional</strong> (el error relativo) de <img src="https://latex.codecogs.com/png.latex?A"> respecto al tiempo es constante, y esa constante es justamente la tasa de interés nominal <img src="https://latex.codecogs.com/png.latex?100k%5C,%5C%25">.</p>
</div>
</div>
</section>
<section id="ejercicio-tiempo-para-duplicar-un-capital" class="level2" data-number="2">
<h2 data-number="2" class="anchored" data-anchor-id="ejercicio-tiempo-para-duplicar-un-capital"><span class="header-section-number">2</span> Ejercicio — tiempo para duplicar un capital</h2>
<p><em>(Simmons, ejercicio 2, p.&nbsp;27)</em> Se invierte un capital <img src="https://latex.codecogs.com/png.latex?P"> a una tasa nominal anual <img src="https://latex.codecogs.com/png.latex?r">, con capitalización continua. ¿Cuánto tiempo debe pasar para duplicar el capital inicial?</p>
<p>Partimos de <img src="https://latex.codecogs.com/png.latex?%5Cdfrac%7BdA%7D%7Bdt%7D=rA">, <img src="https://latex.codecogs.com/png.latex?A(0)=P">, cuya solución es <img src="https://latex.codecogs.com/png.latex?A(t)=Pe%5E%7Brt%7D">. Queremos <img src="https://latex.codecogs.com/png.latex?Pe%5E%7Brt%7D=2P">:</p>
<p><img src="https://latex.codecogs.com/png.latex?e%5E%7Brt%7D=2%20%5Cquad%5CLongrightarrow%5Cquad%20rt=%5Clog%202%20%5Cquad%5CLongrightarrow%5Cquad%20t=%5Cfrac%7B%5Clog%202%7D%7Br%7D"></p>
<p>Para la tasa nominal de Nu (<img src="https://latex.codecogs.com/png.latex?r%5Capprox%208.97%5C%25">):</p>
<p><img src="https://latex.codecogs.com/png.latex?t%20=%20%5Cfrac%7B%5Clog%202%7D%7B0.0897%7D%5Capprox%207.73%20%5Ctext%7B%20a%C3%B1os%7D"></p>
<p>— poco más de 7 años y 8 meses.</p>
<p><strong>Variante — ¿qué tasa se necesita para duplicar en exactamente 10 años?</strong> Despejamos <img src="https://latex.codecogs.com/png.latex?r"> de <img src="https://latex.codecogs.com/png.latex?e%5E%7B10r%7D=2">:</p>
<p><img src="https://latex.codecogs.com/png.latex?r%20=%20%5Cfrac%7B%5Clog%202%7D%7B10%7D%20%5Capprox%200.0693%20=%206.93%5C%25%5C%20%5Ctext%7B(nominal%20anual)%7D"></p>
<p>lo que corresponde a una tasa diaria <img src="https://latex.codecogs.com/png.latex?i_d%5Capprox%200.01894%5C%25"> y una tasa efectiva anual <img src="https://latex.codecogs.com/png.latex?i_%7BEA%7D%5Capprox%207.1%5C%25">.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb1-2"></span>
<span id="cb1-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* tiempo para duplicar, dada la tasa nominal r */</span></span>
<span id="cb1-4"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>: <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">A</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">r</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">A</span>;</span>
<span id="cb1-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">A</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb1-6"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ic1</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">A</span>=<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">P</span>);</span>
<span id="cb1-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* sol: A = P*%e^(r*t) */</span></span>
<span id="cb1-8"></span>
<span id="cb1-9"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* despejar t tal que A = 2P */</span></span>
<span id="cb1-10"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t_duplicar</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">solve</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">P</span> = <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb1-11"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ev</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t_duplicar</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">r</span> = <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.0897</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">numer</span>;</span>
<span id="cb1-12"></span>
<span id="cb1-13"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* variante: despejar r para duplicar en 10 años */</span></span>
<span id="cb1-14"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">r_necesaria</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">solve</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">P</span> = <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>)), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">r</span>);</span>
<span id="cb1-15"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ev</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">r_necesaria</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">numer</span>;</span></code></pre></div></div>
</div>
</div>
</section>
<section id="modelo-crecimiento-exponencial-y-el-absurdo-de-malthus" class="level2" data-number="3">
<h2 data-number="3" class="anchored" data-anchor-id="modelo-crecimiento-exponencial-y-el-absurdo-de-malthus"><span class="header-section-number">3</span> Modelo — crecimiento exponencial y el absurdo de Malthus</h2>
<p>Un cultivo de bacterias se reproduce por fisión celular: en cada ciclo cada bacteria se divide en dos. Si empezamos con <img src="https://latex.codecogs.com/png.latex?N_0"> bacterias sincronizadas, tras <img src="https://latex.codecogs.com/png.latex?n"> ciclos hay</p>
<p><img src="https://latex.codecogs.com/png.latex?N(n)%20=%202%5En%20N_0"></p>
<p><strong>Un ejemplo que se vuelve absurdo.</strong> La <em>E. coli</em> se divide cada 20 minutos y vive (en cultivo) unos 10 días. Empezando con una sola bacteria, al cabo de 10 días habría aproximadamente <img src="https://latex.codecogs.com/png.latex?2%5E%7B720%7D%5Capprox%202.9%5Ctimes%2010%5E%7B216%7D"> bacterias. Comparando volúmenes (universo observable <img src="https://latex.codecogs.com/png.latex?%5Capprox%204%5Ctimes%2010%5E%7B80%7D%5C,%5Ctext%7Bm%7D%5E3">, una <em>E. coli</em> <img src="https://latex.codecogs.com/png.latex?%5Capprox%201.3%5Ctimes%2010%5E%7B-18%7D%5C,%5Ctext%7Bm%7D%5E3">), esa cantidad de bacterias llenaría el equivalente a <strong><img src="https://latex.codecogs.com/png.latex?9.4%5Ccdot%2010%5E%7B210%7D"> universos observables</strong>. Absurdo — y la conclusión pedagógica es clara: <strong>los modelos puramente exponenciales solo son razonables en periodos cortos</strong>, mientras los recursos disponibles no sean una restricción real.</p>
<p><strong>Pasando al modelo continuo.</strong> Si <img src="https://latex.codecogs.com/png.latex?h"> es la duración de un ciclo,</p>
<p><img src="https://latex.codecogs.com/png.latex?N(t+h)-N(t)%20=%20%5Cleft(2%5E%7B(t+h)/h%7D-2%5E%7Bt/h%7D%5Cright)N_0%20=%202%5E%7Bt/h%7D%5Cleft(2%5E%7Bh/h%5Ccdot%201%7D-1%5Cright)N_0"></p>
<p>Dividiendo por <img src="https://latex.codecogs.com/png.latex?h"> y tomando el límite <img src="https://latex.codecogs.com/png.latex?h%5Cto%200"> (usando <img src="https://latex.codecogs.com/png.latex?%5Clog%202"> como la tasa instantánea, que llamamos <img src="https://latex.codecogs.com/png.latex?k">), se llega a</p>
<p><img src="https://latex.codecogs.com/png.latex?N'(t)%20=%20kN(t),%20%5Cqquad%20N(0)=N_0%20%5Cqquad%5CLongrightarrow%5Cqquad%20N(t)%20=%20N_0e%5E%7Bkt%7D"></p>
<p>Si <img src="https://latex.codecogs.com/png.latex?k%3E0"> la población crece sin cota; si <img src="https://latex.codecogs.com/png.latex?k%3C0"> decrece hacia cero; si <img src="https://latex.codecogs.com/png.latex?k=0"> es constante.</p>
<p><strong>Malthus (1798)</strong> usó exactamente esta ecuación, <img src="https://latex.codecogs.com/png.latex?N'=kN">, para argumentar que el crecimiento poblacional (geométrico) superaría inevitablemente al crecimiento de la producción de alimentos (que él asumía lineal) — de ahí su predicción de crisis recurrentes por hambruna, guerra o enfermedad (ver la nota histórica más abajo sobre qué tan literal era esa predicción). En Colombia, la tasa de crecimiento poblacional actual es de aproximadamente <img src="https://latex.codecogs.com/png.latex?k%5Capprox%200.0102"> (1.02% anual).</p>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb2-2"></span>
<span id="cb2-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* fisión celular de E. coli: 10 días, ciclos de 20 min */</span></span>
<span id="cb2-4"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ciclos</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>*<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">24</span>*<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">60</span>/<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">20</span>;   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* 720 ciclos */</span></span>
<span id="cb2-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N_final</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>^<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ciclos</span>;      <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* ~2.9e216 */</span></span>
<span id="cb2-6"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">float</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N_final</span>);</span>
<span id="cb2-7"></span>
<span id="cb2-8"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vol_universo</span>: <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">4e80</span>;      <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* m^3 */</span></span>
<span id="cb2-9"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vol_ecoli</span>: <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.3e-18</span>;      <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* m^3 */</span></span>
<span id="cb2-10"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">universos_llenos</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">float</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N_final</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vol_ecoli</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">vol_universo</span>);</span>
<span id="cb2-11"></span>
<span id="cb2-12"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* modelo continuo N' = kN */</span></span>
<span id="cb2-13"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb2-14"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>: <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>;</span>
<span id="cb2-15"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb2-16"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ic1</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>=<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N0</span>);</span>
<span id="cb2-17"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* sol: N = N0*%e^(k*t) */</span></span></code></pre></div></div>
</div>
</div>
</section>
<section id="modelo-crecimiento-logístico-con-capacidad-de-carga" class="level2" data-number="4">
<h2 data-number="4" class="anchored" data-anchor-id="modelo-crecimiento-logístico-con-capacidad-de-carga"><span class="header-section-number">4</span> Modelo — crecimiento logístico (con capacidad de carga)</h2>
<p><em>(Ejercicio 10)</em> El crecimiento exponencial ignora que los recursos son limitados. Si existe una <strong>capacidad de carga</strong> <img src="https://latex.codecogs.com/png.latex?K"> (el tamaño máximo que el entorno puede sostener), un modelo más realista es</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7BdN%7D%7Bdt%7D%20=%20%5Calpha%5C,%20N(K-N),%20%5Cqquad%20N(0)=N_0"></p>
<p>Cuando <img src="https://latex.codecogs.com/png.latex?N"> es pequeño comparado con <img src="https://latex.codecogs.com/png.latex?K">, el término <img src="https://latex.codecogs.com/png.latex?(K-N)%5Capprox%20K"> y la ecuación se comporta casi como la exponencial pura; cuando <img src="https://latex.codecogs.com/png.latex?N"> se acerca a <img src="https://latex.codecogs.com/png.latex?K">, el crecimiento se frena y se detiene.</p>
<p><strong>Resolviendo por variables separables.</strong> Separando y usando fracciones parciales,</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7BdN%7D%7BN(K-N)%7D%20=%20%5Calpha%5C,dt%20%5Cqquad%5CLongrightarrow%5Cqquad%20%5Cfrac%7B1%7D%7BK%7D%5Clog%5Cleft%7C%5Cfrac%7BN%7D%7BN-K%7D%5Cright%7C%20=%20%5Calpha%20t%20+%20C"></p>
<p>Exponenciando y aplicando la condición inicial <img src="https://latex.codecogs.com/png.latex?N(0)=N_0">, se llega a la forma cerrada</p>
<p><img src="https://latex.codecogs.com/png.latex?N(t)%20=%20%5Cfrac%7BK%7D%7B1+%5Cleft(%5Cdfrac%7BK-N_0%7D%7BN_0%7D%5Cright)e%5E%7B-K%5Calpha%20t%7D%7D"></p>
<p>— la clásica <strong>curva sigmoide</strong> (forma de S): arranca cerca de <img src="https://latex.codecogs.com/png.latex?N_0">, crece con concavidad hacia arriba, pasa por un punto de inflexión en <img src="https://latex.codecogs.com/png.latex?N=K/2">, y se aplana asintóticamente hacia <img src="https://latex.codecogs.com/png.latex?K">.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima — versión completa, paso a paso">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima — versión completa, paso a paso
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb3-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb3-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb3-3"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diffeq</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) = <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>*(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">K</span>-<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>);</span>
<span id="cb3-4"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diffeq</span>;</span>
<span id="cb3-5"></span>
<span id="cb3-6"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solucion</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diffeq</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb3-7"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solucion</span>: (<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">logcontract</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solucion</span>)*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">K</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha</span>);</span>
<span id="cb3-8"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solucion</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">exp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">lhs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solucion</span>))=<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">exp</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solucion</span>));</span>
<span id="cb3-9"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solucion</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ic1</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solucion</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>=<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N0</span>);</span>
<span id="cb3-10"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solucion</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">solve</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solucion</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N</span>);</span>
<span id="cb3-11"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* solucion: [N=(K*N0*%e^(K*alpha*t))/(N0*%e^(K*alpha*t)-N0+K)] */</span></span>
<span id="cb3-12"></span>
<span id="cb3-13"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* IMPORTANTE: solve() siempre devuelve una LISTA, incluso con</span></span>
<span id="cb3-14"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">   una sola solución. Hay que indexar solucion[1] antes de pedir rhs(). */</span></span>
<span id="cb3-15"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N_explicita</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">solucion</span>[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>]);</span>
<span id="cb3-16"></span>
<span id="cb3-17"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Chequeo rápido: en t=0 debe dar N0 */</span></span>
<span id="cb3-18"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ev</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N_explicita</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>);</span>
<span id="cb3-19"></span>
<span id="cb3-20"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Graficar: si plot2d abre una ventana interactiva (gnuplot_pipes),</span></span>
<span id="cb3-21"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">   eso falla en un entorno sin pantalla (batch/consola) y plot2d</span></span>
<span id="cb3-22"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">   devuelve "false" sin dibujar nada. La solución es forzar la</span></span>
<span id="cb3-23"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">   salida a un archivo PNG en vez de una ventana: */</span></span>
<span id="cb3-24"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">load</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">draw</span>);</span>
<span id="cb3-25"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">draw2d</span>(</span>
<span id="cb3-26">    <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">explicit</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ev</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N_explicita</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">K</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N0</span>=<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.2</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>),</span>
<span id="cb3-27">    <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xlabel</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"t"</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ylabel</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"N(t)"</span>,</span>
<span id="cb3-28">    <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">proportional_axes</span> = <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xy</span>,</span>
<span id="cb3-29">    <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">terminal</span> = <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">png</span>,</span>
<span id="cb3-30">    <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">file_name</span> = <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"logistica"</span></span>
<span id="cb3-31">)$</span>
<span id="cb3-32"></span>
<span id="cb3-33"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* Alternativa con plot2d clásico, forzando el terminal PNG a mano: */</span></span>
<span id="cb3-34"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot2d</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ev</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N_explicita</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">K</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">alpha</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">N0</span>=<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.2</span>), [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>])$</span></code></pre></div></div>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Video explicativo">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Video explicativo
</div>
</div>
<div class="callout-body-container callout-body">
<div style="max-width:640px;margin:1em auto;">
  <video controls="" style="width:100%;border-radius:8px;border:1px solid #ddd;">
    <source src="https://www.dropbox.com/scl/fi/v5oesfarbtti1evrfjnrc/explicacion-maxima.mp4?rlkey=vt046u8zejwzeiqj1udbff34u&amp;st=ejcsmmri&amp;raw=1" type="video/mp4">
    Tu navegador no soporta la reproducción de video en línea. Puedes descargarlo directamente
    <a href="https://www.dropbox.com/scl/fi/v5oesfarbtti1evrfjnrc/explicacion-maxima.mp4?rlkey=vt046u8zejwzeiqj1udbff34u&amp;st=ejcsmmri&amp;dl=1">aquí</a>.
  </video>
</div>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Applet — la trampa de $\ln(K-N)$ vs. $\ln(N-K)$">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Applet — la trampa de <img src="https://latex.codecogs.com/png.latex?%5Cln(K-N)"> vs.&nbsp;<img src="https://latex.codecogs.com/png.latex?%5Cln(N-K)">
</div>
</div>
<div class="callout-body-container callout-body">
<p>Al integrar <img src="https://latex.codecogs.com/png.latex?%5Cdfrac%7B1%7D%7BK-N%7D"> hay dos antiderivadas igualmente válidas (<img src="https://latex.codecogs.com/png.latex?-%5Clog(K-N)"> o <img src="https://latex.codecogs.com/png.latex?-%5Clog(N-K)">, que difieren en una constante que la condición inicial absorbe), así que si tu cuenta a mano da un signo distinto al de Maxima, <strong>ambas pueden ser correctas</strong> — lo importante es que, tras aplicar la condición inicial, ambas dan exactamente la misma curva <img src="https://latex.codecogs.com/png.latex?N(t)">.</p>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Simulador — curva logística (sigmoide) para distintos $K$, $\alpha$ y $N_0$">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Simulador — curva logística (sigmoide) para distintos <img src="https://latex.codecogs.com/png.latex?K">, <img src="https://latex.codecogs.com/png.latex?%5Calpha"> y <img src="https://latex.codecogs.com/png.latex?N_0">
</div>
</div>
<div class="callout-body-container callout-body">
<div style="border:1px solid #ddd;border-radius:8px;padding:16px;max-width:640px;margin:1em auto;font-family:sans-serif;">
  <canvas id="log-canvas" width="580" height="380" style="width:100%;height:auto;background:#fff;"></canvas>
  <div style="display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-top:10px;">
    <label>Capacidad de carga $K$: <span id="log-K-val">10</span>
      <input type="range" id="log-K" min="1" max="20" step="0.5" value="10" style="width:100%;">
    </label>
    <label>Tasa $\alpha$: <span id="log-alpha-val">0.05</span>
      <input type="range" id="log-alpha" min="0.01" max="0.5" step="0.01" value="0.05" style="width:100%;">
    </label>
    <label>Población inicial $N_0$: <span id="log-N0-val">1</span>
      <input type="range" id="log-N0" min="0.1" max="20" step="0.1" value="1" style="width:100%;">
    </label>
    <label>Ventana de tiempo $t_{max}$: <span id="log-T-val">40</span>
      <input type="range" id="log-T" min="5" max="100" step="1" value="40" style="width:100%;">
    </label>
  </div>
  <p style="font-size:0.9em;color:#555;margin-top:10px;">
    La curva roja es $N(t)=\dfrac{K}{1+\left(\frac{K-N_0}{N_0}\right)e^{-K\alpha t}}$. La línea gris punteada marca la capacidad de carga $K$; el punto verde marca el punto de inflexión en $N=K/2$. Prueba mover $N_0$ por <em>encima</em> de $K$: la curva decrece hacia $K$ en vez de crecer — el modelo funciona igual en ambos casos.
  </p>
</div>
<script>
(function(){
  const canvas = document.getElementById('log-canvas');
  const ctx = canvas.getContext('2d');
  const Ks = document.getElementById('log-K');
  const As = document.getElementById('log-alpha');
  const N0s = document.getElementById('log-N0');
  const Ts = document.getElementById('log-T');
  const KvalEl = document.getElementById('log-K-val');
  const AvalEl = document.getElementById('log-alpha-val');
  const N0valEl = document.getElementById('log-N0-val');
  const TvalEl = document.getElementById('log-T-val');

  const W = canvas.width, H = canvas.height;
  const margin = {left: 55, right: 20, top: 20, bottom: 40};

  function N(t, K, alpha, N0) {
    const ratio = (K - N0) / N0;
    return K / (1 + ratio * Math.exp(-K * alpha * t));
  }

  function draw(){
    const K = parseFloat(Ks.value);
    const alpha = parseFloat(As.value);
    const N0 = parseFloat(N0s.value);
    const Tmax = parseFloat(Ts.value);
    KvalEl.textContent = K.toFixed(1);
    AvalEl.textContent = alpha.toFixed(2);
    N0valEl.textContent = N0.toFixed(1);
    TvalEl.textContent = Tmax.toFixed(0);

    ctx.clearRect(0,0,W,H);

    // rango vertical: cubrir min(N0,0) .. max(K,N0) con margen
    const plotW = W - margin.left - margin.right;
    const plotH = H - margin.top - margin.bottom;
    let yMax = Math.max(K, N0) * 1.15;
    let yMin = 0;

    function toPx(t, n){
      const px = margin.left + (t / Tmax) * plotW;
      const py = margin.top + plotH - ((n - yMin) / (yMax - yMin)) * plotH;
      return [px, py];
    }

    // ejes
    ctx.strokeStyle = '#333'; ctx.lineWidth = 1;
    ctx.beginPath();
    ctx.moveTo(margin.left, margin.top);
    ctx.lineTo(margin.left, margin.top + plotH);
    ctx.lineTo(margin.left + plotW, margin.top + plotH);
    ctx.stroke();

    // linea K (capacidad de carga)
    ctx.strokeStyle = '#999'; ctx.setLineDash([5,4]); ctx.lineWidth = 1;
    const [,pyK] = toPx(0, K);
    ctx.beginPath(); ctx.moveTo(margin.left, pyK); ctx.lineTo(margin.left+plotW, pyK); ctx.stroke();
    ctx.setLineDash([]);
    ctx.fillStyle = '#777'; ctx.font = '12px sans-serif';
    ctx.fillText('K = ' + K.toFixed(1), margin.left + plotW - 55, pyK - 6);

    // curva logistica
    ctx.strokeStyle = '#d62728'; ctx.lineWidth = 2.5;
    ctx.beginPath();
    let first = true;
    for (let t = 0; t <= Tmax; t += Tmax/300) {
      const n = N(t, K, alpha, N0);
      const [px, py] = toPx(t, n);
      if (first) { ctx.moveTo(px,py); first = false; } else ctx.lineTo(px,py);
    }
    ctx.stroke();

    // punto de inflexion en N = K/2, si esta dentro de la ventana visible
    const ratio = (K - N0) / N0;
    if (ratio > 0) {
      const tInfl = Math.log(ratio) / (K * alpha);
      if (tInfl >= 0 && tInfl <= Tmax) {
        const [ix, iy] = toPx(tInfl, K/2);
        ctx.fillStyle = '#2ca02c';
        ctx.beginPath(); ctx.arc(ix, iy, 4.5, 0, 2*Math.PI); ctx.fill();
        ctx.fillStyle = '#2ca02c'; ctx.font = '12px sans-serif';
        ctx.fillText('inflexión', ix+8, iy-8);
      }
    }

    // punto inicial N0
    const [p0x, p0y] = toPx(0, N0);
    ctx.fillStyle = '#1f77b4';
    ctx.beginPath(); ctx.arc(p0x, p0y, 4, 0, 2*Math.PI); ctx.fill();

    // etiquetas de ejes
    ctx.fillStyle = '#333'; ctx.font = '12px sans-serif';
    ctx.fillText('t', margin.left + plotW - 8, margin.top + plotH + 20);
    ctx.save();
    ctx.translate(14, margin.top + plotH/2);
    ctx.rotate(-Math.PI/2);
    ctx.fillText('N(t)', 0, 0);
    ctx.restore();

    // marcas numericas en eje y (0 y K)
    ctx.fillText('0', margin.left - 18, margin.top + plotH + 4);
  }

  [Ks, As, N0s, Ts].forEach(el => el.addEventListener('input', draw));
  draw();
})();
</script>
</div>
</div>
</section>
<section id="modelo-decaimiento-radioactivo" class="level2" data-number="5">
<h2 data-number="5" class="anchored" data-anchor-id="modelo-decaimiento-radioactivo"><span class="header-section-number">5</span> Modelo — decaimiento radioactivo</h2>
<p>La descomposición radioactiva se rige por <img src="https://latex.codecogs.com/png.latex?%5Cdfrac%7BdA%7D%7Bdt%7D=-kA"> (<img src="https://latex.codecogs.com/png.latex?k%3E0">), donde <img src="https://latex.codecogs.com/png.latex?A"> mide la cantidad de sustancia. La solución es <img src="https://latex.codecogs.com/png.latex?A(t)=A_0e%5E%7B-kt%7D">, y la <strong>vida media</strong> <img src="https://latex.codecogs.com/png.latex?%5Ctau"> (tiempo para que decaiga la mitad) satisface <img src="https://latex.codecogs.com/png.latex?%5Cdfrac12=e%5E%7B-k%5Ctau%7D">, de donde <img src="https://latex.codecogs.com/png.latex?k=%5Cdfrac%7B%5Clog%202%7D%7B%5Ctau%7D">.</p>
<div class="callout callout-style-default callout-tip callout-titled" title="Ejercicio 13 — vida media de 20 días">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Ejercicio 13 — vida media de 20 días
</div>
</div>
<div class="callout-body-container callout-body">
<p>Si la vida media de una sustancia radioactiva es 20 días, ¿cuánto tardará en decaer el 99% de la sustancia?</p>
</div>
</div>
<p>Con <img src="https://latex.codecogs.com/png.latex?%5Ctau=20">: <img src="https://latex.codecogs.com/png.latex?k=%5Cdfrac%7B%5Clog%202%7D%7B20%7D%5Capprox%200.03466">. Que decaiga el 99% significa que queda el 1%:</p>
<p><img src="https://latex.codecogs.com/png.latex?0.01%20=%20e%5E%7B-kt%7D%20%5Cquad%5CLongrightarrow%5Cquad%20t%20=%20%5Cfrac%7B%5Clog(100)%7D%7Bk%7D%20=%20%5Cfrac%7B20%5Clog(100)%7D%7B%5Clog%202%7D%20%5Capprox%20133%20%5Ctext%7B%20d%C3%ADas%7D"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb4-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb4-2"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tau</span>: <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">20</span>;</span>
<span id="cb4-3"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">log</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>)/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">tau</span>;</span>
<span id="cb4-4"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t99</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">log</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>)/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">k</span>;</span>
<span id="cb4-5"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">float</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t99</span>);   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* ~132.9 dias */</span></span></code></pre></div></div>
</div>
</div>
</section>
<section id="modelo-mezclas-en-un-tanque" class="level2" data-number="6">
<h2 data-number="6" class="anchored" data-anchor-id="modelo-mezclas-en-un-tanque"><span class="header-section-number">6</span> Modelo — mezclas en un tanque</h2>
<p>Un tanque contiene 50 galones de salmuera con 75 libras de sal disueltas. Entra salmuera con 3 lb/gal a razón de 2 gal/min, y la mezcla (bien agitada) sale a la misma tasa de 2 gal/min. ¿Cuándo habrá 125 libras de sal en el tanque?</p>
<p>Sea <img src="https://latex.codecogs.com/png.latex?x(t)"> la cantidad de sal (en libras) en el instante <img src="https://latex.codecogs.com/png.latex?t">. Como el volumen se mantiene constante en 50 galones, la concentración de salida es <img src="https://latex.codecogs.com/png.latex?x/50"> lb/gal:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bdx%7D%7Bdt%7D%20=%20%5Cunderbrace%7B3%5Ccdot%202%7D_%7B%5Ctext%7Bentra%7D%7D%20-%20%5Cunderbrace%7B%5Cfrac%7Bx%7D%7B50%7D%5Ccdot%202%7D_%7B%5Ctext%7Bsale%7D%7D%20=%206-%5Cfrac%7Bx%7D%7B25%7D"></p>
<p>Separando variables:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Cfrac%7Bdx%7D%7B6-x/25%7D%20=%20dt%20%5Cquad%5CLongrightarrow%5Cquad%20-25%5Clog(150-x)%20=%20t+C%20%5Cquad%5CLongrightarrow%5Cquad%20x(t)%20=%20150-Ce%5E%7B-t/25%7D"></p>
<p>Con <img src="https://latex.codecogs.com/png.latex?x(0)=75">: <img src="https://latex.codecogs.com/png.latex?75=150-C%20%5CRightarrow%20C=75">. Entonces</p>
<p><img src="https://latex.codecogs.com/png.latex?x(t)%20=%2075%5Cleft(2-e%5E%7B-t/25%7D%5Cright)"></p>
<p>Buscamos <img src="https://latex.codecogs.com/png.latex?t"> tal que <img src="https://latex.codecogs.com/png.latex?x(t)=125">:</p>
<p><img src="https://latex.codecogs.com/png.latex?125%20=%2075%5Cleft(2-e%5E%7B-t/25%7D%5Cright)%20%5Cquad%5CLongrightarrow%5Cquad%20t%20%5Capprox%2027.46%20%5Ctext%7B%20min%7D"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Haciendo las cuentas con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Haciendo las cuentas con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb5-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb5-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb5-3"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>: <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>) = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">6</span> - <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>/<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">25</span>;</span>
<span id="cb5-4"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb5-5"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ic1</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">75</span>);</span>
<span id="cb5-6"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol_t</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">solve</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subst</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">125</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>), <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">t</span>);</span>
<span id="cb5-7"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">float</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rhs</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol_t</span>[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>]));   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* ~27.46 min */</span></span></code></pre></div></div>
</div>
</div>
<div class="callout callout-style-default callout-important callout-titled" title="Tarea">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Importante</span>Tarea
</div>
</div>
<div class="callout-body-container callout-body">
<p>Hacer todos los ejercicios de esa sección, usando máxima para comprobar los resultados y teniendo cuidado con las magnitudes físicas.</p>
</div>
</div>


</section>

 ]]></description>
  <guid>https://arturosanjuan.xyz/cursos/odes/modelacion/</guid>
  <pubDate>Mon, 17 Aug 2026 05:00:00 GMT</pubDate>
  <media:content url="https://arturosanjuan.xyz/cursos/odes/modelacion/sigmoides.png" medium="image" type="image/png" height="89" width="144"/>
</item>
<item>
  <title>Introducción</title>
  <dc:creator>Arturo Sanjuán</dc:creator>
  <link>https://arturosanjuan.xyz/cursos/odes/introduccion/</link>
  <description><![CDATA[ 




<section id="algo-de-historia" class="level2" data-number="1">
<h2 data-number="1" class="anchored" data-anchor-id="algo-de-historia"><span class="header-section-number">1</span> Algo de historia</h2>
<table class="caption-top table">
<colgroup>
<col style="width: 33%">
<col style="width: 33%">
<col style="width: 33%">
</colgroup>
<thead>
<tr class="header">
<th>Época</th>
<th>Autor(es)</th>
<th>Aporte</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>~450 a.e.c.</td>
<td>Zenón</td>
<td>El movimiento es una ilusión</td>
</tr>
<tr class="even">
<td>~350 a.e.c.</td>
<td>Aristóteles</td>
<td>Teleología del movimiento: todo se mueve <em>por otro</em> — el primer motor inmóvil</td>
</tr>
<tr class="odd">
<td>S. XVII</td>
<td>Newton (<em>Principia</em>, 1687)</td>
<td>Quiere describir el movimiento, el cambio. Para eso inventa el cálculo y las ecuaciones diferenciales: <strong>cómo cambian las cosas</strong>, en lugar de dónde están o por qué cambian</td>
</tr>
<tr class="even">
<td>S. XVIII</td>
<td>Bernoulli (Jacob, Johann, Daniel)</td>
<td>La braquistócrona, la catenaria y la ecuación de onda</td>
</tr>
<tr class="odd">
<td>S. XVIII</td>
<td>Euler y Lagrange</td>
<td>Reformulan toda la mecánica</td>
</tr>
<tr class="even">
<td>S. XIX</td>
<td>Laplace</td>
<td>El determinismo</td>
</tr>
<tr class="odd">
<td>S. XIX</td>
<td>Fourier</td>
<td>La ecuación del calor (teoría de funciones)</td>
</tr>
<tr class="even">
<td>S. XIX</td>
<td>Picard–Lindelöf</td>
<td>La imposibilidad de encontrar, en general, una solución exacta</td>
</tr>
<tr class="odd">
<td>S. XIX</td>
<td>Poincaré</td>
<td>El estudio cualitativo de las ecuaciones</td>
</tr>
<tr class="even">
<td>S. XX</td>
<td>Lorenz y Smale</td>
<td>Aparecen los sistemas dinámicos y la teoría del caos</td>
</tr>
<tr class="odd">
<td>S. XX</td>
<td>—</td>
<td>Aplicaciones a biología (poblaciones, crecimiento celular), economía, neurociencia (Hodgkin–Huxley–Nagumo), epidemiología (modelo SIR), química (quimiotaxis), física cuántica, formación de estrellas y agujeros negros</td>
</tr>
</tbody>
</table>
<div class="callout callout-style-default callout-important callout-titled" title="La idea central">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Importante</span>La idea central
</div>
</div>
<div class="callout-body-container callout-body">
<p>El giro de Newton es el que define el curso: en lugar de preguntar <strong>dónde</strong> está algo o <strong>por qué</strong> cambia, una ecuación diferencial pregunta <strong>cómo</strong> cambia — y de ahí se reconstruye todo lo demás.</p>
</div>
</div>
</section>
<section id="ejercicios-resueltos-del-simmons" class="level2" data-number="2">
<h2 data-number="2" class="anchored" data-anchor-id="ejercicios-resueltos-del-simmons"><span class="header-section-number">2</span> Ejercicios resueltos del Simmons</h2>
<div class="callout callout-style-default callout-tip callout-titled" title="Ejercicio 1-j — Verificar una solución implícita">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Ejercicio 1-j — Verificar una solución implícita
</div>
</div>
<div class="callout-body-container callout-body">
<p>Verificar que <img src="https://latex.codecogs.com/png.latex?x%5E2%20=%202y%5E2%5Clog%20y"> es solución de</p>
<p><img src="https://latex.codecogs.com/png.latex?y'%20=%20%5Cfrac%7Bxy%7D%7Bx%5E2+y%5E2%7D"></p>
</div>
</div>
<p>Derivamos implícitamente, pensando a <img src="https://latex.codecogs.com/png.latex?y"> como función de <img src="https://latex.codecogs.com/png.latex?x">:</p>
<p><img src="https://latex.codecogs.com/png.latex?2x%20=%204y%5C,y'%5Clog%20y%20+%202y%5E2%5Ccdot%5Cfrac%7By'%7D%7By%7D%20=%204y%5C,y'%5Clog%20y%20+%202y%5C,y'%20=%202y%5C,y'%5Cbig(2%5Clog%20y%20+%201%5Cbig)"></p>
<p><img src="https://latex.codecogs.com/png.latex?%5CRightarrow%5Cquad%20x%20=%20y%5C,y'%5Cbig(2%5Clog%20y%20+%201%5Cbig)"></p>
<p>De la ecuación original, <img src="https://latex.codecogs.com/png.latex?%5Clog%20y%20=%20%5Cdfrac%7Bx%5E2%7D%7B2y%5E2%7D">. Reemplazando:</p>
<p><img src="https://latex.codecogs.com/png.latex?x%20=%20y%5C,y'%5Cleft(%5Cfrac%7Bx%5E2%7D%7By%5E2%7D+1%5Cright)%20=%20y%5C,y'%5Ccdot%5Cfrac%7Bx%5E2+y%5E2%7D%7By%5E2%7D%20%5Cquad%5CLongrightarrow%5Cquad%20xy%20=%20y'(x%5E2+y%5E2)"></p>
<p><img src="https://latex.codecogs.com/png.latex?%5CLongrightarrow%5Cquad%20y'%20=%20%5Cfrac%7Bxy%7D%7Bx%5E2+y%5E2%7D%5C%20%5Ccheckmark"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Chequeo con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Chequeo con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb1-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">depends</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb1-3"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">eq</span>: <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span> = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">log</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>);</span>
<span id="cb1-4"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">deq</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">eq</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb1-5"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">solve</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">deq</span>, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>));</span></code></pre></div></div>
</div>
</div>
<div class="callout callout-style-default callout-tip callout-titled" title="Ejercicio 2-q — Solución general de una ecuación separable">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Ejercicio 2-q — Solución general de una ecuación separable
</div>
</div>
<div class="callout-body-container callout-body">
<p>Encuentre la solución general de</p>
<p><img src="https://latex.codecogs.com/png.latex?(1+x%5E2)%5C,dy%20+%20(1+y%5E2)%5C,dx%20=%200"></p>
</div>
</div>
<p>Se puede escribir como <img src="https://latex.codecogs.com/png.latex?(1+x%5E2)y'%20+%20(1+y%5E2)%20=%200">, de donde</p>
<p><img src="https://latex.codecogs.com/png.latex?y'%20=%20-%5Cfrac%7B1+y%5E2%7D%7B1+x%5E2%7D%20%5Cquad%5CLongrightarrow%5Cquad%20%5Cfrac%7Bdy%7D%7B1+y%5E2%7D%20=%20-%5Cfrac%7Bdx%7D%7B1+x%5E2%7D"></p>
<p>Integrando ambos lados:</p>
<p><img src="https://latex.codecogs.com/png.latex?%5Carctan%20y%20=%20-%5Carctan%20x%20+%20C%20%5Cquad%5CLongrightarrow%5Cquad%20y%20=%20%5Ctan%5Cbig(C%20-%20%5Carctan%20x%5Cbig)"></p>
<p>Usando la identidad <img src="https://latex.codecogs.com/png.latex?%5Ctan(A-B)%20=%20%5Cdfrac%7B%5Ctan%20A%20-%20%5Ctan%20B%7D%7B1+%5Ctan%20A%5Ctan%20B%7D"> con <img src="https://latex.codecogs.com/png.latex?k=%5Ctan%20C">:</p>
<p><img src="https://latex.codecogs.com/png.latex?y%20=%20%5Cfrac%7Bk%20-%20x%7D%7B1%20+%20kx%7D"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Chequeo con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Chequeo con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb2-2"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>: <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>) = -(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>+<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>)/(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>+<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>);</span>
<span id="cb2-3"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span></code></pre></div></div>
</div>
</div>
<div class="callout callout-style-default callout-tip callout-titled" title="Ejercicio 3-f — Problema de valor inicial con fracciones parciales">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Ejercicio 3-f — Problema de valor inicial con fracciones parciales
</div>
</div>
<div class="callout-body-container callout-body">
<p>Encuentre la solución particular de</p>
<p><img src="https://latex.codecogs.com/png.latex?(x+1)(x%5E2+1)%5C,y'%20=%202x%5E2+1,%20%5Cqquad%20y(0)=1"></p>
</div>
</div>
<p><img src="https://latex.codecogs.com/png.latex?y'%20=%20%5Cfrac%7B2x%5E2+1%7D%7B(x+1)(x%5E2+1)%7D"></p>
<p>Hacemos fracciones parciales: <img src="https://latex.codecogs.com/png.latex?%5Cdfrac%7B2x%5E2+1%7D%7B(x+1)(x%5E2+1)%7D%20=%20%5Cdfrac%7BA%7D%7Bx+1%7D%20+%20%5Cdfrac%7BBx+C%7D%7Bx%5E2+1%7D"></p>
<p><img src="https://latex.codecogs.com/png.latex?2x%5E2+1%20=%20A(x%5E2+1)%20+%20(Bx+C)(x+1)%20=%20(A+B)x%5E2%20+%20(B+C)x%20+%20(A+C)"></p>
<p>Igualando coeficientes:</p>
<p><img src="https://latex.codecogs.com/png.latex?(1)%5C%20A+B=2%20%5Cqquad%20(2)%5C%20B+C=0%20%5Cqquad%20(3)%5C%20A+C=1"></p>
<p>De (2), <img src="https://latex.codecogs.com/png.latex?C=-B">. Sustituyendo en (3): <img src="https://latex.codecogs.com/png.latex?A-B=1">. Sumando con (1): <img src="https://latex.codecogs.com/png.latex?2A=3%20%5CRightarrow%20A=%5Ctfrac32">, luego <img src="https://latex.codecogs.com/png.latex?B=%5Ctfrac12"> y <img src="https://latex.codecogs.com/png.latex?C=-%5Ctfrac12">.</p>
<p><img src="https://latex.codecogs.com/png.latex?y'%20=%20%5Cfrac%7B3/2%7D%7Bx+1%7D%20+%20%5Cfrac%7B1%7D%7B2%7D%5Ccdot%5Cfrac%7Bx%7D%7Bx%5E2+1%7D%20-%20%5Cfrac%7B1/2%7D%7Bx%5E2+1%7D"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Chequeo con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Chequeo con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb3-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb3-2"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>: (<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">+1</span>)*(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2+1</span>)*<span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>) = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2+1</span>;</span>
<span id="cb3-3"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb3-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ic1</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>);</span></code></pre></div></div>
<p>Como la ecuación es de <strong>primer orden</strong>, la condición inicial se fija con <code>ic1</code>, no con <code>ic2</code> (esa es para ecuaciones de segundo orden, que necesitan <img src="https://latex.codecogs.com/png.latex?y"> y <img src="https://latex.codecogs.com/png.latex?y'"> en el punto).</p>
</div>
</div>
<p>Integrando:</p>
<p><img src="https://latex.codecogs.com/png.latex?y%20=%20%5Cfrac32%5Clog%7Cx+1%7C%20+%20%5Cfrac14%5Clog(x%5E2+1)%20-%20%5Cfrac12%5Carctan%20x%20+%20K"></p>
<p>Con la condición <img src="https://latex.codecogs.com/png.latex?y(0)=1">: <img src="https://latex.codecogs.com/png.latex?1%20=%200+0-0+K%20%5CRightarrow%20K=1">. Por tanto,</p>
<p><img src="https://latex.codecogs.com/png.latex?y%20=%20%5Cfrac32%5Clog(x+1)%20+%20%5Cfrac14%5Clog(x%5E2+1)%20-%20%5Cfrac12%5Carctan%20x%20+%201"></p>
<div class="callout callout-style-default callout-tip callout-titled" title="Ejercicio 4-b — Curva integral por un punto dado">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Ejercicio 4-b — Curva integral por un punto dado
</div>
</div>
<div class="callout-body-container callout-body">
<p>Encuentre la curva integral que pasa por el punto <img src="https://latex.codecogs.com/png.latex?(1,1)">, sabiendo que</p>
<p><img src="https://latex.codecogs.com/png.latex?dy%20=%20%5Cleft(2x+%5Cfrac1x%5Cright)dx"></p>
</div>
</div>
<p>Integrando directamente:</p>
<p><img src="https://latex.codecogs.com/png.latex?y%20=%20x%5E2%20+%20%5Clog%20x%20+%20C"></p>
<p>Con la condición <img src="https://latex.codecogs.com/png.latex?y(1)=1">: <img src="https://latex.codecogs.com/png.latex?1%20=%201%5E2+%5Clog%201%20+%20C%20%5CRightarrow%20C=0">. La curva es</p>
<p><img src="https://latex.codecogs.com/png.latex?y%20=%20x%5E2%20+%20%5Clog%20x"></p>
<div class="callout callout-style-default callout-note callout-titled" title="Chequeo con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Chequeo con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb4-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb4-2"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>: <span class="do" style="color: #5E5E5E;
background-color: null;
font-style: italic;">'</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">diff</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>,<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>) = <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>*<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span> + <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>/<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>;</span>
<span id="cb4-3"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>: <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ode2</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ode</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb4-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ic1</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">sol</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>=<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>);</span></code></pre></div></div>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled" title="Gráfica con Maxima">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Gráfica con Maxima
</div>
</div>
<div class="callout-body-container callout-body">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode maxima code-with-copy"><code class="sourceCode maxima"><span id="cb5-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">kill</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">all</span>);</span>
<span id="cb5-2"><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>) := <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>^<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span> + <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">log</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>);</span>
<span id="cb5-3"></span>
<span id="cb5-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot2d</span>([<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">y</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>), [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">discrete</span>, [[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>]]]], [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">x</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.05</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>],</span>
<span id="cb5-5">       [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">style</span>, [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">lines</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>], [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">points</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>,<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">7</span>]],</span>
<span id="cb5-6">       [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">legend</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"curva"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"(1,1)"</span>],</span>
<span id="cb5-7">       [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">xlabel</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"x"</span>], [<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">ylabel</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"y"</span>]);</span></code></pre></div></div>
</div>
</div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://arturosanjuan.xyz/cursos/odes/introduccion/sol.png" class="img-fluid figure-img"></p>
<figcaption>Solucion que pasa por (1,1)</figcaption>
</figure>
</div>
<div class="callout callout-style-default callout-important callout-titled" title="Tarea">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Importante</span>Tarea
</div>
</div>
<div class="callout-body-container callout-body">
<p>Hacer los demás ejercicios de tarea, en especial el número 8.</p>
</div>
</div>


</section>

 ]]></description>
  <guid>https://arturosanjuan.xyz/cursos/odes/introduccion/</guid>
  <pubDate>Fri, 14 Aug 2026 05:00:00 GMT</pubDate>
</item>
</channel>
</rss>
