Saltar al contenido principal
LibreTexts Español

5.1: Introducción al capítulo

  • Page ID
    52761
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    \(\frac{1}{N}\,\frac{∆N}{∆t}\,=\,r\,+\,sN\)\(\leftarrow\,Difference\,equation\,model\)

    \(\frac{1}{N}\,\frac{dN}{dt}\,=\,r\,+\,sN\)\(\leftarrow\,Differential\,equation\,model\)

    Recordemos que el signo delta (∆) significa cambio en o la diferencia. Comparar la ecuación de diferencia con la forma diferencial, que utiliza la terminología \(dN\)y\(dt\). Estos representan pasos de tiempo infinitesimalmente pequeños, correspondientes a nuestra percepción de sentido común del tiempo como divisible cada vez más finamente sin límite. En las ecuaciones diferenciales, las poblaciones cambian suavemente en lugar de en pasos finitos, el crecimiento se aproxima al de organismos que pueden reproducirse en cualquier momento, como las poblaciones bacterianas o humanas.

    Resulta que las ecuaciones diferenciales son más difíciles de resolver para las computadoras que las ecuaciones de diferencia. Las computadoras no pueden hacer pasos de tiempo infinitamente finos, sino que tienen que aproximarse usando pasos de tiempo muy pequeños en su lugar. Por otro lado, las ecuaciones de diferencia pueden ser más difíciles de resolver matemáticamente.

    r=1; s=-0.001; N=1; t=0;

    dt=1; print (N);

    mientras que (t<=20)

    {dN = (R+s*n) *N; n=N+dn; si (N<0) N=0; t=t+dt; print (N);}

    Arriba está el código de computadora para una ecuación de diferencia presentada anteriormente, que se niveló en 1000, pero con una adición en rojo. Si la población está muy por encima de su capacidad de carga, el cálculo podría mostrar una disminución tan fuerte que la población del próximo año sería negativa, lo que significa que la población moriría por completo. La adición en rojo solo evita proyectar poblaciones negativas. A continuación se muestra un código similar para la ecuación diferencial correspondiente, con las diferencias nuevamente en rojo.

    r=1; s=-0.001; N=1; t=0;

    dt=1/(365*24*60*60); print (N);

    mientras que (t<=20 /dt)

    {dN = (R+s*n) *N *dt; n=N+dn; si (N<0) N=0; t=t+dt; print (N);}

    Esto pretende modelar pasos de tiempo infinitamente pequeños. Por supuesto que no puede hacer eso exactamente, sino que debe conformarse con pasos de tiempo muy pequeños. En lugar de\(dt\,=\,1\), por ejemplo, representar un año, se establece aquí en aproximadamente un segundo, dividiendo 1 año por 365 días y cada día por 24 horas, 60 minutos y 60 segundos. Esto no es infinitamente pequeño, pero para poblaciones de bacterias y humanos está lo suficientemente cerca para fines prácticos. Aún así, es importante verificar si hay poblaciones negativas en caso de que el paso de tiempo no sea lo suficientemente pequeño.

    Figura\(\PageIndex{1}\). Crecimiento logístico diferencial (granate) comparado con discreto (verde). No aparecen puntos en la forma diferencial, ya que eso representa pasos de tiempo infinitesimales, mientras que la forma de diferencia tiene un punto en cada punto calculado.

    ¿Qué tan pequeño es lo suficientemente cerca de infinitamente pequeño? es la pregunta. Para averiguarlo, puedes establecer el paso de tiempo en algo pequeño y ejecutar el código, lo que producirá un conjunto de valores de población a través del tiempo. Entonces establece el paso más pequeño aún y vuelve a ejecutar el código. Se ejecutará más lentamente porque está calculando más pasos, pero si esencialmente aparece la misma respuesta, si la respuesta “converge”, entonces puedes hacer que el paso sea más grande nuevamente, acelerando el cálculo. Con algunas pruebas puedes encontrar un paso de tiempo que es lo suficientemente pequeño como para dar respuestas precisas pero lo suficientemente grande como para permitir que tu código se ejecute razonablemente rápido.

    La figura\(\PageIndex{1}\) muestra los resultados de ejecutar la versión de ecuación diferencial del programa (la segunda anterior, en granate) versus la versión de la ecuación de diferencia (la primera anterior, en verde). La ecuación diferencial tiene los mismos parámetros y forma general, pero la población se acerca más rápidamente a su capacidad de carga. Debido a que los pasos diferenciales de tiempo producen descendencia antes, sin esperar al final del paso, la descendencia está disponible para reproducirse antes, y así sucesivamente.

    Este método particular para las ecuaciones diferenciales se denomina “método de Euler” (pronunciado “Oiler's”), un enfoque básico que no se usaba a menudo en el siglo XX porque las computadoras no hace mucho eran millones de veces más lentas de lo que son ahora. Hoy en día este método suele ser lo suficientemente rápido, y es deseable por su relativa simplicidad.

    (Por cierto, calcular el crecimiento bacteriano durante cinco días con pasos de tiempo de un segundo será lo suficientemente rápido en cualquier lenguaje de programación. En ese momento estamos escribiendo esto (segunda década del siglo XXI), calcular el crecimiento para una población humana, segundo a segundo durante 20 años, hacer lo mismo durante 20 años segundo a segundo para los humanos será demasiado lento en R, tolerable en AWK, y bastante rápido en C, Java, u otra alta velocidad idiomas.)


    This page titled 5.1: Introducción al capítulo is shared under a CC BY-NC 4.0 license and was authored, remixed, and/or curated by Clarence Lehman, Shelby Loberg, & Adam Clark (University of Minnesota Libraries Publishing) via source content that was edited to the style and standards of the LibreTexts platform.