Está en la página 1de 10

Sistemas de Ecuaciones Diferenciales –

Resolución por medio de Maple,


Matemática, Gauss, Matlab y Macros en
Excel

Jorge Mauricio Oviedo 1

Resumen: El presente trabajo tiene por objetivo brindar un


enfoque teórico accesible sobre Ecuaciones Diferenciales y su
implementación diversos Softwares. Para llevar a cabo dicha
tarea se presenta una revisión teórica de tal tópico y se procede a
implementarlo en todo tipo de software tanto algebraico y
numérico. Se exponen y se comparan alternativamente las
resoluciones numéricas contra las algebraicas evaluando la
eficiencia en cada programa. Se proveen además los códigos de
programación usados en cada Software.

Palabras clave: Ecuaciones Diferenciales, Modelo Depredador Presa, Solución General y


Particular, Métodos Numéricos, Runge-kutha, Maple, Mathematica, Matlab, Gauss, Excel,
Macros, Visual Basic

1
joviedo@eco.unc.edu.ar
EJERCICIO Nº 8

1- INTRODUCCIÓN TEÓRICA2

1.1- ECUACIONES DIFERENCIALES

Una ecuación diferencial ordinaria (es decir con una sola variable independiente) es una
ecuación en donde los argumentos que intervienen son la variable independiente de una
función incógnita desconocida y las sucesivas derivadas de dicha función, es decir:

f ( x, y, y ', y '',..., y ( n ) ) = 0

donde el problema, a diferencia de una ecuación algebraica, consiste en averiguar quien


es y ( x) , es decir, aquí el arte consiste en hallar una función que satisfaga la condición
anterior y no simplemente un valor numérico como en el caso de una ecuación
algebraica.

Existen distintas maneras de clasificar a las ecuaciones diferenciales: Una de ellas es la


clasificación por el orden de la ecuación (que viene dado por la derivada de mayor
orden
que aparezca en la expresión) y otra por la linealidad. Ésta última es quizás una de las
clasificaciones más importantes en el sentido de que permite caracterizar
inmediatamente la facilidad con que se pueden hallar sus soluciones. En este sentido, se
puede decir que las ecuaciones diferenciales no lineales de primer orden pueden
resolverse solo en algunos casos especiales (como lo es el caso de las ecuaciones
diferenciales de Bernoulli, las exactas, las separables, las homogéneas, etc.) mientras
que las ecuaciones diferenciales lineales de primer orden siempre pueden resolverse
de manera exacta. Pero la distinción es quizás mas relevante cuando se hablan de
ecuaciones de orden dos o superior ya que en el caso de ecuaciones lineales existe la
posibilidad de hallar una forma manejable de solución (ya sea exacta o en forma de
serie de potencias), mientras que en las no lineales, hallar una solución suele ser todo
un desafío. Esto no significa que una ecuación diferencial no lineal de orden superior
no tenga solución sino más bien que no hay métodos generales para llegar a una
solución explícita o implícita. Aunque esto parezca desalentador hay algunas cosas que
se pueden hacer tales como analizar cuantitativamente la ecuación no lineal (a través de
métodos numéricos) o cualitativamente (a través de diagramas de fases).
Pero aun quedan otras cuestiones que diferencian a una ecuación lineal de una no lineal
y es el hecho de que las segundas pueden tener soluciones singulares.

2
La presente sección a sido elaborada en base al libro “Ecuaciones diferenciales con aplicaciones de
modelado” de Dennis Zill.
1.2- SISTEMAS DE ECUACIONES DIFERENCIALES

Los sistemas de ecuaciones diferenciales también pueden clasificarse en lineales y no


lineales y de primer orden o de orden superior. Pero en esta situación merece hacerse
una consideración ya que “todo sistema de orden superior a dos puede transformarse en
uno de orden uno mediante la simple redefinición y agregado de variables”. En
consecuencia, el tratamiento de sistemas de ecuaciones diferenciales puede enfocarse en
los sistemas de primer orden sin perdida de generalidad. Un sistema de ecuaciones de
primer orden puede representarse de la siguiente forma:

dx1
= f1 (t , x1 , x2 ,...xn )
dt
dx2
= f 2 (t , x1 , x2 ,...xn )
dt

:
dxn
= f n (t , x1 , x2 ,...xn )
dt

Como se mencionó en un principio las ecuaciones no lineales no pueden resolverse de


una manera general y analítica por lo que este análisis se enfocará en sistemas lineales.
Así, si cada una de las funciones f1 , f 2 ,..., f n es lineal en las variables dependientes
x1 , x2 ,..., xn entonces el sistema es lineal de primer orden. Su estructura general es:

dxn
= a11 (t ) x1 + a12 (t ) x2 + ... + a1n (t ) xn + f1 (t )
dt
dxn
= a21 (t ) x1 + a22 (t ) x2 + ... + a2 n (t ) xn + f 2 (t )
dt

:
dxn
= a1n (t ) x1 + a2 n (t ) x2 + ... + ann (t ) xn + f n (t )
dt

El cual se puede expresar en forma matricial como:

X' = AX + F
donde:
 x1 (t )   x '1 (t )   f1 (t ) 
     a11 (t ) K a1n (t )   
 x2 (t )   x '2 (t )     f 2 (t ) 
X= X' = A(t ) =  M O M  F (t ) =
 M   M   a (t ) L  M 
     n1 ann (t )   
 x1 (t )   x '1 (t )   f n (t ) 

La resolución general de este sistema no homogéneo se puede expresar como sigue:

X = X P + XC
donde Xp es una solución particular de X' = AX + F y Xc es la solución del sistema
homogéneo formado por X' = AX , donde las funciones fi (t ) se igualan a cero ( F = 0 ).
Esta es una generalización del caso de una ecuación diferencial individual.
En primer lugar se obtendrá Xc , la solución complementaria, para luego tratar el caso
más general, cuando el sistema no es homogéneo.

1.2.1- SOLUCIÓN DE UN SISTEMA LINEAL HOMOGÉNEO


Recuérdese que la sencilla ecuación diferencial lineal homogénea de primer orden (dx/dt=ax, donde a es una constante) tiene una
solución general x = ceat. Parece lógico preguntar si se puede definir una matriz exponencial eAt tal que el sistema homogéneo
X’=AX, donde A es una matriz (nxn) de constantes, tenga una solución:

X = e At C
Dado que C debe ser de orden (n x1) y esta formada por constantes arbitrarias, se desearía que eAt sea una matriz de (n x n). Una
forma de definir eAt se basa en la representación en serie de potencias de la función escalar exponencial eat:

a2t 2 ant n ∞ an t n
e at = 1 + at + + ... + + ... = ∑
2! n! n =0 n !

Esta serie converge para todo valor de t. Reemplazando 1 por la matriz identidad I y a la constante a por la matriz A de constantes,
llegamos a la definición de la matriz exponencial:

A2t 2 An t n ∞ An t n
e At = I + At + + ... + + ... = ∑
2! n! n =0 n !

Se puede demostrar que esta serie converge a una matriz de (n x n) para cualquier valor de t. Sin embargo, esta definición no tiene
utilidad a los efectos prácticos por lo que se hace mas que necesario hallar una forma alternativa de cálculo. Para ello, haciendo uso
de algunos teoremas, se podrá hallar la matriz exponencial por medio de los valores y los vectores propios de la matriz del sistema
asociado. El teorema dice que3:

“Sea J la forma canónica de Jordan de una matriz A y sea J = C-1AC. Entonces A = CJC-1 y

e At = CeJt C−1

Demostración: Primero se observa que


6 4 4 4 44n 7veces
4 4 4 4 48
A = (CJC ) = (CJC )(CJC )...(CJC−1 )
n −1 n −1 −1

= CJ (C−1C)J (C−1C)J (C−1C)...(C−1C)JC−1


= CJ n C−1

Se sigue entonces que


( At ) n = C(Jt ) n C−1

Así,

3
Sacado de Grossman, capítulo 6, página 611.
A2t 2 C(Jt ) 2 C−1
e At = I + At + + ... = CIC−1 + C(Jt )C−1 + + ...
2! 2!
 C( Jt ) 2 C−1 
= C  I + Jt + + ... C−1 = Ce Jt C−1
 2! 

Este teorema establece que para calcular eAt solo se necesita obtener eJt. Las matrices A
y J son semejantes entre ellas, con la particularidad que al ser J la forma canónica de
Jordan es una matriz diagonal, cuando A tiene n valores propios distintos. Por lo tanto,
si la matriz A tiene n valores propios distintos (λ1, λ2 ...λn), formamos la matriz J
diagonal, y de ella podemos calcular eJt.
 λ1 0 • • • 0  eλ1t 0 • • • 0 
   
0 λ2 • • • 0  0 e λ 2t • • • 0 
J = • •  ⇒e = • 
J
• • •
: : :  : : : 
0  
 0 • • • λn   0 eλ nt 
 0 • • •

En este caso, solo se necesita especificar la matriz C particular del ejercicio para poder
obtener eAt. Como se tiene n valores propios distintos (los vectores propios de valores
propios distintos son linealmente independientes), C se construye con un vector propio
de cada uno de los distintos valores propios de A. Por lo tanto, la obtención de eAt es
bastante sencilla, siendo la única complicación posible la existencia de valores propios
con parte imaginaria.
Puede darse el caso en que la matriz A no posea n valores propios distintos, sino que
alguno/s posea/n multiplicidad algebraica mayor a uno. En este caso la matriz J ya no se
compone únicamente de valores propios. Sabemos que para una ecuación diferencial
lineal homogénea de segundo orden (recuérdese que puede ser transformada en un
sistema de 2 ecuaciones diferenciales lineales de primer orden) de la forma
dx/dt=b(d2x/dt)+ax, cuando sus raíces son reales e iguales, la solución es de la forma:

x = c1e at + tc1e at

buscaremos una solución para el sistema que se le asemeje. En este caso, la matriz J ya
no será diagonal.
Definiendo a la matriz Nk como una matriz de orden k, la cual posee unos sobre la
diagonal principal y ceros en el resto de la matriz
0 1 0 ••• 0
 
0 0 1 ••• 0
 •
Nk =  0 0 0 ••• :
• • • 
: : : 1
 
0 0 0 ••• 0 
Para cada valor propio de A, se define una matriz de bloques de Jordan B(λi) (de orden
k x k) como:
 λi 1 • • • 0
 • 
0 λi • • • : 
B(λi ) = λi I + Nk = 
 • •

: : L 1
0 λi 
 0 • • •

donde k estará dado por la multiplicidad algebraica del valor propio λ.


En este caso, la forma canónica de Jordan de A, estará compuesta por una matriz de
bloques de Jordan en la diagonal principal y ceros en el resto de ella:

 B(λ1 ) 0 ••• 0
 
 0 B(λ2 ) ••• 0 
J = diag [ B(λi ) ] =  • • • 
 : : : 
 0 B(λn ) 
 0 •••

Donde los B y 0 son matrices de orden k x k. Si un valor propio posee multiplicidad


algebraica 1, cabe aclarar que la matriz B será un escalar igual a dicho valor propio, y
cuando todos los valores propios poseen multiplicidad algebraica 1, la matriz de bloques
es la misma que la matriz de Jordan anterior (para el caso de n valores propios
distintos).
La matriz eJt será parecida a la que se tenía anteriormente, pero para los valores propios
con multiplicidad mayor a uno, se registrará sobre la diagonal principal teλt. Para el caso
una matriz de 2 x 2 con una solo valor propio λ de multiplicidad 2, tenemos un eJt:

 eλ t teλt 
 
 0 eλt 

En cuanto a la construcción de la matriz C para matrices A con un valor propio real


repetido, tenemos dos subcasos: cuando el valor propio de multiplicidad algebraica
mayor a uno posee igual multiplicidad geométrica4, y cuando la primera es mayor a la
segunda.
En el primer caso, podemos obtener n vectores propios linealmente independientes y
ellos son los que componen (como antes) la matriz C. Pero en el segundo caso, ello ya
no es posible y se recurre al concepto de vector propio generalizado, el cual se define
como aquel vector w que:

( A − λ I )w = v

donde λ es el valor propio y v el vector propio de λ. En el caso de que la diferencia


entre la multiplicidad geométrica y aritmética del valor propio λ sea de 1, es suficiente
con este vector propio generalizado, pero cuando es mayor puede ser necesario recurrir
una cadena de vectores propios generalizados, definidos por:

4
La multiplicidad geométrica de un valor propio λ es mayor o igual a la multiplicidad algebraica y se
define como la dimensión del espacio propio correspondiente a dicho valor propio. La dimensión de
dicho espacio propio establece cuantos vectores linealmente independientes se pueden asociar a λ.
( A − λ I )v = 0
( A − λ I ) w1 = v
( A − λ I ) w2 = w1
( A − λ I ) w3 = w2 ...
donde v es un único vector propio. Con éstos vectores linealmente independientes
construimos la matriz C y nuevamente estamos en condiciones de obtener eAt.

1.2.2- SISTEMAS DE ECUACIONES LINEALES NO HOMOGENEO

En el caso de una ecuación diferencial lineal de primer orden x’=ax+f(t) (donde a es


una constante) la solución general está dada por:

t
x = xC + xP = ceat + eat ∫ e− as f ( s) ds
t0

Para un sistema no homogéneo de ecuaciones diferenciales lineales de primer orden, se


puede demostrar que la solución general de X’=AX+F (donde A es una matriz de
constantes) es:

t
X = XC + X P = e At C + e At ∫ e − As F ( s ) ds
t0

La matriz exponencial eAt es una matriz siempre no singular y e-As = (eAs)-1. En la


práctica se puede obtener e-As a partir de eAt simplemente si reemplazamos t por –s.

1.2.3- MÉTODOS NUMÉRICOS

Si existe una solución de una ecuación diferencial, ella representa un conjunto de puntos
en el plano cartesiano. A través de los métodos numéricos, es posible emplear
procedimientos que emplean la ecuación diferencial para obtener una sucesión de
puntos distintos cuyas coordenadas se aproximen a las coordenadas de los puntos de la
curva de solución real.
Pero una ecuación diferencial no necesita tener una solución, y aún si la tiene, no
siempre se puede expresarla en forma explícita o implícita. En estos casos, tendremos
que contentarnos con una aproximación que nos brindan los métodos numéricos.
Los procedimientos numéricos para las ecuaciones lineales de primer orden se pueden
adaptar para sistemas de ecuaciones de primer orden. A continuación, se expondrá el
método de Runge-Kutta que resulta ser simple de aplicar y muy preciso en sus
resultados. Se partirá del caso de una ecuación diferencial de primer orden sencilla y
luego se ampliará para considerar sistemas.
Tal vez el método más difundido y más exacto para obtener soluciones aproximadas al
problema de valor inicial:
dy
= f ( x, y ), y ( x0 ) = y0
dx

sea el método de Runge-Kutta de cuarto orden . Los distintos métodos de Runge-Kutta


se deducen a partir del desarrollo de y(xn+h) en serie de Taylor con residuo:

dy ( xn ) h 2 d 2 y ( xn ) h k +1 d ( k +1) y (c)
y ( xn+1 ) = y ( xn + h) = y ( xn ) + + + ... +
dx 2! dx 2 (k + 1)! dx ( k +1)

Cuando K=1 y el residuo (h2/2)(dy(c)/dx) es pequeño, se obtiene la fórmula de


iteración del procedimiento de Runge-Kutta de primer orden (o método básico de
Euler):

dy ( xn )
yn+1 = yn + h = xn+1 + hf ( xn , yn )
dx

siendo el error local de truncamiento O(h2) y el error global de O(h1).


El procedimiento de Runge-Kutta de segundo orden(o método de Euler
mejorado) consiste en hallar las constantes a, b, α y β tales que la fórmula

yn+1 = yn + ak1 + bk2 , k1 = hf ( xn , yn )


k2 = hf ( xn + α h, yn + β h)

coincida con un polinomio de Taylor de segundo grado. Se puede demostrar que ello es
posible siempre y cuando las constantes cumplan con las siguientes condiciones:

a + b =1 bα = 1/ 2 b β = 1/ 2

Este es un sistema de tres ecuaciones con cuatro incógnitas, por lo que tiene
una cantidad infinita de soluciones. Se ha comprobado que cuando se asume que
a=b=1/2 y α=β=1, se obtienen buenos resultados, siendo el error local de truncamiento
o(h3) y el error global de O(h2).
Nótese que la suma ak1+bk2 es un promedio ponderado de k1 y k2, ya que
a+b=1, y que a su vez k1 y k2 son múltiplos aproximados de la pendiente de la curva de
solución y(x) en dos puntos distintos en el intervalo (xn, xn+1).
Por último, el procedimiento de Runge-Kutta de cuarto orden consiste en
determinar las constantes adecuadas para que la fórmula

1
yn+1 = yn + ( ak + bk2 + ck3 + dk4 )
6 1

k1 = hf ( xn , yn )
k2 = hf ( xn + α1 h, yn + β1 k1 )
k3 = hf ( xn + α 2 h, yn + β 2 k1 + β 3 k2 )
k4 = hf ( xn + α 3 h, yn + β 4 k1 + β 5 k2 + β 6 k3 )
coincida con un polinomio de Taylor de cuarto grado. En el sistema tenemos 11
ecuaciones con 13 incógnitas. Su error local de truncamiento O(h5) y su error global de
O(h4).
El conjunto de valores de las constantes que más se usa produce el siguiente resultado:

1
yn+1 = yn + (k + 2k2 + 2k3 + k4 )
6 1

k1 = hf ( xn , yn )
k2 = hf ( xn + 1 h, yn + 1 k )
2 2 1

k3 = hf ( xn + 1 h, yn + 1 k2 )
2 2
k4 = hf ( xn + h, yn + k3 )

Este resultado se puede ampliar y utilizar el método de Runge-Kutta para


solucionar sistemas de ecuaciones diferenciales de primer orden (lineales o no). Para
nuestro caso, deberemos ser capaces de aplicar el método para un sistema de dos
ecuaciones diferenciales. Para aplicar el método de Runge-Kutta de cuarto orden a
dicho sistema

dy
= f1 (t , x, y ), x(t0 ) = x0
dt
dy
= f 2 (t , x, y ), y ( x0 ) = y0
dt

deberemos resolver:
1
xn +1 = xn + (m + 2m2 + 2m3 + m4 )
6 1
1
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 )
6

m1 = hf1 (tn , xn , yn ) k1 = hf 2 (tn , xn , yn )


m2 = hf1 (tn + 1 h, xn + 1 m1 , yn + 1 k ) k2 = hf 2 (tn + 1 h, xn + 1 m1 , yn + 1 k )
2 2 2 1 2 2 2 1

m3 = hf1 (tn + 1 h, xn + 1 m2 , yn + 1 k2 ) k3 = hf 2 (tn + 1 h, xn + 1 m2 , yn + 1 k2 )


2 2 2 2 2 2
m4 = hf1 (tn + h, xn + m3 , yn + k3 ) k4 = hf 2 (tn + h, xn + m3 , yn + k3 )

1.2.4- MÉTODOS ADAPTATIVOS

La exactitud de un método numérico como del de Runge-Kutta puede ser mejorado


disminuyendo el tamaño del paso h.- Esta mayor exactitud se obtiene a un costo: mayor
tiempo de cálculo y mayores posibilidades de error de redondeo. En general, en el
intervalo de aproximación pueden existir subintervalos en que baste un tamaño mayor
de paso para mantener el error de truncamiento dentro de cierto límite deseado. Los
métodos numéricos que emplean variables de paso se llaman métodos adaptativos y uno
de los más difundidos para aproximar las soluciones de ecuaciones diferenciales es el
algoritmo de Runge-Kutta-Fehlberg.

1.2.5- ERRORES EN LOS MÉTODOS NUMÉRICOS

Para tener una idea más clara de cual es el grado de precisión que se obtiene al aplicar
esta técnica numérica comparada con la solución analítica, se define el error absoluto
como:

Error Absoluto = valor exacto − valor aproximado

donde el valor exacto está dado por la solución analítica y el valor aproximado por la
solución numérica. De forma similar, puede definirse un error relativo y el error relativo
porcentual son, respectivamente:

valor exacto − valor aproximado


Error Re lativo =
valor exacto

valor exacto − valor aproximado


Error Re lativo Porcentual = x100
valor exacto

Éstas son medidas que se pueden utilizar para comparar las bondades de la
aproximación por Runge-Kutta. Para elegir y aplicar un método numérico en la solución
de un problema de valores iniciales, debemos estar conscientes de las diversas fuentes
de errores. Para algunos problemas, la acumulación de errores podría reducir la
exactitud de una aproximación, e incluso provocar que los resultados obtenidos sean
considerablemente incorrectos.
Una fuente perpetua de error en los cálculos es el error de redondeo. No importa que
calculadora o computadora que se utilice para realizar los cálculos, sólo es posible
representar los números con una cantidad finita de dígitos5. Cabe aclarar que para este
ejercicio se cometen errores de redondeo tanto en la solución numérica como en la
solución analítica, ya que este tipo de error depende principalmente del programa
computacional que se utilice6. Este error es impredecible, difícil de analizar y no será
motivo de nuestro análisis.
Al iterar un algoritmo iterativo se obtiene una sucesión de valores y1 y2 ...yn y en general
dichos valores no coincidirán con el de la solución exacta y(ti) debido a que el algoritmo
solo proporciona una aproximación por polinomio de Taylor de un orden determinado

5
Sin embargo, desde el advenimiento de los programas computacionales simbólicos (Maple y
Mathematica) los problemas de errores de redondeo desaparecen. Esto es así, ya que los mismos trabajan
algebraicamente cuando se hayan las soluciones analíticas y mantienen los valores exactos de los pasos de
cada algoritmo al acumular en cada iteración la expresión exacta representada por medio de expresiones
simbolico-algebraicas mediante una composición de funciones iterativas.
6
Incluso es posible que el método de la matricial exponencial cometa errores de redondeo mayores, ya
que implica el cálculo de una matriz inversa y los mismos pueden ser considerablemente grandes en casos
donde el determinante se aproxime a cero. Al calcular los valores y vectores propios por aproximación,
dichos errores también pueden ser importantes.

También podría gustarte