Documente Academic
Documente Profesional
Documente Cultură
ILM 1
3 TCNICAS NUMRICAS
Introduccin
Como vimos en el captulo anterior la mayora de nuestros modelos dinmicos
conducen a ecuaciones diferenciales. En buena parte de los casos la resolucin analtica
es difcil cuando no inexistente y por lo tanto es necesario recurrir a resoluciones
numricas. Sin pretender abarcar los aspectos del clculo numrico trataremos de hacer
una brevsima referencia a algunas tcnicas de resolucin numrica de ecuaciones,
apoyndonos en el paquete de clculo SCILAB.
SCILAB es un paquete de clculo de cdigo abierto y licencia libre desarrollado
originalmente por el INRIA de Narbonne, Francia. Se puede descargar de la siguiente
direccin:
www.scilab.org
o alternativamente de
www.scicoslab.com
y tiene asociado un programa grfico de simulacin denominado SCICOS.
Scilab est pensado para el manejo de matrices y vectores aunque se pueden desarrollar
todas las ecuaciones de clculo que interesen. Adems de las operaciones elementales,
el programa cuenta con funciones predefinidas as como elementos que permiten
utilizarlo para la programacin. Ver el ejemplo ejem3.1.sce; para ejecutarlo, una vez
abierta la consola de Scilab y seleccionado el directorio correspondiente, escribir:
exec(ejem3.1.sce) y luego presionar la tecla Enter.
Ecuaciones algebraicas
Como hemos mencionado los modelos dinmicos implican en general ecuaciones
diferenciales. Para resolver dichas ecuaciones se necesita conocer las condiciones
iniciales o de contorno; normalmente se parte del sistema en estado estacionario. Sin
embargo, en condiciones estacionarias, al igualar a cero el cambio con la variable
tiempo, las ecuaciones diferenciales ordinarias se transforman en algebraicas.
Supongamos un sistema de n ecuaciones con n incgnitas
Expresado en forma matricial
n n nn n n n
n n
n n
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
= + + + +
= + + + +
= + + + +
...
:
...
...
3 3 2 2 1 1
2 2 3 23 2 22 1 21
1 1 3 13 2 12 1 11
DINMICA Y CONTROL DE PROCESOS
ILM 2
O bien en forma ms compacta
Resolver este sistema de ecuaciones quiere decir hallar las races de
Multiplicando por la matriz inversa de A
La resolucin de este sistema en Scilab puede hacerse fcilmente (ver ejem3.2.sce).
Funciones de una variable
An en funciones de una variable muchas veces es necesario recurrir a una tcnica
numrica. Por ejemplo, si se quiere hallar la solucin de f(x) = 0 se realizan k
iteraciones partiendo de determinado valor inicial de x hasta satisfacer determinado
criterio de convergencia
Tambin suele tomarse la convergencia referida a la variable en lugar de la funcin:
tolerancia absoluta:
tolerancia relativa:
Un mtodo simple es el de sustitucin directa: sea la ecuacin f(x) = 0 , la reescribimos
de la siguiente forma x =g(x) . Esto nos permite plantear una interaccin de la forma
x
k+1
= g(x
k
) . Se realizan iteraciones hasta encontrar x
*
que satisfaga determinado criterio
de convergencia de modo que x
*
=g(x
*
).
Por ejemplo, consideremos un RCAI donde se da una reaccin de segundo orden. Del
balance de masa
r
k
k k
x
x x
c s
1
1
(
(
(
(
(
(
(
(
=
(
(
(
(
(
(
(
(
(
(
(
(
n n
nn n n n
n
n
b
b
b
b
x
x
x
x
a a a a
a a a a
a a a a
.
.
.
.
. .
. . . . . .
. .
. .
3
2
1
3
2
1
3 2 1
2 23 22 21
1 13 12 11
b Ax =
( ) b Ax x f =
b A x
I A A
b A Ax A
1
1
1 1
=
=
=
como
( ) c s
k
x f
r k k
x x c s
1
DINMICA Y CONTROL DE PROCESOS
ILM 3
Si, por ejemplo, v/V = 1 min
-1
, C
Ain
= 1 gmol/L, k = 1 L/(gmol.min), en estado
estacionario
O escribiendo x = C
As
Escribimos
realizamos las iteraciones
Por ejemplo, partiendo de x
o
= 0.5
Que converge lentamente a 0.618 (vase ejem3.3.sce). Si graficamos la evolucin de
las distintas soluciones
A pesar de su simplicidad pueden generarse problemas si no se elije adecuadamente el
punto de partida. Por ejemplo partiendo de x
o
= 0 las iteraciones no convergen sino que
oscilan entre el valor 0 y el valor 1.
0 2 4 6 8 10 12 14 16 18 20
0.50
0.55
0.60
0.65
0.70
0.75
k
x
(
k
)
2
A A Ain
A
kC C
V
v
C
V
v
dt
dC
=
0 1
2
=
As As
C C
( ) 1
2
+ = x x x f
( ) x g x x x x = + = + = 1 1
2
( )
k k k
x g x x = + =
+
1
1
5680 . 0 1 6774 . 0
6774 . 0 1 5412 . 0
5412 . 0 1 7071 . 0
7071 . 0 1 5 . 0
4
3
2
1
= + =
= + =
= + =
= + =
x
x
x
x
DINMICA Y CONTROL DE PROCESOS
ILM 4
Otro mtodo muy utilizado es el de la biseccin: partiendo de dos puntos x
1
y x
2
tales
que el valor de la funcin evaluada en ellos sea de distinto signo, se evala la funcin en
el punto intermedio x
3
. Si es del mismo signo que x
1
se sustituye por ste (en idntica
forma si fuera x
2
) y as sucesivamente hasta satisfacer determinado criterio de
convergencia.
El mtodo de reguli falsi es similar al anterior aunque el punto de iteracin surge de
realizar la interseccin de la recta que une los dos puntos de la curva seleccionados con
el eje de abscisas,
0 2 4 6 8 10 12 14 16 18 20
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
k
x
(
k
)
DINMICA Y CONTROL DE PROCESOS
ILM 5
Tambin se recurre normalmente a los mtodos de Newton o variaciones del mismo.
Para ello es necesario conocer la pendiente en el punto en el que se est evaluando la
funcin. De la interseccin de dicha pendiente con el eje de abscisas surge el siguiente
punto de la iteracin. Es un mtodo que tiene una convergencia mucho ms rpida que
los anteriores, si bien requiere mayor informacin (conocer la derivada).
El paquete de clculo Scilab tiene la funcin fsolve que permite halla las races de una
funcin (ver ejem3.4.sce).
Funciones de varias variables
Para sistemas multivariable la estrategia es similar. Si
es el sistema de ecuaciones con varias variables
usando la expansin por Taylor
( )
( )
( )
(
(
(
(
(
(
=
(
(
(
(
(
(
0
.
.
0
0
,..., ,
.
.
,..., ,
,..., ,
2 1
2 1 2
2 1 1
n n
n
n
x x x f
x x x f
x x x f
( ) 0 x f =
( ) ( ) ....
1
+ A
c
c
+ = +
=
j
n
j j
i
i i
x
x
f
f f x x x
DINMICA Y CONTROL DE PROCESOS
ILM 6
y despreciando los trminos superiores
donde
Y las iteraciones se resuelven segn
La misma funcin de Scilab fsolve puede utilizarse para un sistema con varias variables
y tambin admite trabajar con la matriz Jacobiana (ver ejem3.4.sce).
Estabilidad de soluciones numricas
Cuando trabajamos con resoluciones numricas de ecuaciones es importante evaluar la
estabilidad de la solucin, esto es, si converge hacia un determinado valor, oscila entre
una o ms soluciones o diverge, creciendo en forma indefinida. Una forma de analizar la
estabilidad es considerar que si se puede escribir la ecuacin en la forma x = g(x) debe
cumplirse que x
*
es una solucin estable si
evaluada en x
*
.
Por ejemplo, en el mtodo de Newton
Por lo tanto el mtodo converge siempre que f(x
*
) 0
( ) ( ) x J x f x x f + = +
(
(
(
(
(
(
c
c
c
c
c
c
c
c
c
c
c
c
=
n
n n n
n
x
f
x
f
x
f
x
f
x
f
x
f
. .
. . . . .
. . . . .
. .
2 1
1
2
1
1
1
J
( )
( )
( )
k
1
k k 1 k
k
1
k k
x f J x x
x f J x
x J x f
=
=
= + 0
1 <
c
c
x
g
( )
( )
( )
k
k
k k k
x f
x f
x x g x
'
= =
+1
( )
( )
( )
( ) ( )
( ) | |
( ) ( )
( ) | |
2 2
1
k
k k
k
k k
k
k
k
x f
x f x f
x f
x f x f
x f
x f
x g
'
' '
=
'
' '
+
'
'
= '
( )
( ) ( )
( ) | |
2
*
* *
*
x f
x f x f
x g
'
' '
= '
DINMICA Y CONTROL DE PROCESOS
ILM 7
Integracin numrica
Si se tiene una ecuacin diferencial ordinaria
Pueden idearse distintas estrategias para realizar la integracin numrica. Por ejemplo,
en el mtodo de Euler denominado explicito se realiza la siguiente aproximacin:
Normalmente se utiliza un intervalo de tiempo constante entre las iteraciones
entonces
o bien en sistemas de varias variables
En el denominado mtodo de Euler implcito se considera
Vase el ejem3.5.sce.
Otros mtodos que proporcionan resultados ms ajustados que el de Euler son los de
Runge-Kutta. Veamos el caso ms sencillo: la idea es usar Euler para evaluar el valor de
la funcin en la mitad del intervalo.
Sea m
1
la pendiente en el punto inicial y m
2
la pendiente en el punto del medio.
( ) x f
dt
dx
=
( ) ( )
( ) ( ) k t k t
k x k x
dt
dx
+
+
~
1
1
( ) ( )
( ) ( )
t
k x k x
k x f
A
+
~
1
( ) ( ) ( ) ( ) k x f t k x k x A + = +1
( ) ( ) ( ) ( ) k t k k x f x x A + = +1
( ) ( )
( ) ( )
t
k x k x
k x f
A
+
~ +
1
1
( ) ( ) ( ) ( ) 1 1 + A + = + k x f t k x k x
( ) ( ) ( ) ( ) 1 1 + A + = + k t k k x f x x
DINMICA Y CONTROL DE PROCESOS
ILM 8
Este concepto se puede extender para utilizar ms puntos intermedios. Por ejemplo para
el mtodo de Runge-Kutta de 4 orden
Scilab posee una rutina de integracin basada en estos mtodos denominada ode (ver
ejem3.6.sce y ejem3.7.sce).
( ) ( ) ( )
( ) ( )
( ) ( ) t m k x k x
m
t
k x
t
k t f m
k x k t f m
A + = +
|
.
|
\
| A
+
A
+ =
=
2
1 2
1
1
2
,
2
,
( ) ( ) ( )
( ) ( )
( ) ( )
( ) ( ) ( )
( ) ( ) t
m m m m
k x k x
t m k x t k t f m
m
t
k x
t
k t f m
m
t
k x
t
k t f m
k x k t f m
A
(
+ + + + = +
A + A + =
|
.
|
\
| A
+
A
+ =
|
.
|
\
| A
+
A
+ =
=
6 3 3 6
1
,
2
,
2
2
,
2
,
4 3 2 1
3 4
2 3
1 2
1