Vous êtes sur la page 1sur 87

DEPARTAMENTO DE

INGENIERÍA QUÍMICA
UNIVERSIDAD DE
LOS ANDES
________
Nicolás Ratkovich
Miguel Daza
Esteban Guerrero
Hugo Pineda
Juan Pablo Valdés

________

INTRODUCCIÓN AL 2018

MODELAMIENTO Y
SIMULACIÓN
IQUI 3039
Universidad de los Andes | Vigilada Mineducación
Reconocimiento como Universidad: Decreto 1297 del
30 de mayo de 1964.
Reconocimiento personería jurídica: Resolución 28 del
23 de febrero de 1949 Minjusticia.
CONTENIDO
SECCIÓN DE MATLAB
1. Introducción 6

2. Introducción a MATLAB 7

2.1. Apariencia 7

2.2. Variables 7

2.3. Operadores 8

2.4. Funciones y scripts 9

3. Sistemas de ecuaciones no-lineales 9

3.1. Sistemas de una variable 10

3.1.1. Método numérico Sustitución Sucesiva 10

3.1.2. Método numérico Wegstein 11

3.1.3. Método numérico Newton-Raphson 13

3.1.4. Método numérico Bisección 14

3.1.5. Método numérico Falsa Posición (Interpolación Lineal) 16

3.1.6. Método numérico Secante 18

3.1.7. Ejemplo IQUI 19

3.2. Sistemas de múltiples variables 22

3.2.1. Método numérico de Sustitución Sucesiva Multivariable 22

3.2.2. Método numérico de Wegstein Multivariable 24

3.2.3. Método numérico de Newton Rapshon Multivariable 26

3.2.4. Método numérico de Broyden 28

3.2.5. Método numérico de Sherman Morrison 29

3.2.6. Ejemplo IQUI 32

4. Sistemas de ecuaciones lineales 38

4.1. Métodos iterativos 39

4.1.1. Método numérico de Gauss-Seidel 39


4.1.2. Método numérico de Jacobi 41

4.1.3. Ejemplo IQUI 42

4.2. Métodos algebraicos 45

4.2.1. Método de Eliminación de Gauss 45

4.2.2. Método de Eliminación de Gauss-Jordan 47

4.2.3. Ejemplo IQUI 49

5. Sistemas de ecuaciones diferenciales ordinarias 52

5.1. Condiciones iniciales 53

5.1.1. Método de Euler (Runge-Kutta Primer Orden) 54

5.1.2. Método de Runge-Kutta Segundo Orden 55

5.1.3. Método de Runge Kutta Cuarto Orden 56

5.1.4. Método de Taylor Segundo Orden 58

5.1.5. Método de Taylor Cuarto Orden 59

5.1.6. Ejemplo IQUI 61

5.2. Condiciones de frontera 66

5.2.1. Sistemas de 1 condición de frontera 66

5.2.2. Sistemas de 2 o más condiciones de frontera 68

5.2.3. Ejemplo IQUI 70

6. Sistemas de ecuaciones algebro-diferenciales (DAE) 72

6.1. Solución de sistemas DAE de índice 1 72

6.2. Solución de sistemas DAE de índice 2 o superior 75

7. Sistemas de ecuaciones diferenciales parciales 76

7.1. Método de diferencias finitas 76

7.2. Ejemplo IQUI 78

8. MESH 81

3
SECCIÓN DE CFD
9. Dinámica Computacional de Fluidos (CFD) 89

9.1. Tipos de flujos 90

9.2. Pasos para modelar un sistema 91

9.3. Ecuaciones que modelan un sistema 93

9.4. Condiciones de Frontera 96

9.5. Solución numérica de las ecuaciones 100

9.6. Algoritmo de Gauss Seidel 105

9.7. Medición de la convergencia 108

9.8. Esquemas de discretización 109

9.9. Resolviendo el campo de velocidad 115

9.10. Flujo en estado no estacionario 117

9.11. Mallado 119

9.12. Física de la turbulencia de los fluidos 121

9.13. Modelamiento de la turbulencia 123

9.14. Modelamiento de la región cercana a la pared 134

9.15. Condiciones de frontera de entrada y salida 144

9.16. ¿Qué es el Wall Y+? 146

9.17. Mezcla turbulenta y reacciones químicas 149

9.18. Modelamiento de reacciones químicas 162

9.19. Modelos no PDF 172

9.20. Modelamiento de flujos multifásicos 173

9.21. Fuerzas en partículas dispersas 178

10. Tutorial CFD Bomba Centrifuga 181

11. Tutorial CFD Agitador Rushton 194

4
DEPARTAMENTO DE
INGENIERÍA QUÍMICA
UNIVERSIDAD DE
LOS ANDES
________
Nicolás Ratkovich
Miguel Daza
Esteban Guerrero
Hugo Pineda
Juan Pablo Valdés

SECCIÓN DE ________

MATLAB Y 2018

MÉTODOS
NUMÉRICOS
Universidad de los Andes | Vigilada Mineducación
Reconocimiento como Universidad: Decreto 1297 del
30 de mayo de 1964.
Reconocimiento personería jurídica: Resolución 28 del
23 de febrero de 1949 Minjusticia.

5
1. INTRODUCCIÓN
Propósito

El propósito de estos dos primeros capítulos es dar una breve introducción


al área de modelamiento y simulación en ingeniería y entender el alcance y
los objetivos principales de esta área.

Adicionalmente, se dará una introducción al software de MATLAB para


entender de manera básica la interfaz gráfica, las diferentes funcionalidades,
comandos básicos, operadores y funciones.

El modelamiento corresponde a la representación matemática de un


sistema para obtener mayor comprensión acerca de cómo las dinámicas
internas pueden ser manipuladas por distintas variables. El modelamiento
matemático es una herramienta importante para la ingeniería pues permite
cuantificar fenómenos físicos. En este punto es pertinente introducir el
concepto de simulación. Se define simulación como la transición de
modelos matemáticos hacia la descripción del comportamiento de un
sistema por medio de un conjunto de parámetros alimentados al modelo.
En otras palabras, la simulación permite la predicción del comportamiento
de un modelo.

El modelaje y la simulación son recursos importantes para la labor del


ingeniero por varios motivos. En primer lugar, es frecuente encontrar
eventos difíciles de replicar, bien sea por el costo de realizar experimentos,
Figura 1. Esquema del área de o el peligro que representa su reproducción. También es posible encontrar
modelamiento y simulación a través de fenómenos de la naturaleza cuyo marco temporal excede el tiempo de
herramientas computacionales observación disponible para la vida humana. En otros casos, las
condiciones experimentales del sistema serán sensibles a perturbaciones
por lo que su manejo experimental puede resultar inconveniente. La
simulación y modelamiento elimina estas dificultades. Como ventaja final,
las simulaciones reemplazan recursos físicos los cuales son en general
perecederos, por recursos computacionales que solo están limitados por el
avance tecnológico disponible y el detalle del modelo usado.

Es importante tener en cuenta el propósito del modelaje que se persigue.


Las magnitudes del modelo son importantes para la selección del detalle
del modelaje. Un problema de ingeniería puede ser expresado en múltiples
escalas (desde el nivel atómico hasta las dimensiones que se desee), por lo
tanto, la complejidad del modelo es igualmente variable. No obstante, no
siempre los modelos más complejos arrojan los mejores resultados. Con
frecuencia, es posible obtener los mismos resultados usando modelos más
sencillas los cuales pueden ser simulados con mayor facilidad, pues los
modelos simples requieren de menos capacidad computacional para su
resolución. Es importante tener noción de cuál es el grado de detalle
requerido para el modelamiento adecuado de cada sistema, de forma que
el modelo represente las características deseadas del sistema de una manera
suficientemente fiel a la realidad. Es importante considerar que el modelaje
no siempre será la representación exacta e idéntica de los fenómenos físicos
observados en la realidad, pero su representación matemática brinda una
aproximación lo suficientemente válida para la comprensión del fenómeno.

2. INTRODUCCIÓN A MATLAB
MATLAB® es un entorno matemático de simulación de alto desempeño,
en el cual es posible operar matrices para la resolución de cálculos en
ciencia e ingeniería. Esta herramienta incluye un entorno abierto, en el cual
se integra la programación con la visualización. Al tratarse de un ambiente
de programación amigable, cuenta con un gran número de ayudas y
funciones predeterminadas. Por otro lo anterior, MATLAB® es una
herramienta que es utilizada en diversas disciplinas y sus usos incluyen el
desarrollo de algoritmos, el análisis de datos, el desarrollo de aplicaciones
e incluso el modelamiento y simulación de prototipos. A continuación, se
introducen algunos de los conceptos básicos de esta herramienta.

2.1. APARIENCIA
MATLAB cuenta con cinco paneles principales como se evidencia en al
figura 1:
 Carpeta de Trabajo: Muestra la carpeta y los archivos de la ruta actual
de trabajo.
 Command Window: Muestra los resultados y los comandos
empleados.
 Workspace: Muestra las variables en uso.
 Command History: Muestra el historial de los comandos utilizados.
 Barra de herramientas: Esta barra incluye las opciones de manejo del
archivo, complementos extra y aplicaciones disponibles.

2.2. VARIABLES
Figura 2. Interfaz general del software Existen diversos tipos de variables que pueden ser inicializadas. Para este
MATLAB versión 2016 curso, serán de particular importancia las siguientes.

 Escalar: Representan un valor puntual.


Se definen como:
𝐴 = 1;

 Vectores: Representan un conjunto de valores con una única


dirección.
Se definen como:
𝐴 = [1,2]; O 𝐴 = [1 2];
para vector fila.

𝐵 = [3; 4] ;
para vector columna.

 Matrices: Representan conjuntos de valores con dos dimensiones.


Se definen como:
𝐴 = [1,2; 3,4];

7
Es importante recordar que en MATLAB se diferencian mayúsculas de
minúsculas.

2.3. OPERADORES

 Aritméticos:
Para escalares las operaciones se definen con:

Suma: +
Resta: -
Multiplicación: *
División: /
Potencia: ^
Exponencial de n: exp(n)
Logaritmo Natural de n: log(n)
Logaritmo en base 10 de n: log10(n)

Si se desea operar los elementos (i, j) de dos matrices A y B, se debe hacer


anteponiendo un punto al operador ( A.*B).

Otros operadores importantes de matrices:

Traspuesta: M‘
Norma: norm(M)
Determinante: det(M)
Inversa: inv(M)

 Lógicos y Relacionales
Mayor que: >
Mayor o igual que: >=
Igual: ==
Menor o igual que: <=
Menor que: <
Distinto de: ~=

 Condicionales
La sintaxis de condicionales en MATLAB se escribe como:

if Condición 1
Expresión 1
elseif Condición 2
Expresión 2
else
Expresión 3
end

 Variables, comandos y constantes especificadas

Respuesta anterior: ans

8
𝜋 : Pi
∞: Inf
Not a Number: NaN
Longitud del vector v: length(v)
Limpieza del command window: clc
Eliminación de variables del workspace: clear all
Cerrar todas las ventanas: Close all
Comando de parada: Ctrl+C
Evaluación del tiempo de ejecución: tic … toc

2.4. FUNCIONES Y SCRIPTS


 Función: Una función es un comando que requiere una serie de
parámetros de entrada para generar una salida. La sintaxis es:

function NombreDeLaSalida = NombreDeLaFunción (Parámetro1,


Parámetro2, …)

 Scripts: No requiere especificar ni entradas ni salidas.

 Funciones anónimas: Estas son funciones que no requieren de la


creación de un archivo diferente. Se definen como:

NombreDeLaFunción=@(argumentos)expresión
f=@(x,y) y^2+3*x+8*x^2;

3. SISTEMAS DE ECUACIONES NO-LINEALES

Propósito

En Ingeniería Química, pocas veces los sistemas son compuestos por una
única variable. Por esta razón es importante estudiar métodos numéricos
robustos que permitan la resolución de problemas con múltiples variables
y ecuaciones. A lo largo de este capítulo se van a presentar distintos
métodos numéricos para la resolución de ecuaciones no-lineales que sean
dependientes de una (inicialmente) o múltiples variables (en la segunda
sección del capítulo).

Una vez sea presentada la teoría para cada método se va a presentar un


ejemplo seguido de su solución para ayudar al estudiante a entender la
implementación de dicho método en un software como lo es MATLAB®.

3.1. SISTEMAS DE UNA VARIABLE


3.1.1. MÉTODO NUMÉRICO DE SUSTITUCIÓN SUCESIVA

9
En este caso, dado que el sistema se ordena de la forma 𝑥 = 𝑔(𝑥), se sabe
que la raíz estará en la intersección de la línea 𝑥 = 𝑦 y 𝑥 = 𝑔(𝑥). Por esto,
mediante cada iteración, este método evalúa un punto cada vez más
cercano a la intersección hasta cumplir con un criterio de tolerancia. Así,
por ejemplo, al operar 𝑥2 = 𝑔(𝑥1 ), el valor de 𝑔(𝑥2 ) será más cercano a
𝑥 = 𝑦 que el de 𝑥1 . Una representación aproximada del métodd se puede
ver en la figura 3.

Procedimiento

1. Ordenar la ecuación para que quede de la forma:

𝑥 = 𝑔(𝑥)
2. Fijar un valor inicial 𝑥1 .

3. Operar iterativamente
𝑥𝑛+1 = 𝑔(𝑥𝑛 )

4. Establecer como criterio de convergencia

𝑥𝑛+1 − 𝑥𝑛
| | < 𝑡𝑜𝑙𝑒𝑟𝑎𝑛𝑐𝑖𝑎
Figura 3. Representación gráfica del 𝑥𝑛
método de sustitución sucesiva
Si este se cumple, salir del ciclo. Si no, 𝑥𝑛 = 𝑥𝑛+1 .

Ecuación general
𝑥𝑛+1 = 𝑔(𝑥𝑛 ) (1)

Ejemplo

Resolver la siguiente ecuación no lineal utilizando como valor inicial:


𝑥0 = 0.
𝑥 2 − 3𝑥 + 𝑒 𝑥 − 2 = 0
Solución

Lo primero que se debe plantear es la forma g(x) de la ecuación la cual


puede verse en la ecuación 2.

𝑥2 + 𝑒 𝑥 − 2
𝑔(𝑥) = 𝑥 = (2)
3

Función Principal:
function EJ_SS()
% Preparación Codigo
clc
close all
% Parametros
cond=true;
tol=1e-6;
x0=0;
% Método Numérico
while cond==true
xnew=f(x0);

10
error=abs((xnew-x0)/x0);
if error<tol
break
else
x0=xnew;
end
end
% Solución
disp('Valor "x"')
disp(xnew)

Función Secundaria:
function rta=f(x)
% Ecuación
rta=(x.^2+exp(x)-2)/3;

Resultado

𝒙 = −𝟎. 𝟑𝟗𝟎𝟑

3.1.2. MÉTODO NUMÉRICO DE WEGSTEIN

Al igual que en el caso anterior, se ordena la ecuación de la forma 𝑥 =


𝑔(𝑥), por lo que la raíz se encontrará sobre 𝑥 = 𝑦. Para este método es
necesario partir de una inicialización 𝑥1 , calcular la primera iteración 𝑥2 =
𝑔(𝑥1 ), a partir de la cual se define 𝑥3 como la intersección entre 𝑥 = 𝑦 y
la línea que conecta 𝑥1 y 𝑥2 . Así, con cada iteración, esta línea cruzará más
cerca de la raíz. Una representación gráfica del método de Wegstein se
puede ver en la figura 4.

Procedimiento

1. Ordenar la ecuación para que quede de la forma:

𝑥 = 𝑔(𝑥)
Figura 4. Representación gráfica del 2. Fijar un valor inicial 𝑥1 .
método de Wegstein
3. Operar la primera iteración
𝑥𝑛 = 𝑔(𝑥1 )

4. Operar iterativamente
𝑥1 𝑔(𝑥𝑛 ) − 𝑥𝑛 𝑔(𝑥1 )
𝑥𝑛+1 =
𝑥1 − 𝑔(𝑥1 ) − 𝑥𝑛 + 𝑔(𝑥𝑛 )

5. Establecer como criterio de convergencia


𝑥𝑛+1 − 𝑥𝑛
| | < 𝑡𝑜𝑙𝑒𝑟𝑎𝑛𝑐𝑖𝑎
𝑥𝑛

Si este se cumple, salir del ciclo. En caso contrario 𝑥1 =


𝑥𝑛 y 𝑥𝑛 = 𝑥𝑛+1.

11
Ecuación general
𝑥𝑛−1 𝑔(𝑥𝑛 ) − 𝑥𝑛 𝑔(𝑥𝑛−1 )
𝑥𝑛+1 = (3)
𝑥𝑛−1 − 𝑔(𝑥𝑛−1 ) − 𝑥𝑛 + 𝑔(𝑥𝑛 )

Ejemplo

Resolver la siguiente ecuación no lineal utilizando como valor inicial:


𝑥0 = 0.5.
0 = 𝑒 3−𝑥 + sin(𝑥) − 5𝑥

Solución

La forma g(x) de la ecuación se puede ver representada en la ecuación 4.

𝑒 3−𝑥 + sin(𝑥)
𝑔(𝑥) = 𝑥 = (4)
5

Función Principal:
function EJ_W()
% Preparación Codigo
clc
close all
% Parametros
cond=true;
tol=1e-6;
xo=0.5;
% Iteración 1
xa=f(xo);
% Método Numérico
while cond==true
xnew=(xo*f(xa)-xa*f(xo))/(xo-f(xo)-xa+f(xa));
error=abs((xnew-xa)/xa);
if error<tol
break
else
xo=xa;
xa=xnew;
end
end
% Solución
disp('Valor "x"')
disp(xnew)

Función Secundaria:
function rta=f(x)
% Ecuación
rta=(1/5)*(exp(3-x)+sin(x));

Resultado

𝒙 = 𝟏. 𝟓𝟗𝟎𝟒

12
3.1.3. MÉTODO NUMÉRICO DE NEWTON RAPHSON

El método de Newton Raphson se basa en la expansión de la serie de


Taylor de una función no lineal cerca de la estimación inicial de la raíz 𝑥1 .
Una representación gráfica del método de Newton-Raphson puede ser
vista en la figura 5.

𝑓 ′′ (𝑥1 )(𝑥 − 𝑥1 )2
𝑓(𝑥) = 𝑓(𝑥1 ) + 𝑓 ′ (𝑥1 )(𝑥 − 𝑥1 ) +
2!
𝑓 ′′′ (𝑥1 )(𝑥 − 𝑥1 )3
+ +⋯ (5)
3!
Donde 𝑓(𝑥) = 0. Por lo tanto, acotando la serie a los primeros dos
Figura 5. Representación gráfica del términos, la ecuación 5 nos queda de la siguiente forma:
método de Newton Raphson
𝑓(𝑥1 )
𝑥 = 𝑥1 − (6)
𝑓 ′ (𝑥1 )

De esta manera, en cada iteración, se calcula el valor de “x” a partir del


𝑓(𝑥1 )
valor de “x” en la iteración anterior más la corrección . En este
𝑓 ′ (𝑥1 )
método, la expresión de la derivada se puede ver en la ecuación (7).

𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 )
𝑓 ′ (𝑥) = (7)

Procedimiento

1. Ordenar la ecuación para que quede de la forma:

𝑓(𝑥) = 0

2. Establecer un valor inicial 𝑥0 y un ℎ lo más pequeño posible.

3. En cada iteración
a. Calcular la derivada de la función en el punto

𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 )
𝑓 ′ (𝑥0 ) = (8)

b. Aproximar la raíz
𝑓(𝑥0 )
𝑥𝑛 = 𝑥0 − (9)
𝑓 ′ (𝑥0 )

𝑥𝑛 −𝑥𝑜
c. Si | | < 𝑡𝑜𝑙𝑒𝑟𝑎𝑛𝑐𝑖𝑎, salir del ciclo. La raíz será igual
𝑥𝑛
a 𝑥𝑛 .

d. De lo contrario 𝑥0 = 𝑥𝑛

13
Ecuación general

𝑓(𝑥𝑛 )
𝑥𝑛+1 = 𝑥𝑛 − (10)
𝑓 ′ (𝑥𝑛 )

Ejemplo

Resolver la siguiente ecuación no lineal utilizando como valor inicial:


𝑥0 = 1.
ln(1 + 𝑥 2 ) − √𝑥 = 0

Solución

Función Principal:
function EJ_NR()
% Preparación Codigo
clc
close all
% Parametros
cond=true;
tol=1e-6;
h=1e-3;
x0=1;
% Método Numérico
while cond==true
f0=f(x0);
df0=(f(x0+h)-f(x0))/h;
xnew=x0-f0/df0;
error=abs((xnew-x0)/x0);
if error<tol
break
else
x0=xnew;
end
end
% Solución
disp('Valor "x"')
disp(xnew)

Función Secundaria:
function rta=f(x)
% Ecuación
rta=log(1+x.^2)-(x^(0.5));

Resultado

𝒙 = 𝟏. 𝟓𝟗𝟎𝟒

3.1.4. MÉTODO NUMÉRICO DE BISECCIÓN

Para realizar el método de bisección, se parte acomodando la ecuación de


la forma 𝑓(𝑥) = 0. Además, es importante que la función sea continua a
lo largo de un intervalo [𝑥1 , 𝑥2 ], en el cual se encuentra incluida la raíz.

14
Para garantizar esto, se debe cumplir que los signos de la función evaluada
en los puntos 𝑥1 , 𝑥2 deben ser opuestos. Por tanto, la restricción se plantea
como 𝑓(𝑥1 )𝑓(𝑥2 ) < 0 se debe cumplir en todo momento. La idea de este
método es dividir cada intervalo en la mitad y posteriormente, analizando
los signos, se conoce el nuevo intervalo sobre el cual será evaluada la
restricción. Una representación aproximada de una función resuelta por
bisección se puede ver en la figura 6.

Figura 6. Representación gráfica del Procedimiento


método de Bisección
1. Ordenar la ecuación para que quede de la forma:

𝑓(𝑥) = 0

2. Estimar un intervalo limitado por [𝑥1 , 𝑥2 ] que incluya la raíz. Por


tanto, se valida que 𝑓(𝑥1 )𝑓(𝑥2 ) < 0.

3. Aproximar la raíz a:

𝑥2 + 𝑥1
𝑥𝑚 = (11)
2
4. Evaluar iterativamente
a. Si |𝑓(𝑥𝑚 )| < 𝑡𝑜𝑙𝑒𝑟𝑎𝑛𝑐𝑖𝑎, salir del ciclo. La raíz será igual
a 𝑥𝑚 .
b. Si 𝑓(𝑥1 )𝑓(𝑥𝑚 ) < 0 entonces 𝑥2 = 𝑥𝑚 de lo contrario se
tendrá que 𝑥1 = 𝑥𝑚
Ecuación general:

Punto Medio

(𝑢𝑝) (𝑙𝑜𝑤)
(𝑚) 𝑥𝑛 + 𝑥𝑛
𝑥𝑛 = (12)
2
Decisión para el límite superior

(𝑢𝑝) (𝑢𝑝) (𝑚)


(𝑢𝑝)
𝑥𝑛 ↔ 𝑓(𝑥𝑛 ) ∙ 𝑓(𝑥𝑛 ) < 0
𝑥𝑛+1 = { (𝑚) (𝑢𝑝) (𝑚)
} (13)
𝑥𝑛 ↔ 𝑓(𝑥𝑛 ) ∙ 𝑓(𝑥𝑛 ) > 0

Decisión para el límite inferior

(𝑙𝑜𝑤) (𝑙𝑜𝑤) (𝑚)


(𝑙𝑜𝑤)
𝑥𝑛 ↔ 𝑓(𝑥𝑛 ) ∙ 𝑓(𝑥𝑛 ) < 0
𝑥𝑛+1 ={ (𝑚) (𝑙𝑜𝑤) (𝑚)
} (14)
𝑥𝑛 ↔ 𝑓(𝑥𝑛 ) ∙ 𝑓(𝑥𝑛 ) > 0
Ejemplo

Resolver la siguiente ecuación no lineal utilizando como límite superior


(𝑢𝑝) (𝑙𝑜𝑤)
𝑥0 = 10 y como límite inferior 𝑥0 = 6.

15
8𝑥 − 𝑥 2 + 5 = 0
Solución

Función Principal:
function EJ_B()
% Preparación Codigo
clc
close all
% Parametros
cond=true;
tol=1e-6;
xl=6;
xu=10;
% Método numérico
while cond==true
xm=(xu+xl)/2;
fl=f(xl);
fm=f(xm);
error=abs(fm);
if error<tol
break
elseif fl*fm>0
xl=xm;
else
xu=xm;
end
end
disp('Valor "x"')
disp(xm)

Función Secundaria:
function rta=f(x)
% Ecuación
rta=8.*x-x.^2+5;

Resultado

𝒙 = 𝟖. 𝟓𝟖𝟐

3.1.5. MÉTODO NUMÉRICO DE FALSA POSICIÓN

En el método de falsa posición, se parte acomodando la función a la forma


𝑓(𝑥) = 0 y seleccionando un intervalo 𝑥1 y 𝑥2 que contenga la raíz. Para
validar esta restricción, se debe cumplir que 𝑓(𝑥1 )𝑓(𝑥2 ) < 0 . La idea
principal detrás de este método es interpolar una línea recta, que obedezca
una función 𝑦(𝑥) = 𝑎𝑥 + 𝑏 y calcular la intersección de esta con el plano
𝑦(𝑥) = 0 . Así, en cada iteración, se encuentra un 𝑥𝑛 intermedio que se
acercará progresivamente a la raíz de la función.

Procedimiento

1. Ordenar la ecuación para que quede de la forma:

16
𝑓(𝑥) = 0

2. Estimar un intervalo limitado por [𝑥𝑙 , 𝑥𝑢 ] que incluya la raíz. Por


tanto, se valida que 𝑓(𝑥𝑙 )𝑓(𝑥𝑢 ) < 0.

3. Iniciar un ciclo en el cual se evalué en cada iteración


Figura 7. Representación gráfica del
método de Falsa posición
𝑓(𝑥𝑙 )(𝑥𝑙 − 𝑥𝑢 )
𝑥𝑛 = 𝑥𝑖 − (15)
𝑓(𝑥𝑙 ) − 𝑓(𝑥𝑢 )

4. Evaluar iterativamente

a. Si |𝑓(𝑥𝑛 )| < 𝑡𝑜𝑙𝑒𝑟𝑎𝑛𝑐𝑖𝑎, salir del ciclo. La raíz será igual


a 𝑥𝑛
b. Si 𝑓(𝑥𝑛 )𝑓(𝑥𝑙 ) > 0, entonces 𝑥𝑙 = 𝑥𝑛 , en caso contrario
𝑥𝑢 = 𝑥𝑛 .

Ecuación general

1. Punto de Intersección:
𝑓(𝑥 (𝑢𝑝) )(𝑥 (𝑢𝑝) − 𝑥 (𝑙𝑜𝑤) )
𝑥𝑛 = 𝑥 (𝑢𝑝) − (16)
𝑓(𝑥 (𝑢𝑝) ) − 𝑓(𝑥 (𝑙𝑜𝑤) )

2. Decisión para el límite superior:


𝑥 (𝑢𝑝) ↔ 𝑓(𝑥𝑛 ) ∙ 𝑓(𝑥 (𝑢𝑝) ) < 0
𝑥 (𝑢𝑝) = { } (17)
𝑥𝑛 ↔ 𝑓(𝑥𝑛 ) ∙ 𝑓(𝑥 (𝑢𝑝) ) > 0

3. Decisión para el límite inferior:


(𝑙𝑜𝑤)
𝑥 (𝑙𝑜𝑤) ↔ 𝑓(𝑥𝑛 ) ∙ 𝑓(𝑥 (𝑙𝑜𝑤) ) < 0
𝑥 ={ } (18)
𝑥𝑛 ↔ 𝑓(𝑥𝑛 ) ∙ 𝑓(𝑥 (𝑙𝑜𝑤) ) > 0

Ejemplo

Resolver la siguiente ecuación no lineal utilizando como límite superior


(𝑢𝑝) (𝑙𝑜𝑤)
𝑥0 = 2 y como límite inferior 𝑥0 = 0.

𝑥 3 − 4𝑥 2 + 2 = 0

Solución

Función Principal:
function EJ_FP()
% Preparación Codigo
clc
close all
% Parametros
cond=true;

17
tol=1e-6;
xl=0;
xu=2;
% Método numérico
while cond==true
xn=xu-(f(xu)*(xu-xl))/(f(xu)-f(xl));
fl=f(xl);
fn=f(xn);
error=abs(fn);
if error<tol
break
elseif fl*fn>0
xl=xn;
else
xu=xn;
end
end
disp('Valor "x"')
disp(xn)

Función Secundaria:
function rta=f(x)
% Ecuación
rta=x^3-4*x^2+2;

Resultado

𝒙 = 𝟎. 𝟕𝟖𝟗𝟐

3.1.6. MÉTODO NUMÉRICO SECANTE

El método de la secante es una variación más simple del método de


Newton-Raphson. La principal diferencia que presenta este método es la
de que no calcula la derivada en el punto de estudio, sino que se aproxima
la pendiente a la recta que une la función evaluada en el punto de estudio
y el punto obtenido en la iteración anterior. Una representación gráfica del
método de la secante se puede ver en la figura 8. Este depende en gran
medida de los valores iniciales para asegurar su convergencia.

Ecuación general

𝑓(𝑥𝑛 )(𝑥𝑛−1 − 𝑥𝑛 )
𝑥𝑛+1 = 𝑥𝑛 − (19)
𝑓(𝑥𝑛−1 ) − 𝑓(𝑥𝑛 )

Ejemplo
Figura 8. Representación gráfica del
método Secante
Resolver la siguiente ecuación no lineal utilizando como valores iniciales
𝑥0 = 0 y 𝑥1 = 1.
3𝑥 − 2.5 = 0
Solución

18
Función Principal:
function EJ_S()
% Preparación Codigo
clc
close all
% Parametros
cond=true;
tol=1e-6;
xo=0;
xa=1;
% Método Numérico
while cond==true
fo=f(xo);
fa=f(xa);
xnew=xa-(fa*(xo-xa))/(fo-fa);
error=abs((xnew-xo)/xo);
if error<tol
break
else
xo=xa;
xa=xnew;
end
end
% Solución
disp('Valor "x"')
disp(xnew)

Función Secundaria:
function rta=f(x)
% Ecuación
rta=3.^x-2.5;

Resultado

𝒙 = 𝟎. 𝟖𝟑𝟒𝟎

3.1.7. EJEMPLO IQUI

Calcule el factor de fricción de una tubería empleando la expresión de


Colebrook para un sistema con una una viscosidad de 1.002E-3 N*s/m2,
una densidad de 998.2 kg/m3 y un 𝜖=0.002e-3 m. Este pasa por un tubo
de diámetro 0.05 m a 10 m/s.

Emplee para esto los 6 métodos explicados en esta sección y compare los
resultados en términos de tiempo de ejecución y número de iteraciones.

Solución

19
Función Principal:
function MetodosUnivariables()
close all
clear all
clc

tol=1e-9;
x0=0.05; %

%Sustitución Sucesiva------------------------------------
tic
for i=1:1:100

xn=G(x0);
if (abs((x0-G(x0))/x0)<tol)
disp(strcat('Sustituciones Sucesivas:',
num2str(x0)));
disp(strcat('El número de iteraciones de
Sustitución Sucesiva es de: ', num2str(i)));
break
else
x0=xn;
end
end
toc
disp(' ');

%Wegstein------------------------------------------------
x0=0.05; %
tic
x1= G(x0);
for i=1:1e6
if abs((x0-x1)/x0)<tol
disp(strcat('Wegstein: ', num2str(x0)));
disp(strcat('El número de iteraciones de Wegstein
es de: ', num2str(i)));
break
else
xn=(x0*G(x1)-x1*G(x0))/(x0-G(x0)-x1+G(x1));
x0=x1;
x1=xn;
end
end
toc
disp(' ');

%Bisección-----------------------------------------------
x0=0.05; %
tic
l=0.0001;
u=6;
if F(l)*F(u)>0
disp('El rango seleccionado no es adecuado para el
método de Bisección, por lo tanto la respuesta no
será válida.')
end

for i=1:1e6
m=(l+u)*0.5;

20
if abs(F(m))<tol
disp(strcat('Biseccion: ', num2str(m)));
disp(strcat('El número de iteraciones de
Bisección es de: ', num2str(i)));
break
elseif (F(m)*F(l))<0
u=m;
else
l=m;
end
end
toc
disp(' ');

%Falsa Posicion------------------------------------------
x0=0.05; %

tic
xi=0.1;
xd=6;
fi=F(xi);
fd=F(xd);

if (fi*fd)>0
disp('El rango seleccionado no es adecuado para el
método de Falsa Posición, por lo tanto la respuesta
no será válida.')
end

for i=1:1e6

fi=F(xi);
fd=F(xd);
xn=xi-fi*(xi-xd)/(fi-fd);
fn=F(xn);
if(abs(fn)<tol)
disp(strcat('Falsa Posición: ', num2str(xn)));
disp(strcat('El número de iteraciones de Falsa
Posición es de: ', num2str(i)));
break
elseif (fn*fi)>0
xi=xn;
else
xd=xn;
end
end
toc

%Newton Raphson (Límite)---------------------------------


x0=0.05; %
tic
h=1e-6;
for i=1:1e6
fun=F(x0);
if abs(fun)<tol
disp(strcat('Newton Rhapson (Límite): ',
num2str(x0), ' '));
disp(strcat('El número de iteraciones de Newton
Raphson (Límite) es de: ', num2str(i)));
break
else

21
der=(F(x0+h)-F(x0))/h;
x0=x0-fun/der;
end
end
toc
end

Función Secundaria:
%Función secundaria de la forma f(x)=0-------------------
function R=F(fr)

miu=1.002E-3; %N*s/m2
rho=998.2; %kg/m3
v=10; %m/s
epsi=0.002e-3; %m
D=0.05; %m
Re=v*rho*miu/D;
R=1/sqrt(fr)+2*log10(((epsi/D)/3.7)+(2.51/(Re*sqrt(
fr))));
end

%Función secundaria de la forma x=g(x)-------------------


function R=G(fr)

miu=1.002E-3; %N*s/m2
rho=998.2; %kg/m3
v=10; %m/s
epsi=0.002e-3; %m
D=0.05; %m
Re=v*rho*miu/D;
R=1/(2*log10(((epsi/D)/3.7)+(2.51/(Re*sqrt(fr)))))^
2;
end

Resultado

El resultado obtenido para cada uno de los métodos anteriormente


tratados, junto con el número de iteraciones realizadas y el tiempo
computacional consumido se resumen en la figura 9.

3.2. SISTEMAS DE MÚLTIPLES VARIABLES


3.2.1. MÉTODO NUMÉRICO DE SUSTITUCIÓN SUCESIVA
MULTIVARIABLE

En el método numérico de sustitución sucesiva multivariable, se emplea el


Figura 9. Resultados del ejemplo IQUI mismo principio que en el método de una sola variable. Sin embargo, en
para la solución de la ecuación de
Colebrook
este caso, se maneja un vector de incógnitas en vez de una variable única.
Así, se parte organizando el sistema de ecuaciones a la forma 𝕏 = 𝑔(𝕏),
y en cada iteración se garantiza que 𝕏𝑛+1 = 𝑔(𝕏𝑛 ).

22
Procedimiento

1. Ordenar la ecuación para que quede de la forma:

𝕏 = 𝑔(𝕏)

2. Fijar un valor inicial 𝕏1 .

3. Operar iterativamente
𝕏𝑛+1 = 𝑔(𝕏𝑛 )

4. Establecer como criterio de convergencia

|𝕏𝑛+1 − 𝕏𝑛 | < 𝑡𝑜𝑙𝑒𝑟𝑎𝑛𝑐𝑖𝑎

Si este se cumple, salir del ciclo. Si no, 𝕏𝑛 = 𝕏𝑛+1 .

Ecuación general

𝕏𝑛+1 = 𝑔(𝕏𝑛 ) (20)

Ejemplo

Resolver el siguiente sistema de ecuaciones no lineales utilizando como


valores iniciales: 𝕏 = [5,5].
𝑥12 + 𝑥22 = 400
𝑥1 + 𝑥2 = 28

Solución
𝑔1 (𝕏) = 𝑥1 = (400 − 𝑥22 )0.5
𝑔2 (𝕏) = 𝑥2 = 28 − 𝑥1

Función Principal:
function EJ_SSM()
% Preparación Codigo
clc
close all
% Parametros
cond=true;
tol=1e-6;
x0=[5;5];
% Método Numérico
while cond==true
xnew=ecu(x0);
error=abs(xnew-x0);
if error<tol
break
else
x0=xnew;
end
end
% Solución
disp('Valor "x"')
disp(xnew)

23
Función Secundaria:
function f=ecu(x)
% Variables
x1=x(1);
x2=x(2);
% Ecuación
f(1,1)=(400-x2^2)^0.5;
f(2,1)=28-x1;

Resultado

𝑥1 = 16 ; 𝑥2 = 1

3.2.2. MÉTODO NUMÉRICO DE WEGSTEIN


MULTIVARIABLE

Al igual que el método de Wegstein de una variable, en este método se


parte de una ecuación de la forma
𝕏 = 𝑔(𝕏), a partir del cual se establece, en cada iteración, que 𝕏𝑛+1 =
𝕏𝑛−1 𝑔(𝕏𝑛 )−𝕏𝑛 𝑔(𝕏𝑛−1 )
.
𝕏𝑛−1 −𝑔(𝕏𝑛−1 )−𝕏𝑛 +𝑔(𝕏𝑛 )

Procedimiento

1. Ordenar la ecuación para que quede de la forma:

𝕏 = 𝑔(𝕏)

2. Fijar un valor inicial 𝕏𝑛−1 = 𝕏0 .

3. Operar la primera iteración

𝕏𝑛 = 𝑔(𝕏𝑛−1 )

4. Operar iterativamente

𝕏𝑛−1 𝑔(𝕏𝑛 ) − 𝕏𝑛 𝑔(𝕏𝑛−1 )


𝕏𝑛+1 =
𝕏𝑛−1 − 𝑔(𝕏𝑛−1 ) − 𝕏𝑛 + 𝑔(𝕏𝑛 )

5. Establecer como criterio de convergencia

|𝕏𝑛+1 − 𝕏𝑛 | < 𝑡𝑜𝑙𝑒𝑟𝑎𝑛𝑐𝑖𝑎

Si este se cumple, salir del ciclo. En caso contrario 𝕏𝑛−1 =


𝕏𝑛1 y 𝕏𝑛 = 𝕏𝑛+1 .

24
Ecuación general

𝕏𝑛−1 𝑔(𝕏𝑛 ) − 𝕏𝑛 𝑔(𝕏𝑛−1 )


𝕏𝑛+1 = (21)
𝕏𝑛−1 − 𝑔(𝕏𝑛−1 ) − 𝕏𝑛 + 𝑔(𝕏𝑛 )

Ejemplo

Resolver el siguiente sistema de ecuaciones no lineales utilizando como


valores iniciales: 𝕏 = [1,1].

3𝑥12 + 2𝑥22 = 59
𝑥1 + 2𝑥2 = 11
Solución
0.5
59 − 2𝑥22
𝑔1 (𝕏) = 𝑥1 = ( )
3

11 − 𝑥1
𝑔2 (𝕏) = 𝑥2 =
2
Función Principal:
function EJ_WM()
% Preparación Codigo
clc
close all
% Parametros
cond=true;
tol=1e-6;
xo=[1;1];
% Iteración 1
xa=ecu(xo);
% Método Numérico
while cond==true
xnew=(xo.*ecu(xa)-xa.*ecu(xo))./(xo-ecu(xo)-
xa+ecu(xa));
error=abs(xnew-xa);
if error<tol
break
else
xo=xa;
xa=xnew;
end
end
% Solución
disp('Valor "x"')
disp(xnew)

Función Secundaria:
function f=ecu(x)
% Variables
x1=x(1);
x2=x(2);
% Ecuación
f(1,1)=((59-2*x2^2)/3)^0.5;
f(2,1)=(11-x1)/2;

25
Resultado

𝑥1 = 3 ; 𝑥2 = 4

3.2.3. MÉTODO NUMÉRICO DE NEWTON RAPHSON


MULTIVARIABLE

Para el método de newton multivariable, se parte de una ecuación de la


forma 𝑓(𝕏) = 0. Posteriormente, en cada iteración, se establece que
𝕏𝑛+1 = 𝕏𝑛 − 𝐽(𝕏𝑛 )−1 𝑓(𝕏𝑛 ), donde el Jacobiano se define como:

𝜕𝑓1 𝜕𝑓1

𝜕𝑥1 𝜕𝑥𝑛
𝐽(𝕏) = ⋮ ⋱ ⋮
𝜕𝑓𝑚 𝜕𝑓𝑚

[ 𝜕𝑥1 𝜕𝑥𝑛 ]

En este método, es posible aproximar la derivada a la siguiente ecuación:

𝑓(𝑥 + ℎ) − 𝑓(𝑥)
𝑓 ′ (𝑥) =

Procedimiento

1. Ordenar la ecuación para que quede de la forma:

𝑓(𝕏) = 0

2. Establecer un valor inicial 𝕏0 y un ℎ lo más pequeño posible.

3. En cada iteración
a. Calcular la derivada de la función en el punto

𝑓1 (𝑥1 + ℎ) − 𝑓1 (𝑥1 ) 𝑓1 (𝑥𝑛 + ℎ) − 𝑓1 (𝑥𝑛 )



ℎ ℎ
𝐽(𝕏) = ⋮ ⋱ ⋮ (22)
𝑓𝑚 (𝑥1 + ℎ) − 𝑓𝑚 (𝑥1 ) 𝑓𝑚 (𝑥𝑛 + ℎ) − 𝑓𝑚 (𝑥𝑛 )
[ ⋯ ]
ℎ ℎ

b. Aproximar la raíz

𝕏𝑛+1 = 𝕏𝑛 − 𝐽(𝕏𝑛 )−1 𝑓(𝕏𝑛 )

c. Si |−𝐽(𝕏𝑛 )−1 𝑓(𝕏𝑛 )| < 𝑡𝑜𝑙𝑒𝑟𝑎𝑛𝑐𝑖𝑎, salir del ciclo. La raíz


será igual a 𝕏𝑛+1 .

d. De lo contrario 𝕏𝑛 = 𝕏𝑛+1 .
Ecuación general

𝕏𝑛+1 = 𝕏𝑛 − 𝐽(𝕏𝑛 )−1 𝑓(𝕏𝑛 ) (23)

26
Ejemplo

Resolver el siguiente sistema de ecuaciones no lineales utilizando como


valores iniciales: 𝕏 = [1,1].
𝑥1 𝑥2 = 20

𝑥1 6
=
𝑥2 5
Solución

Función Principal:
function EJ_NM()
% Preparación Codigo
clc
close all
% Parametros
cond=true;
tol=1e-6;
x0=[1;1];
% Método Numérico
J=zeros(length(x0),length(x0));
while cond==true
f0=ecu(x0);
% Jacobiano
for i=1:length(x0)
h=zeros(length(x0),1);
h(i)=1e-3;
df=(ecu(x0+h)-ecu(x0))/h(i);
J(:,i)=df;
end
xnew=x0-(J^-1)*f0;
error=abs(xnew-x0);
if error<tol
break
else
x0=xnew;
end
end
% Solución
disp('Valor "x"')
disp(xnew)

Función Secundaria:
function f=ecu(x)
% Variables
x1=x(1);
x2=x(2);
% Ecuación
f(1,1)=x1*x2-20;
f(2,1)=x1-(6/5)*x2;

27
Resultado

𝑥1 = 4.8990 ; 𝑥2 = 4.0825

3.2.4. MÉTODO NUMÉRICO DE BROYDEN

Es un método cuasi-newtoniano para la solución numérica de sistemas de


ecuaciones no lineales con más de una variable. A diferencia del método
de Newton que emplea el jacobiano en cada iteración, además de calcular
su inversa, el método de Broyden computa el jacobiano entero solamente
en la primera iteración y lleva a cabo una actualización de rango 1 en las
demás iteraciones. En otras palabras, evita el cálculo de las diferenciales
parciales en cada iteración como sucede con el método de Newton.

El método de Broyden considera el método de la secante y establece una


generalización para un espacio multidimensional, donde se cumpla lo
siguiente para la matriz derivada (𝑆𝑛 )

𝑆𝑛 (𝑥𝑛 − 𝑥𝑛−1 ) = 𝑓(𝑥𝑛 ) − (𝑓𝑥−1 )

Procedimiento

1) Emplear la aproximación del jacobiano 𝐴𝑛−1


2) Tomar la solución de la ecuación de la secante mediante la
minimización de la norma de Frobenius (||𝐴𝑛 − 𝐴𝑛−1 ||𝐹 )

(𝑦 − 𝐴𝑛−1 𝑠)(𝑠)𝑇
𝐴𝑛 = 𝐴𝑛−1 + (24)
‖𝑠‖2

3) Continuar con el método de Newton


𝕏𝑛+1 = 𝕏𝑛 − 𝐴−1
𝑛 𝑓(𝕏𝑛 ) (25)

En donde:
𝑠 = 𝕏𝑛 − 𝕏𝑛−1 (26)

𝑦 = 𝑓(𝕏𝑛 ) − 𝑓(𝕏𝑛−1 ) (27)

Ejemplo

Resolver el siguiente sistema de ecuaciones no lineales utilizando como


valores iniciales: 𝕏 = [10,10].

3𝑥1 + 2 = 𝑥2

𝑥12 − 5 = 𝑥2
Solución

Función Principal:
function EJ_BR()
% Preparación Codigo

28
clc
close all
% Parametros
cond=true;
tol=1e-6;
xo=[10;10];
% Iteración 1
Fo=ecu(xo);
Jo=zeros(length(xo),length(xo));
for i=1:length(xo)
h=zeros(length(xo),1);
h(i)=1e-3;
df=(ecu(xo+h)-ecu(xo))/h(i);
Jo(:,i)=df;
end
xa=xo-(Jo^-1)*Fo;
% Método Numérico
while cond==true
Fa=ecu(xa);
s=xa-xo;
y=Fa-Fo;
Ja=Jo+((y-Jo*s)*s')/(norm(s)^2);
xnew=xa-(Ja^-1)*Fa;
error=abs(xnew-xa);
if error<tol
break
else
xo=xa;
xa=xnew;
Fo=Fa;
Jo=Ja;
end
end
% Solución
disp('Valor "x"')
disp(xnew)

Función Secundaria:
function f=ecu(x)
% Variables
x1=x(1);
x2=x(2);
% Ecuación
f(1,1)=3*x1+2-x2;
f(2,1)=x1^2-5-x2;

Resultado

𝑥1 = 4.5414 ; 𝑥2 = 15.6241

3.2.5. MÉTODO NUMÉRICO DE SHERMAN MORRISON

Sherman Morrison, al igual que Broyden, es un método cuasi-Newton. Es


decir que también calcula el jacobiano una única vez y en cada iteración se
encarga de actualizar el valor de este, en lugar de calcularlo en cada
iteración. El procedimiento a llevar a cabo para este método es similar al

29
explicado anteriormente para el método de Broyden, pero las ecuaciones
principales son ligeramente diferentes y se muestran a continuación:

Ecuación general

𝕏𝑛+1 = 𝕏𝑛 − [𝐴−1
𝑛 ]𝑓(𝕏𝑛 ) (28)

−1
(𝑠 − [𝐴−1 𝑇 −1
𝑛−1 ]𝑦)(𝑠) [𝐴𝑛−1 ]
[𝐴−1
𝑛 ] = [𝐴𝑛−1 ] + (29)
(𝑠)𝑇 [𝐴−1
𝑛−1 ]𝑦

𝑠 = 𝕏𝑛 − 𝕏𝑛−1 (30)

𝑦 = 𝑓(𝕏𝑛 ) − 𝑓(𝕏𝑛−1 ) (31)

Ejemplo

Usted es contratado para evaluar un proceso de extracción de una etapa.


El objetivo consiste en remover un contaminante 𝑏 de la corriente de
alimentación mediante un solvente 𝑓. De este modo, se espera que la
corriente refinada (la corriente de alimentación purificada) sea lo más pura
de 𝑐. Un diagrama del proceso se muestra en la figura 10.

Los datos que se conocen son los siguientes:

𝐹 = 100 𝑚𝑜𝑙/ℎ 𝑆 = 150 𝑚𝑜𝑙/ℎ 𝑥𝐹,𝑏 = 0.1


𝑥𝐸,𝑐 = 0.0 𝑥𝑅,𝑓 = 0.0 𝑥𝑆,𝑏 = 0.0001
𝑥𝐹,𝑐 = 0.9 𝑥𝐹,𝑓 = 0.0
𝑥𝑆,𝑐 = 0.0 𝑥𝑆,𝑓 = 0.9999
Figura 10. Diagrama del proceso de
transferencia de masa para el ejemplo De este modo, existen 6 incógnitas en el problema.
de Sherman Morrison
Se plantean dos restricciones de composiciones:

𝑥𝑅,𝑐 + 𝑥𝑅,𝑏 = 1

𝑥𝐸,𝑓 + 𝑥𝐸,𝑏 = 1

Y se tiene una relación de separación:

𝑥𝐸,𝑏
𝐾 = 0.68 =
𝑥𝑅,𝑏
Solución

Función Principal:
function Sherman()
% Preparación
clc
clear all
close all
% Parametros

30
xo=[100,150,0.5,0.5,0.5,0.5]'; %Vector de condiciones
inniciales
tol=1e-4;
error=100;
% Solución
% --- Jacobiano inicial
dFo=zeros(length(xo),length(xo));
for i=1:length(xo)
h=zeros(length(xo),1);
h(i)=1e-4;
dF=(ecu(xo+h)-ecu(xo))/h(i); %Definicion derivada
dFo(:,i)=dF;
end
% Para el primer dato
Fo=ecu(xo);%Función evaluada en la condición inicial
dFo_inv=inv(dFo);%Inversa Jacobiano inicial
delta=-(dFo_inv*Fo);
xa=xo+delta; %Calculo del primer valor
% --- Algoritmo
while error>tol
Sk=(xa-xo);
Fa=ecu(xa);
yk=Fa-Fo;
dFa_inv=dFo_inv+(((Sk-
dFo_inv*yk)*Sk'*dFo_inv)/(Sk'*dFo_inv*yk));
delta=-(dFa_inv*Fa);
xnew=xa+delta;
error=abs(delta);
xo=xa;%Actualización valor "anterior"
Fo=Fa;%Actualización evaluación función
dFo_inv=dFa_inv;%Actualización matriz
xa=xnew;%Actualización
end
% Reporte
fprintf('R= %g \n',xnew(1))
fprintf('E= %g \n',xnew(2))
fprintf('xRb= %g \n',xnew(3))
fprintf('xRc= %g \n',xnew(4))
fprintf('xEb= %g \n',xnew(5))
fprintf('xEf= %g \n',xnew(6))

Función Secundaria:
function f=ecu(x)
% Variables
R=x(1);
E=x(2);
xRb=x(3);
xRc=x(4);
xEb=x(5);
xEf=x(6);
% Parametros
F=100;
S=150;
xFc=0.9;
xSf=0.9999;
K=0.68;
% Ecuaciones -> Residuales
Ec1=F+S-R-E;
Ec2=F*xFc-R*xRc;
Ec3=S*xSf-E*xEf;

31
Ec4=xRc+xRb-1;
Ec5=xEf+xEb-1;
Ec6=K-xEb/xRb;
f=[Ec1 Ec2 Ec3 Ec4 Ec5 Ec6]';

Resultado

Los resultados obtenidos para este ejemplo se resumen en la figura 11.


Este método es muy sensible a la inicialización.

3.2.6. EJEMPLO IQUI


Figura 11. Resultados del ejemplo de
Sherman Morrison La producción de m-xileno se realiza industrialmente por medio de una
reacción catalítica de hidrodesalquilación de mesitileno. Sin embargo, el m-
xileno a su vez puede experimentar una hidrodesalquilación indeseada para
producir tolueno. Las reacciones se pueden ver en la figura 12.

𝑟𝑥𝑛 1: 𝑀 + 𝐻 → 𝑋 + 𝑀𝑒

𝑟𝑥𝑛 2: 𝑋 + 𝐻 → 𝑇 + 𝑀𝑒

Las cinéticas de reacción con respecto a los reactivos son las siguientes:

(𝑓𝑡 3 𝑙𝑏 𝑚𝑜𝑙)0.5
𝑟1𝑀 = 𝑘1 𝐶𝑀 𝐶𝐻0.5 ; 𝑘1 = 55.20

(𝑓𝑡 3 𝑙𝑏 𝑚𝑜𝑙)0.5
𝑟2𝑋 = 𝑘2 𝐶𝑋 𝐶𝐻0.5 ; 𝑘2 = 30.20

Figura 12. Reacciones para la
producción del m-xileno
Encuentre el comportamiento de las concentraciones de los cinco
compuestos para un rango de tiempo espacial (𝜏) de 0 a 1 h. Las reacciones
se dan en un reactor CSTR a una temperatura constante de 1500ºR, a una
presión constante de 35 atm y a una alimentación de hidrógeno y mesitileno
con fracciones molares de 0.667 y 0.333, respectivamente. Adicionalmente,
encuentre gráficamente el punto en que se debería operar teniendo en
cuenta que el compuesto de interés es el m-xileno.

Planteamiento:

Teniendo en cuenta la naturaleza del reactor y la estequiometría de las


reacciones, se pueden establecer los siguientes balances molares para cada
compuesto:

𝐸𝑛𝑡𝑟𝑎 − 𝑠𝑎𝑙𝑒 + 𝑔𝑒𝑛𝑒𝑟𝑎 − 𝑐𝑜𝑛𝑠𝑢𝑚𝑒 − 𝑎𝑐𝑢𝑚𝑢𝑙𝑎 = 0

Hidrógeno: 𝐹𝐻0 − 𝐹𝐻 = −𝑟𝐻 𝑉


Mesitileno: 𝐹𝑀0 − 𝐹𝑀 = −𝑟𝑀 𝑉
Xileno: 𝐹𝑋0 − 𝐹𝑋 = −𝑟𝑋 𝑉
Metano: 𝐹𝑀𝑒0 − 𝐹𝑀𝑒 = −𝑟𝑀𝑒 𝑉
Tolueno: 𝐹𝑇0 − 𝐹𝑇𝑒 = −𝑟𝑇 𝑉

32
Debido a que no hay caída de presión, no hay cambio de temperatura y no
hay cambio en el número de moles (tal y como se puede ver en las
reacciones):

𝝊 = 𝝊𝟎

Hidrógeno: 𝜐0 𝐶𝐻0 − 𝜐0 𝐶𝐻 = −𝑟𝐻 𝑉


Mesitileno: 𝜐0 𝐶𝑀0 − 𝜐0 𝐶𝑀 = −𝑟𝑀 𝑉
Xileno: 𝜐0 𝐶𝑋0 − 𝜐0 𝐶𝑋 = −𝑟𝑋 𝑉
Metano: 𝜐0 𝐶𝑀𝑒0 − 𝜐0 𝐶𝑀𝑒 = −𝑟𝑀𝑒 𝑉
Tolueno: 𝜐0 𝐶𝑇0 − 𝜐0 𝐶𝑇 = −𝑟𝑇 𝑉

Calculando las velocidades de reacción netas para cada compuesto y


dejándolas en términos de las velocidades de reacción del mesitileno y el
xileno:

Hidrógeno: 𝑟𝐻 = 𝑟1𝐻 + 𝑟2𝐻


𝑟𝐻 = 𝑟1𝑀 + 𝑟2𝑋
𝑟𝐻 = −𝑘1 𝐶𝑀 𝐶𝐻0.5 − 𝑘2 𝐶𝑋 𝐶𝐻0.5

Mesitileno: 𝑟𝑀 = 𝑟1𝑀
𝑟𝑀 = −𝑘1 𝐶𝑀 𝐶𝐻0.5

Xileno: 𝑟𝑋 = 𝑟1𝑋 + 𝑟2𝑋


𝑟𝑀 = +𝑘1 𝐶𝑀 𝐶𝐻0.5 − 𝑘2 𝐶𝑋 𝐶𝐻0.5

Metano: 𝑟𝑀𝑒 = 𝑟1𝑀𝑒 + 𝑟2𝑀𝑒


𝑟𝑀𝑒 = 𝑟1𝑀 + 𝑟2𝑋
𝑟𝑀𝑒 = 𝑘1 𝐶𝑀 𝐶𝐻0.5 + 𝑘2 𝐶𝑋 𝐶𝐻0.5

Tolueno: 𝑟𝑇 = 𝑟2𝑇
𝑟𝑇 = 𝑟2𝑋
𝑟𝑇 = 𝑘2 𝐶𝑋 𝐶𝐻0.5

Reemplazando las ecuaciones correspondientes a las velocidades de


reacción en las ecuaciones de balance por componente en términos de las
concentraciones y las velocidades de reacción y teniendo en cuenta la
𝑉
definición de tiempo espacial (𝜏 ≡ 𝜐 ) se obtienen las siguientes
0
ecuaciones:

Hidrógeno: 𝐶𝐻 − 𝐶𝐻0 + (𝑘1 𝐶𝑀 𝐶𝐻0.5 + 𝑘2 𝐶𝑋 𝐶𝐻0.5 ) ∗ 𝜏 = 0


Mesitileno: 𝐶𝑀 − 𝐶𝑀0 + (𝑘1 𝐶𝑀 𝐶𝐻0.5 ) ∗ 𝜏 = 0
Xileno: −𝐶𝑋 + (𝑘1 𝐶𝑀 𝐶𝐻0.5 − 𝑘2 𝐶𝑋 𝐶𝐻0.5 ) ∗ 𝜏 = 0
Metano: −𝐶𝑀𝑒 + (𝑘1 𝐶𝑀 𝐶𝐻0.5 + 𝑘2 𝐶𝑋 𝐶𝐻0.5 ) ∗ 𝜏 = 0
Tolueno: −𝐶𝑇 + (𝑘2 𝐶𝑋 𝐶𝐻0.5 ) ∗ 𝜏 = 0

Las anteriores expresiones matemáticas permiten llegar a un sistema de


cinco ecuaciones que relacionan las concentraciones de cada compuesto
con el tiempo espacial.

33
En términos de métodos numéricos, dado que se tiene un sistema de
ecuaciones múltiples (5 variables y 5 ecuaciones) que deben ser resueltas
para cada valor de 𝜏, los métodos más apropiados para resolverlas son
Newton-Raphson multivariable y Wegstein.

Solución

Método de Wegstein:

Función Principal:
function rxnmultiplesw()
clear all
clc

% Convenciones utilizadas:
% H: Hidrógeno
% M: Mesistileno
% X: Xileno
% Me: Metano
% T: Tolueno

% Recorrido del tiempo espacial


tau=[0:0.01:1]; %h

for i=1:length(tau)

% Inicialización de la concentración para cada


compuesto
x0=[0.001;0.001;0.001;0.001;0.001]; % (lb mol/ft3)
tol=1e-9;
iter=0;
itermax=1000;
error=10000;

x1=ecuaciones(x0,tau(i));
%Recorrido del método
while error>tol && iter<itermax

x2=(x0.*ecuaciones(x1,tau(i))-
x1.*ecuaciones(x0,tau(i)))./(x0-ecuaciones(x0,tau(i))-
x1+ecuaciones(x1,tau(i)));
% Criterio
error=norm((x2-x1));
iter=iter+1;
% Actualización
x0=x1;
x1=x2;

end

ch(i)=x2(1);
cm(i)=x2(2);
cx(i)=x2(3);
cme(i)=x2(4);
ct(i)=x2(5);

end

plot(tau,ch,tau,cm,tau,cx,tau,cme,tau,ct);

34
legend('Hidrógeno','Mesitileno','Xileno','Metano','Toluen
o');
xlabel('tau (h)');
ylabel('Concentración (lb mol/ft3)');

end

Función Secundaria:
%Ecuaciones a resolver
function ans=ecuaciones(c,tau)

%Fracciones molares de la entrada


yh0=0.667;
ym0=0.333;

%Temperatura (constante)
T=1500; %R

%Presión (constante)
P=35; %atm

%Constante de los gases ideales


R=0.73; %(atm*ft3)/(lbmol*∫R)

%Cálculo de la concentración de entrada


cTot0=(P)/(R*T);
ch0=yh0*cTot0;
cm0=ym0*cTot0;

%Constantes de las cinéticas de reacción


k1=55.20; %((ft3/lbmol)^0.5)/h
k2=30.20; %((ft3/lbmol)^0.5)/h

ch=c(1);
cm=c(2);
cx=c(3);
cme=c(4);
ct=c(5);
%Ecuaciones en la forma x=f(x)
ans1=ch0-(k1*(ch^0.5)*cm+k2*(ch^0.5)*cx)*tau;
ans2=cm0-k1*(ch^0.5)*cm*tau;
ans3=(k1*(ch^0.5)*cm-k2*(ch^0.5)*cx)*tau;
ans4=(k1*(ch^0.5)*cm+k2*(ch^0.5)*cx)*tau;
ans5=k2*(ch^0.5)*cx*tau;

ans=[ans1;ans2;ans3;ans4;ans5];

end

Método de Newton Multivariable:

Función Principal:
function rxnmultiples()
clear all
clc

35
% Convenciones utilizadas:
% H: Hidrógeno
% M: Mesistileno
% X: Xileno
% Me: Metano
% T: Tolueno

% Recorrido del tiempo espacial


tau=[0:0.01:1]; %h

for i=1:length(tau)

iter=0;
itermax=1000;
error=1000;
tol=1e-6;

% Inicialización de la concentración para cada


compuesto
x0=[0.01;0.01;0.01;0.01;0.01]; % (lb mol/ft3)

%Recorrido del método


while error>tol && iter<itermax

fx0=ecuaciones(x0,tau(i));
jx0=jacobian(x0,tau(i));
delta=-inv(jx0)*fx0;

xnew=x0+delta;

%Criterio
error=norm(delta);

%Actualización
x0=xnew;
end
ch(i)=xnew(1);
cm(i)=xnew(2);
cx(i)=xnew(3);
cme(i)=xnew(4);
ct(i)=xnew(5);

end

plot(tau,ch,tau,cm,tau,cx,tau,cme,tau,ct);
legend('Hidrógeno','Mesitileno','Xileno','Metano','Toluen
o');
xlabel('tau (h)');
ylabel('Concentración (lb mol/ft3)');
ylim([0,0.023]);

end

Función Jacobiano:
% Función que calcula el jacobiano
function j=jacobian(x,tau)

36
n=length(x);
h=1e-9;

for i=1:n
dh=zeros(n,1);
dh(i)=h;

der=(ecuaciones(x+dh,tau)-ecuaciones(x,tau))/(h);

j(:,i)=der;

end
end

Función Secundaria:
%Ecuaciones a resolver
function ans=ecuaciones(c,tau)

%Fracciones molares de la entrada


yh0=0.667;
ym0=0.333;

%Temperatura (constante)
T=1500; %R
%Presión (constante)
P=35; %atm

%Constante de los gases ideales


R=0.73; %(atm*ft3)/(lb mol*ºR)

%Cálculo de la concentración de entrada


cTot0=(P)/(R*T);
ch0=yh0*cTot0;
cm0=ym0*cTot0;
%Constantes de las cinéticas de reacción
k1=55.20; %((ft3/lb mol)^0.5)/h
k2=30.20; %((ft3/lb mol)^0.5)/h

ch=c(1);
cm=c(2);
cx=c(3);
cme=c(4);
ct=c(5);

%Ecuaciones en forma residual


ans1=ch-ch0+(k1*(ch^0.5)*cm+k2*(ch^0.5)*cx)*tau;
ans2=cm-cm0+k1*(ch^0.5)*cm*tau;
Figura 13. Resultados por el método de ans3=(k1*(ch^0.5)*cm-k2*(ch^0.5)*cx)*tau-cx;
Wegstein multivariable ans4=(k1*(ch^0.5)*cm+k2*(ch^0.5)*cx)*tau-cme;
ans5=k2*(ch^0.5)*cx*tau-ct;

ans=[ans1;ans2;ans3;ans4;ans5];
end

37
Resultados

Los resultados obtenidos para este problema por medio del método de
Wegstein se pueden ver en la figura 13 mientras que los resultados
obtenidos por medio del método de Newton Multivariable se pueden ver
en la figura 14.

4. SISTEMAS DE ECUACIONES LINEALES


Propósito
Figura 14. Resultados por el método de
Newton multivariable
En este capítulo, daremos varios ejemplos que tienen aplicación en la
ingeniería química, que dan como resultado un conjunto de ecuaciones
lineales algebraicas simultáneas.
En el siguiente apartado, se discutirán un gran número de métodos para la
solución numérica de los problemas y demostrar la aplicación de los
mismos en programas computacionales como MATLAB ®.
Los balances de masa y energía son las herramientas básicas de los
ingenieros químicos. Estos balances aplicados a procesos multietapas o
multicomponentes pueden resultar en varias ecuaciones diferenciales o
algebraicas.

En primer lugar, se explicarán algunos conceptos básicos que son clave


para la aplicación de los métodos de ecuaciones lineales en la solución de
ejercicios.

Una matriz es un arreglo de elementos expresado en filas y columnas como


se muestra en la figura 15. Los elementos 𝑎𝑖𝑗 de la matriz pueden ser
números reales, números complejos o funciones u otras variables. La
matriz A tiene m filas y n columnas y sería de orden m x n. Si el número de
filas de la matriz es igual al número de columnas, es decir, m = n, entonces
Figura 15. Matriz A -compuesta por filas y la matriz es una matriz cuadrada de orden n. Una matriz que contiene una
columnas-. (Fuente: Numerical Methods única columna se denomina vector.
for Chemical Engineers with MATLAB
Applications, Constantinides).
Se define una matriz B con k filas y l columnas. Las dos matrices A y B
pueden adicionarse (o sustraerse) cada una si cada una de ellas tienen el
número de filas (m = k) y el mismo número de columnas (n = l). Además,
dos matrices se pueden multiplicar entre ellas si son adaptables. Las
matrices A y B serán adaptables de orden AB si el número de columnas de
A es igual al número de filas que tiene B (n = k).

La ley conmutativa no siempre es válida en la multiplicación de matrices,


es decir, AB ≠ BA así las matrices sean adaptables. La ley distributiva para
la multiplicación aplica para matrices, por lo que se puede afirmar que:

𝑨 (𝑩 + 𝑪) = 𝑨𝑩 + 𝑨𝑪 (32)

La ley asociativa de la multiplicación también es válida para matrices:

38
𝑨 (𝑩𝑪) = (𝑨𝑩)𝑪 (33)

La transpuesta de una matriz A se denota algunas veces como 𝑨𝑻 . La


transpuesta de la suma de dos matrices está dada por la ecuación 34 y la
transpuesta del producto de dos matrices está dada por la ecuación 35.

(𝑨 + 𝑩)′ = 𝑨′ + 𝑩′ (34)

(𝑨𝑩)′ = 𝑩′ 𝑨′ (35)

Las siguientes definiciones aplican únicamente para matrices cuadradas:


Una matriz simétrica es aquella donde se cumple que A = A’. Una matriz
diagonal es aquella donde tiene valores diferentes de cero en la diagonal
principal y ceros en las demás posiciones. Una matriz elemental (o matriz
identidad) es una matriz diagonal donde sus elementos de la diagonal
principal tienen u valor de uno. La multiplicación de una matriz (o vector)
con una matriz identidad no altera la matriz (o vector): IA = A, Ix = x.
Una matriz triangular superior es aquella en la que todos sus elementos por
debajo de la diagonal principal tienen un valor de cero. Y, por el contrario,
una matriz triangular inferior es aquella en la que todos sus elementos por
encima de la diagonal principal tienen un valor de cero.

La división entre matrices no está definida, pero en reemplazo, se usa el


concepto de matriz inversa, la cual usa la multiplicación para alcanzar los
mismos resultados. Si una matriz cuadrada A y otra matriz cuadrada B, del
mismo orden de A, conlleva a la matriz identidad I cuando se multiplican
entre ellas: AB = I; entonces B sería la inversa de A y se denota como 𝑨−1 .
Entonces sigue:

𝑨𝑨−𝟏 = 𝑨−𝟏 𝑨 = 𝑰 (36)

Teniendo ya algunos conceptos básicos claro se comenzará con la


explicación de algunos métodos para solucionar sistema de ecuaciones
algebraicas simultáneas.

4.1. MÉTODOS ITERATIVOS


4.1.1. MÉTODO NUMÉRICO DE GAUSS SEIDEL

El método de Gauss – Seidel proviene de una modificación del método de


Jacobi, el cual acelera la convergencia reduciendo en gran medida la
cantidad de iteraciones necesarias para obtener una solución con alta
precisión. Este método es el más usado para resolver sistemas muy grandes
de ecuaciones lineales, debido a que las iteraciones se realizan a partir de
Figura 16. Esquema grafico de un un vector inicial 𝑥0 generando una sucesión de vectores 𝑥𝑛 que convergen
procedimiento iterativo a)
Convergencia b) Divergencia
a la solución 𝑥𝑛+1 . Además, es una variante del método de Newton –
Raphson, donde la matriz tangente de cada iteración es sustituida por otra
triangular inferior (L) en la que los elementos de la diagonal y los que están
por debajo de ella coindicen con los de la matriz jacobiana.

La ecuación de recurrencia está dada por:

39
Ecuación General

𝑏𝑖 − ∑𝑗<𝑖 𝑎𝑖𝑗 𝑥𝑗𝑘 − ∑𝑗<𝑖 𝑎𝑖𝑗 𝑥𝑗𝑘−1


𝑥𝑖𝑘 = (37)
𝑎𝑖𝑖

Este método tiene dos características importantes:

1. Los cálculos se realizan en serie, cada valor de la nueva iteración


depende del valor anterior, por lo que los cambios no se pueden
hacer al mismo tiempo como en el método de Jacobi.

2. La nueva iteración depende del orden en el que se encuentran las


ecuaciones, por lo que cambia de acuerdo con este orden y los
componentes de cada iteración también cambian.

Este método es aplicable únicamente para las matrices estrictamente


dominantes o matrices simétricas positivas. Este método también es
llamado método de desplazamientos sucesivos para indicar la dependencia
de las iteraciones del orden. Adicionalmente, el nuevo valor calculado se
usa una vez es conocido, es decir, una vez se tenga 𝑥1 de la primera
ecuación, este valor es usado en la segunda ecuación para obtener 𝑥2 .

Procedimiento

1) Descomposición de la matriz:

𝐴 = (𝐿 + 𝐷 + 𝑈) (38)

2) Ecuación de recurrencia:

𝑥𝑛+1 = 𝑇𝑔 𝑥𝑛 + 𝐶𝑔 (39)

𝑇𝑔 = (𝐷 − 𝐿)−1 𝑈 (40)

𝐶𝑔 = (𝐷 − 𝐿)−1 𝑏 (41)

Ejemplo

Resolver el siguiente sistema de ecuaciones lineales utilizando el método de


Gauss – Seidel:
2𝑥1 + 𝑥2 + 2𝑥3 = 6

3𝑥1 + 2𝑥2 − 𝑥3 = 4

4𝑥1 + 3𝑥2 − 3𝑥3 = 1


Solución

Función Principal:
function EJ_GS()
% Preparación Codigo
clc

40
clear all
close all
% Parametros
error=100;
tol=1e-6;
x0=[1;1;1];
% Sistema Lineal
A=[2 -1 2
3 2 -1
4 3 -3];
b=[6;4;1];
% Descomposición
D=diag(diag(A));
L=tril(-A,-1);
U=triu(-A,1);
% Gauss-Seidel
Tg=inv(D-L)*U;
Cg=inv(D-L)*b;
while error>tol
xnew=Tg*x0+Cg;
error=norm(xnew-x0);
x0=xnew;
end
% R: Gauss Seidel
disp('Resultado')
disp(xnew)

Resultado:
𝑥1 = 1 ; 𝑥2 = 2 ; 𝑥3 = 3

4.1.2. MÉTODO NUMÉRICO DE JACOBI

El método de Jacobi es uno de los métodos iterativos más conocidos, con


el cual se resuelve un sistema lineal que presenta la forma Ax = b, donde
A representa una matriz de coeficientes que va acompañada de un vector
de variables x y un vector b que representa los términos independientes de
las ecuaciones lineales a resolver. En general, para un sistema de ecuaciones
lineales de n ecuaciones con n incógnitas. El método de Jacobi para
encontrar un valor k de una variable x es el siguiente:

Ecuación General

𝑏𝑖 − ∑𝑗<𝑖 𝑎𝑖𝑗 𝑥𝑗𝑘−1


𝑥𝑖𝑘 = (42)
𝑎𝑖𝑖

Procedimiento

Figura 17. Diferencias entre los 1. Descomposición de la matriz:


métodos iterativos de a) Gauss b)
Jacobi 𝐴 = (𝐴 − 𝐷) + 𝐷 (43)

2. Ecuación de recurrencia:

𝑥𝑛+1 = 𝐷 −1 𝑏 − (𝐷1 𝐴 − 𝐼)𝑥𝑛 (44)

41
Ejemplo

Resolver el siguiente sistema de ecuaciones utilizando el método de Jacobi:

2𝑥1 + 3𝑥2 + 𝑥3 = 3
𝑥1 + 2𝑥2 + 𝑥3 = 1
−𝑥1 + 4𝑥2 = −2
Solución

Función Principal:
function EJ_J()
% Preparación Codigo
clc
clear all
close all
% Parámetros
error=100;
tol=1e-6;
x0=[0;0;0];
% Sistema Lineal
A= [2 3 1
-1 4 0
1 2 1];
b=[3;-2;1];
% Descomposición
D=diag(diag(A));
I=eye(length(x0));
% Gauss-Seidel
while error>tol
xnew=(D^-1)*b-((D^-1)*A-I)*x0;
error=norm(xnew-x0);
x0=xnew;
end
% R: Gauss Seidel
disp('Jacobi')
disp(xnew)

Resultado:
𝑥1 = 2 ; 𝑥2 = 0 ; 𝑥3 = −1

4.1.3. EJEMPLO IQUI

Para el estudio de la fermentación anaeróbica de granos, se considera el


comportamiento de la levadura Saccharomyces cerevisae, la cual se encarga de
digerir la glucosa al interior de un biorreactor para producir etanol y ácido
propanóico. Esto se da en las siguientes reacciones:

𝐶6 𝐻12 𝑂6 → 2𝐶2 𝐻5 𝑂𝐻 + 2𝐶𝑂2

𝐶6 𝐻12 𝑂6 → 2𝐶2 𝐻3 𝐶𝑂2 𝐻 + 2𝐻2 𝑂

El tanque del biorreactor es inicialmente alimentado con 4000 kg de una


solución acuosa al 12% de glucosa. Luego de la fermentación, 120 kg de

42
𝐶𝑂2 han sido producidas y 90 kg de glucosa sin reaccionar permanecen en
la mezcla de granos.

¿Cuáles son los avances de reacción y cuánto en moles queda de cada


compuesto al final de la operación? Se debe asumir que no queda glucosa
adherida a los microorganismos enzimáticos del proceso.
Primero, se pasa a base molar las condiciones de entrada y salida dadas para
el biorreactor:

𝑖𝑛𝑖𝑐𝑖𝑎𝑙
4000(0.88)
𝑛𝐻2𝑂
= = 195.3 𝑘𝑚𝑜𝑙
18.02
4000(0.12)
𝑛𝐶𝑖𝑛𝑖𝑐𝑖𝑎𝑙
6 𝐻12 𝑂6
= = 2.665 𝑘𝑚𝑜𝑙
180.1

𝑓𝑖𝑛𝑎𝑙 90
𝑛𝐶6 𝐻12 𝑂6 = = 0.5 𝑘𝑚𝑜𝑙
180.1
120
𝑛𝐶𝑂2 = = 2.727 𝑘𝑚𝑜𝑙
44
Para resolver este problema se plantea el siguiente sistema de ecuaciones
lineales para el balance de masa con reacción de las especies del proceso:

- 2.727 = (2)𝜉1 + (0)𝜉2 + 0


2.727 = 2𝜉1 + (0)𝜉2 + 0

- 0.5 = 2.665 + (−1)𝜉1 + (−1)𝜉2


2.165 = 1𝜉1 + 1𝜉2

𝑓𝑖𝑛𝑎𝑙
- 𝑛𝐶2 𝐻5 𝑂𝐻 = 0 + 2𝜉1 + (0)𝜉2
𝑓𝑖𝑛𝑎𝑙
0 = 2𝜉1 + (0)𝜉2 − 𝑛𝐶2 𝐻5 𝑂𝐻

𝑓𝑖𝑛𝑎𝑙
- 𝑛𝐶2 𝐻3 𝐶𝑂2𝐻 = 0 + (0)𝜉1 + (2)𝜉2
𝑓𝑖𝑛𝑎𝑙
0 = (0)𝜉1 + (2)𝜉2 − 𝑛𝐶2 𝐻3 𝐶𝑂2 𝐻

𝑓𝑖𝑛𝑎𝑙
- 𝑛𝐻2 𝑂 = 195.3 + (0)𝜉1 + (2)𝜉2
𝑓𝑖𝑛𝑎𝑙
195.3 = (0)𝜉1 + (2)𝜉2 − 𝑛𝐻2 𝑂
La matriz A queda:

𝝃𝟏 𝝃𝟐 𝒇𝒊𝒏𝒂𝒍 𝒇𝒊𝒏𝒂𝒍 𝒇𝒊𝒏𝒂𝒍


𝒏𝑪𝟐 𝑯𝟓𝑶𝑯 𝒏𝑪𝟐 𝑯𝟑𝑪𝑶𝟐 𝑯 𝒏𝑯𝟐 𝑶
2 0 0 0 0
1 1 0 0 0
2 0 -1 0 0
0 2 0 -1 0
0 2 0 0 -1

El vector de respuesta b es igual a:

43
2.727
2.165
0
0
-195.3

De esta manera, se resuelve el ejercicio por medio de los dos métodos


iterativos mencionados anteriormente:

Solución

Método de Gauss Seidel:

Función Principal:
function GaussSeidel ()
clc
%Preparación método
error = 1000;
iter = 0;
itermax= 1000;
tol = 1e-5;
k = 1;
%Matriz A
A = [2,0,0,0,0;
1,1,0,0,0;
2,0,-1,0,0;
0,2,0,-1,0;
0,2,0,0,-1];
%Vector respuesta
b = [2.727;2.165;0;0;-195.3];
%Método
D = diag(diag(A)); %Matriz diagonal con ceros superior e
inferior
L = tril(-A, -1); %Parte inferior
U = triu(-A,1); %Parte superior
Tg = inv(D-L)*U;
Cg = inv(D-L)*b;
%Ciclo iterativo
n = size(A,1);
x = zeros(n,1); %inicialización
while error>tol && iter<itermax
x(:,k+1) = Tg*x(:,k) + Cg;
error = norm(x(:,k+1) - x(:,k));
iter = iter + 1;
k = k+1;
end
%Respuesta
disp(x(:,k))
end

- Número de iteraciones: 2
- Tiempo de convergencia: 0.003996 s
Método de Jacobi:

Función Principal:
function Jacobi()
clc
%Preparación método

44
error = 1000;
iter = 0;
itermax= 1000;
tol = 1e-5;
k = 1;
%Matriz A
A = [2,0,0,0,0;
1,1,0,0,0;
2,0,-1,0,0;
0,2,0,-1,0;
0,2,0,0,-1];
%Vector respuesta
b = [2.727;2.165;0;0;-195.3];
%Parámetros
n = size(A,1);
x = zeros(n,1); %inicialización
%Método
D = diag(diag(A)); %Matriz diagonal con ceros superior e
inferior
I =eye(n);
%Ciclo iterativo
while error>tol && iter<itermax
x(:,k+1) = (inv(D))*b-(inv(D)*A-I)*x(:,k)
error = norm(x(:,k+1) - x(:,k));
iter = iter + 1;
k = k+1;
end
%Respuesta
disp(x(:,k))
end

- Número de iteraciones: 4
- Tiempo de convergencia: 0.008994 s
Resultado:

𝜉1 (gmol) 1.3635
𝜉2 (gmol) 0.8015
𝑓𝑖𝑛𝑎𝑙
𝑛𝐶2 𝐻5𝑂𝐻 (gmol) 2.7270
𝑓𝑖𝑛𝑎𝑙
𝑛𝐶2 𝐻3𝐶𝑂2 𝐻 (gmol) 1.6030
𝑓𝑖𝑛𝑎𝑙
𝑛𝐻2𝑂 (gmol) 196.9030

4.2. MÉTODOS ALGEBRAICOS


4.2.1. MÉTODO ELIMINACIÓN DE GAUSS

El método de eliminación de Gauss consiste en transformar el sistema


lineal original en otro sistema lineal equivalente con la matriz triangular
superior, debido a que estos son de resolución inmediata. Asimismo, se
debe considerar que dos sistemas lineales son equivalentes cuando poseen
la misma solución y el determinante es el mismo. Por lo tanto, con (n-1)
pasos el sistema lineal 𝐴𝑥 = 𝐵 es transformado en un sistema triangular
equivalente: 𝑈𝑥 = 𝐶, el cual se resuelve fácilmente por sustituciones. De
manera que este método se puede dividir en tres etapas principales:

45
I. Matriz completa

Consiste en escribir la matriz completa o aumentada del sistema lineal


original.

II. Triangulación

Se trata de transformar el sistema de ecuaciones lineales 𝐴𝑥 = 𝑏 en otro


equivalente 𝑈𝑥 = 𝑐 que sea triangular superior. Para esto se realiza lo
siguiente:

1𝑎 𝑒𝑡𝑎𝑝𝑎 𝑇𝑟𝑎𝑛𝑠𝑓𝑜𝑟𝑚𝑎𝑟 𝑎21 , 𝑎31 , … , 𝑎𝑛1 𝑒𝑛 𝑐𝑒𝑟𝑜𝑠

2𝑎 𝑒𝑡𝑎𝑝𝑎 𝑇𝑟𝑎𝑛𝑠𝑓𝑜𝑟𝑚𝑎𝑟 𝑎32 , 𝑎42 , … , 𝑎𝑛2 𝑒𝑛 𝑐𝑒𝑟𝑜𝑠

3𝑎 𝑒𝑡𝑎𝑝𝑎 𝑇𝑟𝑎𝑛𝑠𝑓𝑜𝑟𝑚𝑎𝑟 𝑎43 , 𝑎53 , … , 𝑎𝑛3 𝑒𝑛 𝑐𝑒𝑟𝑜𝑠



Figura 18. Método de eliminación de
Gauss ilustrado paso por paso 𝑒𝑡𝑎𝑝𝑎 𝑛 − 1 𝑇𝑟𝑎𝑛𝑠𝑓𝑜𝑟𝑚𝑎𝑟 𝑎𝑛,𝑛−1 𝑒𝑛 𝑐𝑒𝑟𝑜

Las transformaciones en cero de cada etapa se realizan mediante


operaciones elementales: para transformar 𝑎𝑖𝑘 en cero usando como pivote
𝑎
𝑎𝑘𝑘 , se multiplica la ecuación número k por – 𝑎 𝑖𝑘 y se le suma la ecuación
𝑘𝑘
número i.

III. Resolución del sistema triangular

Sea 𝑈𝑥 = 𝑐 un sistema de ecuaciones lineales con solución única (𝑑𝑒𝑡𝑈 ≠


0) en el que la matriz de coeficientes 𝑈𝑛𝑥𝑛 es triangular superior. Entonces
las componentes de la solución se pueden calcular mediante el método de
sustitución regresiva, es decir, se despeja la última incógnita de la última
ecuación, se sustituye en la penúltima ecuación; después se despeja de esta
ecuación la penúltima incógnita y se repite el proceso hacia arriba hasta
calcular el valor de la primera incógnita.

Ecuación general

𝑐𝑖 − ∑𝑛𝑗=𝑖+1 𝑢𝑖𝑗 𝑥𝑗
𝑥𝑖 = ; 𝑖 = 𝑛, 𝑛 − 1, … ,1 (45)
𝑢𝑖𝑖

Procedimiento

1) Matriz aumentada

𝑀 = [𝐴|𝑏] (46)

2) Eliminación

𝑀(𝑖, 𝑘)𝑛
𝑀(𝑖, 𝑗)𝑛+1 = 𝑀(𝑖, 𝑗)𝑛 − 𝑀(𝑘, 𝑗)𝑛 (47)
𝑀(𝑘, 𝑘)𝑛

46
Donde:
𝑗 = 𝑛 + 1, 𝑛, … , 𝑘
𝑖 = 𝑘 + 1, 𝑘 + 2, … , 𝑛
𝑘 = 1,2, … , 𝑛 − 1

Ejemplo

Resolver el siguiente sistema de ecuaciones lineales utilizando el método de


eliminación de Gauss:

𝑥1 − 𝑥2 − 𝑥3 = 0

𝑥1 + 2𝑥2 − 5𝑥3 = 2

3𝑥1 − 2𝑥2 − 4𝑥3 = 1

Solución

Función Principal:
function EJ_EG()
% Preparación Código
clc
clear all
close all
% Sistema Lineal
A= [2 -1 2
3 2 -1
4 3 -3];
b=[6;4;1];
M=[A,b];
% Método
n=length(b);
for i=1:n
for j=[1:i-1,i+1:n]
k=M(j,i)/M(i,i);
M(j,:)=M(j,:)-k*M(i,:);
end
end
b=M(:,n+1);
sol=b./diag(M);
% Resultados
disp('Resultado')
disp(sol)
end

Resultado
𝑥1 = 3 ; 𝑥2 = 2 ; 𝑥3 = 1

4.2.2. MÉTODO ELIMINACIÓN DE GAUSS-JORDAN

Este método es un avance del método de Gauss, el cual usa operaciones


elementales en las filas para reducir la parte izquierda de una matriz
aumentada, pero esta vez en lugar de hacerlo con reducción de forma
triangular superior (Gauss), se hace a la forma diagonal con todos los
pivotes con valor de 1, es decir dejando a la matriz A como una matriz

47
identidad 𝐼𝑛𝑥𝑛 . Por lo tanto, el método de Gauss – Jordan se basa en
transformar el sistema de ecuaciones lineales 𝐴𝑥 = 𝑏 en un sistema
equivalente 𝐷𝑥 = 𝑐, donde D es una matriz diagonal. El algoritmo de
eliminación se desarrolla en n etapas: en cada etapa k-ésima se hacen ceros
en toda la columna k excepto en el elemento diagonal, es decir que se deben
𝑘 𝑘 𝑘
hacer cero las posiciones 𝑎1𝑘 , … , 𝑎𝑘−1,𝑘 , … , 𝑎𝑛,𝑘 donde 𝑘 =
1, … , 𝑛 (𝑛𝑒𝑡𝑎𝑝𝑎𝑠).

Procedimiento

1) Matriz aumentada
𝑀 = [𝐴|𝑏] (48)

2) Normalización

𝑀(𝑘, 𝑗)𝑛
𝑀(𝑘, 𝑗)𝑛+1 = (49)
𝑀(𝑘, 𝑘)𝑛

Donde:

𝑗 = 𝑛 + 1, 𝑛, … , 𝑘
𝑘 = 1,2, … , 𝑛

3) Eliminación

𝑀(𝑖, 𝑗)𝑛+1 = 𝑀(𝑖, 𝑗)𝑛 − 𝑀(𝑖, 𝑘)𝑛 𝑀(𝑘, 𝑗)𝑛+1 (50)

Donde:

𝑗 = 𝑛 + 1, 𝑛, … , 𝑘
𝑖 = 1,2, … , 𝑛
Figura 19. Método de eliminación de 𝑘 = 1,2, … , 𝑛
Gauss-Jordan ilustrado paso por paso
Ejemplo

Resolver el siguiente sistema de ecuaciones lineales utilizando el método de


eliminación de Gauss – Jordan:

𝑥1 − 3𝑥2 + 2𝑥3 = −3

5𝑥1 + 6𝑥2 − 𝑥3 = 13

4𝑥1 − 𝑥2 + 3𝑥3 = 8

Solución

Función Principal:
function EJ_GJ()
% Preparación Codigo
clc
clear all
close all

48
% Sistema Lineal
A=[1 -3 2
5 6 -1
4 -1 3];
b=[-3;13;8];
M=[A,b];
% Metodo: Parte 1 (Reducción Superior)
[f,c]=size(M);
for i=1:c-1
M(i,:)=M(i,:)/M(i,i);
for j=i+1:f
M(j,:)=M(j,:)-M(i,:)*M(j,i);
end
end
% Método: Parte 2 (Reducción Inferior)
for i=2:f
ii=f-i+2;
for j=1:ii-1
jj=ii-j;
M(jj,:)=M(jj,:)-M(ii,:)*M(jj,ii);
end
end
sol=M(:,end);
% Resultados
disp('Resultado')
disp(sol)

Resultado

𝑥1 = −2 ; 𝑥2 = 5 ; 𝑥3 = 7

4.2.3. EJEMPLO IQUI

La suma algebraica de las diferencias de potencial (cambios en el voltaje)


en cualquier malla debe ser igual a cero.
∑𝜉 − ∑𝑖𝑅 = 0

Donde 𝜉 es la fem (fuerza electromotriz) de cada una de las fuentes de


voltaje y R es la resistencia. De esta forma, resuelva el circuito eléctrico de
la figura 20. Utilice las reglas mencionadas anteriormente para armar el
sistema de ecuaciones.

Mallas:

20 ∗ 𝑖76 + 5 ∗ 𝑖63 + 20 ∗ 𝑖34 + 5 ∗ 𝑖47 = 0 𝑚𝑎𝑙𝑙𝑎 1


−15 ∗ 𝑖89 − 50 ∗ 𝑖58 − 10 ∗ 𝑖65 − 20 ∗ 𝑖76 = 0 𝑚𝑎𝑙𝑙𝑎 2
20 ∗ 𝑖25 + 50 ∗ 𝑖58 = −80 𝑚𝑎𝑙𝑙𝑎 3
10 ∗ 𝑖65 − 20 ∗ 𝑖25 − 5 ∗ 𝑖32 − 5 ∗ 𝑖63 = 0 𝑚𝑎𝑙𝑙𝑎 4

Nodos:
𝑖32 + 𝑖12 − 𝑖25 = 0 𝑛𝑜𝑑𝑜 2
−𝑖32 + 𝑖63 − 𝑖34 = 0 𝑛𝑜𝑑𝑜 3
𝑖34 − 𝑖47 = 0 𝑛𝑜𝑑𝑜 4
𝑖25 − 𝑖58 + 𝑖65 = 0 𝑛𝑜𝑑𝑜 5
−𝑖63 − 𝑖65 + 𝑖76 = 0 𝑛𝑜𝑑𝑜 6

49
𝑖47 + 𝑖97 − 𝑖76 = 0 𝑛𝑜𝑑𝑜 7
𝑖58 − 𝑖89 − 𝑖810 = 0 𝑛𝑜𝑑𝑜 8
𝑖89 − 𝑖97 = 0 𝑛𝑜𝑑𝑜 9

Estas ecuaciones se representan en la siguiente matriz:

𝒊𝟑𝟐 𝒊𝟏𝟐 𝒊𝟐𝟓 𝒊𝟔𝟑 𝒊𝟖𝟗 𝒊𝟓𝟖 𝒊𝟑𝟒 𝒊𝟒𝟕 𝒊𝟗𝟕 𝒊𝟕𝟔 𝒊𝟖𝟏𝟎 𝒊𝟔𝟓
Nodo
-1 0 0 1 0 0 -1 0 0 0 0 0
3
Nodo
1 1 -1 0 0 0 0 0 0 0 0 0
2
Nodo
0 0 1 0 0 -1 0 0 0 0 0 1
5
Malla
0 0 0 5 0 0 20 5 0 20 0 0
1
Nodo
0 0 0 0 1 0 0 0 -1 0 0 0
9
Figura 20. Circuito eléctrico del Malla
0 0 0 0 -15 -50 0 0 0 -20 0 -10
ejemplo 2
Nodo
0 0 0 0 0 0 1 -1 0 0 0 0
4
Nodo
0 0 0 0 0 0 0 1 1 -1 0 0
7
Nodo
0 0 0 -1 0 0 0 0 0 1 0 -1
6
Malla
0 0 20 0 0 50 0 0 0 0 0 0
3
Nodo
0 0 0 0 -1 1 0 0 0 0 -1 0
8
Malla
-5 0 -20 -5 0 0 0 0 0 0 0 10
4

Teniendo como vector de respuesta:

𝑏 = [0 0 0 0 0 0 0 0 0 − 80 0 0]′ ;

De esta manera, se resuelve el ejercicio por medio de los dos métodos


iterativos mencionados anteriormente.

Solución

Eliminación de Gauss

Función Principal:
function EliminacionGauss()
%Preparacion
close all; clear all; clc
%Matriz
A= [-1 0 0 1 0 0 -1 0 0 0 0 0; %nodo 2
1 1 -1 0 0 0 0 0 0 0 0 0; %nodo 3
0 0 1 0 0 -1 0 0 0 0 0 1; %nodo 5
0 0 0 5 0 0 20 5 0 20 0 0; %malla 1
0 0 0 0 1 0 0 0 -1 0 0 0; %nodo 9
0 0 0 0 -15 -50 0 0 0 -20 0 -10; %malla 2
0 0 0 0 0 0 1 -1 0 0 0 0; %nodo 4
0 0 0 0 0 0 0 1 1 -1 0 0; %nodo 7
0 0 0 -1 0 0 0 0 0 1 0 -1; %nodo 6
0 0 20 0 0 50 0 0 0 0 0 0; %malla 3
0 0 0 0 -1 1 0 0 0 0 -1 0; %nodo 8

50
-5 0 -20 -5 0 0 0 0 0 0 0 10]; %malla 4
%Vector respuesta
b=[0 0 0 0 0 0 0 0 0 -80 0 0]';
n = size(A,1);
%Eliminacion
for i=1:n-1 %Recorre columnas
for k=i+1:n %Recorre filas
m=A(k,i)/A(i,i); %Factor (multiplicacion escalar)
for j=i+1:n %Cambio columnas de una fila
A(k,j)=A(k,j)-m*A(i,j); %Resta de filas
end
A(k,i)=0;
b(k)=b(k)-m*b(i); %Actualiza el vector de
respuesta
end
end
%Sustitución hacia atrás
for c=n:-1:1
if c==n
x(c)=b(c)/A(c,c);
end
a=b(c); %Inicializar
for g=c+1:n
a=a-A(c,g)*x(g); %Coeficientes por x encontrados
end
x(c)=a/A(c,c);
end
disp(x')

- Tiempo de convergencia: 0.052244 s


Eliminación de Gauss-Jordan

Función Principal:
function EliminacionGaussJordan()
%Preparación
close all; clear all; clc
%Matriz
A=[-1 0 0 1 0 0 -1 0 0 0 0 0; %nodo 2
1 1 -1 0 0 0 0 0 0 0 0 0; %nodo 3
0 0 1 0 0 -1 0 0 0 0 0 1; %nodo 5
0 0 0 5 0 0 20 5 0 20 0 0; %malla 1
0 0 0 0 1 0 0 0 -1 0 0 0; %nodo 9
0 0 0 0 -15 -50 0 0 0 -20 0 -10; %malla 2
0 0 0 0 0 0 1 -1 0 0 0 0; %nodo 4
0 0 0 0 0 0 0 1 1 -1 0 0; %nodo 7
0 0 0 -1 0 0 0 0 0 1 0 -1; %nodo 6
0 0 20 0 0 50 0 0 0 0 0 0; %malla 3
0 0 0 0 -1 1 0 0 0 0 -1 0; %nodo 8
-5 0 -20 -5 0 0 0 0 0 0 0 10]; %malla 4
%Vector respuesta
b=[0 0 0 0 0 0 0 0 0 -80 0 0]';
%Método
M=[A,b];
%Reducción Superior
[n,k]=size(M);
for i=1:k-1
M(i,:)=M(i,:)/M(i,i);
for j=i+1:n
M(j,:)=M(j,:)-M(i,:)*M(j,i);
end

51
end
% Método: Parte 2 (Reducción Inferior)
for i=2:n
h=n-i+2;
for j=1:h-1
p=h-j;
M(p,:)=M(p,:)-M(h,:)*M(p,h);
end
end
disp(M(:,end));

- Tiempo de convergencia: 0.049843 s


Resultados

𝒊𝟏𝟐 𝒊𝟑𝟐 𝒊𝟒𝟑 𝒊𝟓𝟒 𝒊𝟓𝟑 𝒊𝟓𝟐 𝒊𝟔𝟓


-3.109 0.516 0.0454 0.454 0.063 2.593 3.047

𝑽𝟐 𝑽𝟑 𝑽𝟒 𝑽𝟓
108.834 124.327 127.958 134.765

5. SISTEMAS DE ECUACIONES DIFERENCIALES


ORDINARIAS (ODE)
Propósito

En este capítulo, daremos varios ejemplos que tienen aplicación en la


ingeniería química, que dan como resultado un conjunto de ecuaciones
diferenciales ordinarias.

En el siguiente apartado, se discutirán un gran número de métodos para la


solución numérica de los problemas y demostrar la aplicación de los
mismos en programas computacionales como MATLAB ®.

Las ecuaciones diferenciales ordinarias nacen del estudio de la dinámica de


sistemas físicos y químicos que tienen una única variable independiente.
Las variables que comúnmente son las independientes son: la variable de
espacio x o la variable de tiempo t, dependiendo de la geometría del sistema
y sus condiciones de frontera.

Anteriormente, se derivaba la siguiente ecuación a partir de la segunda ley


de Newton para poder calcular la velocidad v de un paracaidista en caída
como una función del tiempo t como se muestra en la ecuación 51, donde
g es la constante de la gravedad, m es la masa, y c es el coeficiente de fricción.
Ese tipo de ecuaciones, que están compuestas por funciones desconocidas
y sus derivadas, se llaman ecuaciones diferenciales. La ecuación 51 se le
conoce algunas veces como una ecuación de tasa de cambio porque expresa
la tasa de cambio de una variable como función de variables y parámetros.
Esas ecuaciones juegan un rol fundamental en ingeniería porque varios
fenómenos físicos se formulan de una mejor forma matemáticamente en
términos de su tasa de cambio.

52
En la ecuación 51, la cantidad derivada, v, se llama variable dependiente. La
cantidad con respecto a la que v está siendo derivada, t, se llama variable
independiente. Cuando la función tiene una variable independiente la
ecuación se llama ecuación diferencial ordinaria (o ODE). Esto es lo
contrario a una ecuación diferencial parcial (o PDE) la cual incluye una
o más variables independientes.

𝑑𝑣 𝑐
=𝑔− 𝑣 (51)
𝑑𝑡 𝑚

Las ecuaciones diferenciales también se clasifican de acuerdo con su orden.


Por ejemplo, la ecuación 51 se le denomina ecuación de primer orden
porque la mayor derivada es una derivada de primer orden. Una ecuación
de segundo orden, debería incluir una derivada de segundo orden. Por
ejemplo, la ecuación que describe la posición x de un sistema masa –
resorte con amortiguación es la ecuación de segundo orden mostrada en la
ecuación 52, donde c es el coeficiente de amortiguamiento y k es la
constante del resorte. Similarmente, una ecuación de orden n deberá incluir
una derivada de orden n.

𝑑2 𝑥 𝑑𝑥
𝑚 2 +𝑐 + 𝑘𝑐 = 0 (52)
𝑑𝑡 𝑑𝑡

Ecuaciones de grado mayor pueden ser reducidas a un sistema de


ecuaciones de primer orden. Para la ecuación 52, esto se hace definiendo
una nueva variable y, donde:

𝑑𝑥
𝑦= (53)
𝑑𝑦

A partir de la cual se puede obtener la siguiente derivada para obtener lo


siguiente:

𝑑𝑦 𝑑 2 𝑥
= (54)
𝑑𝑡 𝑑𝑡 2
La ecuación 53 y la ecuación 54 se pueden sustituir en la ecuación 52 para
obtener:

𝑑𝑦 𝑑𝑦 𝑐𝑦 + 𝑘𝑥
𝑚 + 𝑐𝑦 + 𝑘𝑥 = 0 (55) 𝑜 =− (56)
𝑑𝑡 𝑑𝑡 𝑚
Así, la ecuación 53 y la ecuación 56 son un par de ecuaciones de primer
orden que son equivalente a la ecuación original de segundo orden. Como
otras ecuaciones diferenciales de orden n se pueden reducir de una forma
similar, este apartado se enfocará en la solución de ecuaciones de primer
orden.

53
5.1. CONDICIONES INICIALES
A continuación, se mostrarán los métodos para resolver sistemas de
ecuaciones diferenciales ordinarias a partir de condiciones iniciales:

𝑑𝑦
(𝑡, 𝑦) = 𝑦 ′ (𝑡, 𝑦) = 𝑓(𝑡, 𝑦) ; 𝑎≤𝑡≤𝑏 ; 𝑦(𝑎) = 𝑎 (57)
𝑑𝑡

5.1.1. MÉTODO DE EULER (RUNGE KUTTA PRIMER


ORDEN)

Este es un método de integración numérica derivado del teorema de Taylor


con n = 1 y constituye la aproximación más elemental para resolver
ecuaciones diferenciales con valor inicial. Adicionalmente, es el más simple
de los métodos de Runge – Kutta al ser de primer orden, por lo que el error
global del método es proporcional al tamaño del paso.

Ecuación general

𝑦𝑖+1 = 𝑦𝑖 + ℎ𝑓(𝑡𝑖 , 𝑦𝑖 ) (58)

1) Pasos (cantidad N) de la variable independiente:

𝑏−𝑎
ℎ= (59)
𝑁
𝑡𝑖 = 𝑎 + 𝑖ℎ (60)

Este método parte del punto inicial dado, a partir del cual, se puede calcular
la pendiente de la curva en ese punto y asimismo la recta tangente. Así, se
van dando pequeños pasos realizando el mismo procedimiento hasta
obtener la aproximación más cercana a la curva de una determinada
función. Por esta razón, es de gran importancia el valor h, ya que se busca
que éste sea lo más pequeño posible para que el error entre ambas curvas
sea el mínimo.

Ejemplo

Encuentre el perfil de y a partir de la siguiente ecuación diferencial:

𝑑𝑦 3𝑡
= 𝑒𝑡 − 2
𝑑𝑡 𝑡 −1
2≤𝑡≤5 ; 𝑦(2) = 1

Solución

Función Principal:
function EJ_RK1()
% Preparación Codigo
clc
close all
% Parámetros

54
dt=0.01;
t=2:dt:5;
140 y0=1;
% Método Numérico
120 y=zeros(1,length(t));
y(1)=y0;
100 for i=1:length(t)-1
y(i+1)=y(i)+dt*ecu(t(i),y(i));
80 end
% Solución
y

60 plot(t,y)
xlabel('t')
40 ylabel('y')

20

0
2 2.5 3 3.5 4 4.5 5 Función Secundaria:
t
function f=ecu(t,y)
Figura 21. Solución del perfil de y por % Ecuación
el método de Euler (Runge Kutta f=exp(t)-(3*t)/(t^2-1);
Primer Orden)

Resultados

Los resultados se presentan en la figura 21.

5.1.2. MÉTODO RUNGE-KUTTA DE SEGUNDO ORDEN

Para el caso del método de Runge–Kutta de segundo orden, el algoritmo


del método se reduce y está determinado únicamente por dos constantes
k1 y k 2 , como se muestra a continuación:

Ecuación general


𝑦𝑖+1 = 𝑦𝑖 + (𝑘1 + 𝑘2 ) (61)
2
1) Coeficientes:

𝑘1 = 𝑓(𝑡𝑖 , 𝑦𝐼 ) (62)

𝑘2 = 𝑓(𝑡𝑖 + ℎ, 𝑦𝑖 + 𝑘1 ∗ ℎ) (63)

2) Pasos (cantidad N) de la variable independiente:

𝑏−𝑎
ℎ= (64)
𝑁

𝑡𝑖 = 𝑎 + 𝑖ℎ (65)

Ejemplo

Encuentre el perfil de y a partir de la siguiente ecuación diferencial:

55
𝑑𝑦
= 7 − 3𝑡 + 2𝑡 2
𝑑𝑡

1 ≤ 𝑡 ≤ 10 ; 𝑦(1) = 5

Solución

Función Principal:
function EJ_RK2()
% Preparación Código
clc
600
close all
% Parámetros
500 dt=0.01;
t=1:dt:10;
y0=5;
400
% Método Numérico
y=zeros(1,length(t));
y(1)=y0;
y

300
for i=1:length(t)-1
k1=dt*ecu(t(i),y(i));
200 k2=dt*ecu(t(i)+dt,y(i)+k1);
y(i+1)=y(i)+(1/2)*(k1+k2);
100
end
% Solución
plot(t,y)
0
1 2 3 4 5 6 7 8 9 10
xlabel('t')
t ylabel('y')
Figura 22. Solución del perfil de y por el end
método de Runge Kutta Segundo Orden

Función Secundaria:
function f=ecu(t,y)
% Ecuacion
f=7-3*t+2*t^2;
end

Resultados

Los resultados se presentan en la figura 22.

5.1.3. MÉTODO RUNGE-KUTTA DE CUARTO ORDEN

El método de Runge–Kutta de cuarto orden es un método más robusto a


comparación de Euler y Taylor, y es equivalente a la función ode45 de Matlab.
Este es un método iterativo para la aproximación de soluciones de
ecuaciones diferenciales ordinarias dado un valor inicial.

Ecuación general


𝑦𝑖+1 = 𝑦𝑖 + (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 ) (66)
6
1) Coeficientes:

𝑘1 = 𝑓(𝑡𝑖 , 𝑦𝑖 ) (67)

56
ℎ 1
𝑘2 = 𝑓 (𝑡𝑖 + , 𝑦𝑖 + 𝑘1 ∗ ℎ) (68)
2 2
ℎ 1
𝑘3 = 𝑓 (𝑡𝑖 + , 𝑦𝑖 + 𝑘2 ∗ ℎ) (69)
2 2

𝑘4 = 𝑓(𝑡𝑖 + ℎ, 𝑦𝑖 + 𝑘3 ∗ ℎ) (70)

2) Pasos (cantidad N) de la variable independiente:

𝑏−𝑎
ℎ= (71)
𝑁

𝑡𝑖 = 𝑎 + 𝑖ℎ (72)

Para este método el error global es proporcional a ℎ4 .

Ejemplo

Encuentre el perfil de y a partir de la siguiente ecuación diferencial:

𝑑𝑦 𝑡 2𝑡𝑦
= −
𝑑𝑡 1 + 𝑡 2 1 + 𝑡 2
0 ≤ 𝑡 ≤ 10 ; 𝑦(0) = 0

Solución

Función Principal:
0.5 function EJ_RK2()
% Preparación Codigo
0.45
clc
0.4 close all
% Parametros
0.35
dt=0.01;
0.3 t=0:dt:10;
y0=0;
y

0.25 % Método Numérico


0.2 y=zeros(1,length(t));
y(1)=y0;
0.15
for i=1:length(t)-1
0.1 k1=ecu(t(i),y(i));
k2=ecu(t(i)+dt/2,y(i)+(k1/2)*dt);
0.05
k3=ecu(t(i)+dt/2,y(i)+(k2/2)*dt);
0 k4=ecu(t(i)+dt,y(i)+k3*dt);
0 1 2 3 4 5 6 7 8 9 10 y(i+1)=y(i)+(dt/6)*(k1+2*k2+2*k3+k4);
t
end
Figura 23. Solución del perfil de y por el % Solución
método de Runge – Kutta de cuarto plot(t,y)
orden. xlabel('t')
ylabel('y')

Función Secundaria:
function f=ecu(t, y)

57
% Ecuación
f=(t)/ (1+t^2)-(2*t*y)/ (1+t^2);

Resultados

Los resultados se presentan en la figura 23.

5.1.4. MÉTODO DE TAYLOR DE SEGUNDO ORDEN

Este método se desarrolló con el fin de mejorar la convergencia del método


de Euler al tener polinomios de mayor grado, por ende, su precisión va a
ser mayor, pero requiere el cálculo de derivadas hasta de tercer orden. De
este modo, el método constituye una aproximación de funciones mediante
una serie de potencias a partir de las derivadas de una función en un punto
determinado.

Ecuación general

𝑦𝑖+1 = 𝑦𝑖 + ℎ𝑇 (2) (𝑡𝑖 , 𝑦𝑖 ) (73)

1) Coeficientes:


𝑇 (2) (𝑡𝑖 , 𝑦𝐼 ) = 𝑓(𝑡𝑖 , 𝑦𝑖 ) + 𝑓 ′ (𝑡𝑖 , 𝑦𝑖 ) (74)
2
2) Pasos (cantidad N) de la variable independiente:

𝑏−𝑎
ℎ= (75)
𝑁

𝑡𝑖 = 𝑎 + 𝑖ℎ (76)

Al igual que para el método de Euler es necesario determinar un intervalo


[a,b] y un número de particiones N para poder determinar el paso h, en ir
realizando cada aproximación.

Ejemplo

Encuentre el perfil de y a partir de la siguiente ecuación diferencial usando


el método de Taylor de segundo orden:

𝑑𝑦
= 𝑦 − 𝑡2 + 2
𝑑𝑡

0≤𝑡≤2 ; 𝑦(0) = 0.5

Solución

Primera derivada 

𝑓 ′ (𝑡𝑖 , 𝑦𝑖 ) = 𝑦 − 𝑡 2 − 2𝑡 + 2

58
12

Función Principal:
10 function EJ_T2()
% Preparación Codigo
clc
8
close all
% Parametros
dt=0.01;
y

6
t=0:dt:2;
y0=0.5;
4
% Método Numérico
y=zeros(1,length(t));
2 function f=ecu(t,y)
y(1)=y0;
for i=1:length(t)-1
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 T2=ecu(t(i),y(i))+(dt/2)*der(t(i),y(i));
t y(i+1)=y(i)+dt*T2;
end
Figura 24. Solución del perfil de y por el % Solución
método de Taylor de Segundo orden. plot(t,y)
xlabel('t')
ylabel('y')

Funciones Secundarias:

% Ecuacion
f=y-t^2+2;

function f=der(t,y)
% Ecuacion
f=y-t^2-2*t+2;

Resultados

Los resultados se presentan en la figura 24.

5.1.5. MÉTODO DE TAYLOR DE CUARTO ORDEN

Ecuación general

𝑦𝐼+1 = 𝑦𝑖 + ℎ𝑇 (4) (𝑡𝑖 , 𝑦𝑖 ) (77)

1) Coeficientes:

(4) ℎ ℎ2
𝑇 (𝑡𝑖 , 𝑦𝑖 ) = 𝑓(𝑡𝑖 , 𝑦𝐼 ) + 𝑓 ′ (𝑡𝐼 , 𝑦𝑖 ) + 𝑓 ′′ (𝑡𝑖 , 𝑦𝑖 )
2 3!
ℎ3 ′′′
+ 𝑓 (𝑡𝑖 , 𝑦𝐼 ) (78)
4!
2) Pasos (cantidad N) de la variable independiente:

𝑏−𝑎
ℎ= (79)
𝑁

59
𝑡𝑖 = 𝑎 + 𝑖ℎ (80)
12
Ejemplo

10 Encuentre el perfil de y a partir de la siguiente ecuación diferencial usando


el método de Taylor de cuarto orden:
8
𝑑𝑦
= 𝑦 − 𝑡2 + 2
𝑑𝑡
y

0≤𝑡≤2 ; 𝑦(0) = 0.5


4

2
Solución

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Primera derivada 
t 𝑓 ′ (𝑡𝑖 , 𝑦𝑖 ) = 𝑦 − 𝑡 2 − 2𝑡 + 2
Figura 25. Solución del perfil de y por el 𝑓 ′′ (𝑡𝑖 , 𝑦𝑖 ) = 𝑦 − 𝑡 2 − 2𝑡
método de Taylor de Cuarto orden. 𝑓 ′′′ (𝑡𝑖 , 𝑦𝑖 ) = 𝑦 − 𝑡 2 − 2𝑡

Función Principal:
function EJ_T4()
% Preparación Codigo
clc
close all
% Parametros
dt=0.01;
t=0:dt:2;
y0=0.5;
% Método Numérico
y=zeros(1,length(t));
y(1)=y0;
for i=1:length(t)-1
DER=der(t(i),y(i));

T4=ecu(t(i),y(i))+(dt/2)*DER(1)+((dt^2)/6)*DER(2)+((dt^3)
/24)*DER(3);
y(i+1)=y(i)+dt*T4;
end
% Solución
plot(t,y)
xlabel('t')
ylabel('y')

Funciones Secundarias:
function f=ecu(t,y)
% Ecuacion
f=y-t^2+2;

function f=der(t,y)
% Ecuacion
f(1)=y-t^2-2*t+2;
f(2)=y-t^2-2*t;
f(3)=y-t^2-2*t;

60
Resultados

Los resultados se presentan en la figura 25.

5.1.6. EJEMPLO IQUI

Se efectuará la siguiente reacción de forma adiabática en un reactor Batch


a volumen constante, para probar la obtención de una nueva sustancia C
con altos costos de producción.

𝐴+𝐵 →𝐶

La ley de velocidad es
1 1
−𝑟𝐴 = 𝑘1 𝐶𝐴2 𝐶𝐵2 − 𝑘2 𝐶𝐶

La temperatura de entrada de los reactivos es de 100ºC y además se conoce


la siguiente información:

𝑘1 (373 𝐾) = 2𝑥10−3 𝑠 −1 𝐸1 = 100 𝑘𝐽/𝑚𝑜𝑙

𝑘2 (373 𝐾) = 3𝑥10−5 𝑠 −1 𝐸2 = 150 𝑘𝐽/𝑚𝑜𝑙

𝑚𝑜𝑙
𝐶𝐴0 = 0.1 𝐶𝑝𝐴 = 25 𝐽/𝑚𝑜𝑙 𝐾
𝑑𝑚3

𝑚𝑜𝑙
𝐶𝐵0 = 0.125 𝐶𝑝𝐵 = 25 𝐽/𝑚𝑜𝑙 𝐾
𝑑𝑚3

0 (298
𝐽
∆𝐻𝑅𝑥𝑛 𝐾) = −41800 𝐴 𝐶𝑝𝐶 = 40 𝐽/𝑚𝑜𝑙 𝐾
𝑚𝑜𝑙

Obtener el perfil de concentración y temperatura de las especies


reaccionantes a lo largo de 2 minutos.

Solución

Se tiene la siguiente reacción, que se lleva a cabo en un reactor Batch a


volumen constante:
𝑨+𝑩→𝑪
1 1
−𝑟𝐴 = 𝑘1′ ∗ 𝐶𝐴2 ∗ 𝐶𝐵2 − 𝑘2′ ∗ 𝐶𝐶

Donde 𝑟𝐵 = 𝑟𝐴 y 𝑟𝐶 = −𝑟𝐴 , por relación estequiométrica y

61
𝐸1 1 1
𝑘1′ = 𝑘1 (@373 𝐾) ∗ 𝑒𝑥𝑝 ((− ) ∗ (( ) − ( )))
𝑅 𝑇 𝑇0

𝐸2 1 1
𝑘2′ = 𝑘2 (@373 𝐾) ∗ 𝑒𝑥𝑝 ((− ) ∗ (( ) − ( )))
𝑅 𝑇 𝑇0

En este caso, el producto de interés es C y debido a su alto costo de


producción se desea analizar la conversión, la temperatura, y concentración
de especies reaccionantes en el tiempo.

Por esto, para un reactor Batch se tiene que:

- Balance Molar
𝑑𝑁𝑖
𝑟𝑖 𝑉 =
𝑑𝑡
𝑆𝑎𝑏𝑖𝑒𝑛𝑑𝑜 𝑞𝑢𝑒: 𝑁𝑖 = 𝐶𝑖 𝑉

𝑑(𝐶𝑖 )
= 𝑟𝑖 ; 𝑝𝑎𝑟𝑎 𝐴, 𝐵 𝑦 𝐶
𝑑𝑡
De este modo se tienen 3 ecuaciones:

- A
𝑑(𝐶𝐴 )
= 𝑟𝐴
𝑑𝑡
- B
𝑑(𝐶𝐵 )
= 𝑟𝐵
𝑑𝑡
- C
𝑑(𝐶𝐶 )
= 𝑟𝐶
𝑑𝑡
Adicionalmente, como el sistema no es isotérmico, es necesario desarrollar
un balance de energía.

- Balance de energía

𝑑𝑇 𝑄 + ∆𝐻𝑅𝑥𝑛 𝑟𝐴 𝑉
=
𝑑𝑡 ∑𝑁𝑖 𝐶𝑝𝑖

Como se tiene un proceso adiabático 𝑄 = 0, de forma que:

𝑑𝑇 ∆𝐻𝑅𝑥𝑛 𝑟𝐴 𝑉
=
𝑑𝑡 ∑𝑁𝑖 𝐶𝑝𝑖

𝑑𝑇 ∆𝐻𝑅𝑥𝑛 𝑟𝐴
=
𝑑𝑡 ∑𝐶𝑖 𝐶𝑝𝑖

Donde

62
0
∆𝐻𝑅𝑥𝑛 + ∆𝐶𝑝 ∗ (𝑇 − 298.15 𝐾)

∆𝐶𝑝 = 𝐶𝑝𝐶 − 𝐶𝑝𝐴 − 𝐶𝑝𝐵

∑𝐶𝑖 𝐶𝑝𝑖 = 𝐶𝐴 ∗ 𝐶𝑝𝐴 + 𝐶𝐵 ∗ 𝐶𝑝𝐵 + 𝐶𝐶 ∗ 𝐶𝑝𝐶

De esta forma, se tienen 4 incógnitas (𝐶𝐴 , 𝐶𝐵 , 𝐶𝐶 𝑦 𝑇) y 4 ecuaciones


diferenciales (balance molar y balance de energía) respecto al tiempo que
se resuelven por los 4 métodos de Runge – Kutta.

Función Principal:
function BatchNotas()
%Variables
global CA0 CB0 DHR k1 k2 CP v DCP T0 E1 E2 R
CA0=0.1/0.001;% mol/m3
CB0=0.125/0.001; %mol/m3
DHR=-4180; %J/mol A
k1=2e-3; %s^-1
k2=3e-5; %s^-1;
v=[-1; -1; 1];%coeficientes estequiometricos
CP=[25; 25; 40]; %J/mol K
DCP=sum(v.*CP);
T0=100+273.15; %k
E1=100e3; %J/mol
E2=150e3; %J/mol
R=8.314;%J/mol K
%Paso de tiempo
h=0.01;
%Paso de tiempo Euler
hE=(120-0)/1000;
%Vector de tiempo
tspan=0:h:120;
%Inicializacion
y0=[CA0 CB0 0 T0]';

%RK4
[tsol4,ysol4]=RK4(tspan,y0,h);
CA=ysol4(1,:);
CB=ysol4(2,:);
CC=ysol4(3,:);
%EULER
[tsol,ysol]=Euler(tspan,y0,hE);
CAE=ysol(1,:);
CBE=ysol(2,:);
CCE=ysol(3,:);
%RK2
[tsol2,ysol2]=RK2(tspan,y0,h);
CA2=ysol2(1,:);
CB2=ysol2(2,:);
CC2=ysol2(3,:);
%RK3
[tsol3,ysol3]=RK3(tspan,y0,h);
CA3=ysol3(1,:);
CB3=ysol3(2,:);
CC3=ysol3(3,:);
%% RK4
figure(1)
%CONCENTRACIONES

63
plot(tsol4,CA,tsol4,CB,tsol4,CC)
legend('CA','CB','CC')
xlabel('Tiempo (s)')
ylabel 'Concentración (mol/m3)'
grid minor
%TEMPERATURA
figure (2)
plot(tsol4,ysol4(4,:))
legend 'T'
xlabel('Tiempo (s)')
ylabel 'Temperatura (K)'
grid minor
%% EULER
figure(3)
%CONCENTRACIONES
plot(tsol,CAE,tsol,CBE,tsol,CCE)
legend('CA','CB','CC')
xlabel('Tiempo (s)')
ylabel 'Concentración (mol/m3)'
grid minor
%TEMPERATURA
figure (4)
plot(tsol3,ysol(4,:))
legend 'T'
xlabel('Tiempo (s)')
ylabel 'Temperatura (K)'
grid minor
%% RK2
figure(5)
%CONCENTRACIONES
plot(tsol2,CA2,tsol2,CB2,tsol2,CC2)
legend('CA','CB','CC')
xlabel('Tiempo (s)')
ylabel 'Concentración (mol/m3)'
grid minor
%TEMPERATURA
figure (6)
plot(tsol2,ysol2(4,:))
legend 'T'
xlabel('Tiempo (s)')
ylabel 'Temperatura (K)'
grid minor
%% RK3
figure(7)
%CONCENTRACIONES
plot(tsol3,CA3,tsol3,CB3,tsol3,CC3)
legend('CA','CB','CC')
xlabel('Tiempo (s)')
ylabel 'Concentración (mol/m3)'
grid minor
%TEMPERATURA
figure (8)
plot(tsol3,ysol3(4,:))
legend 'T'
xlabel('Tiempo (s)')
ylabel 'Temperatura (K)'
grid minor

end

64
Método de Euler:
function [tspan,y]=Euler(tspan,y0,h)
y=y0;
%Euler
for i=1:length(tspan)-1 %Para todos los tiempos
%Parametros
t=tspan(i);
yi=y(:,i);
%Constantes RK1
k1=h*ecu(t,yi);
%SOLRK1
y(:,i+1)=yi+h*k1;
end
end

Método de RK2:
function [tspan,y]=RK2(tspan,y0,h)
y=y0;
%RK2
for i=1:length(tspan)-1
t=tspan(i);
yi=y(:,i);
%Constantes RK2
k1=h*ecu(t,yi);
k2=h*ecu(t+h,yi+(k1));
%Solucion RK2
y(:,i+1)=yi+(1/2)*(k1+k2);
end
end
Figura 26. Solución del perfil de temperatura para
los 4 casos.

Método de RK3:
function [tspan,y]=RK3(tspan,y0,h)
y=y0;
%RK3
for i=1:length(tspan)-1
t=tspan(i);
yi=y(:,i);
%Constantes RK3
k1=h*ecu(t,yi);
k2=h*ecu(t+(h/2),yi+(k1/2));
k3=h*ecu(t+(h),yi-k1+2*k2);
%Solucion RK3
y(:,i+1)=yi+(1/6)*(k1+4*k2+k3);
end
end

Figura 27. Solución del perfil de concentración Método de RK4:


para los 4 casos. function [tspan,y]=RK4(tspan,y0,h)
y=y0;
%RK4
for i=1:length(tspan)-1
t=tspan(i);
yi=y(:,i);
%Constantes RK4
k1=ecu(t,yi);
k2=ecu(t+(h/2),yi+(k1/2)*h);

65
k3=ecu(t+(h/2),yi+(k2/2)*h);
k4=ecu(t+h,yi+k3*h);
%Solucion RK4
y(:,i+1)=yi+(h/6)*(k1+2*k2+2*k3+k4);
end
end

Función secundaria: Ecuaciones


function rta=ecu(t,w)
global DHR k1 k2 CP DCP T0 E1 E2 R
CA=w(1);
CB=w(2);
CC=w(3);
T=w(4);
%Velocidades de reacción
k11=k1*exp((-E1/R)*((1/T)-(1/T0)));
k21=k2*exp((-E2/R)*((1/T)-(1/T0)));
%Otros compuestos
ra=-k11*(CA^(1/2))*(CB^(1/2))+k21*CC;
rb=ra;
rc=-ra;
%ENTALPÍA CORREGIDA
DH=DHR+DCP*(T-298.15);
rta(1,1)=ra;
rta(2,1)=rb;
rta(3,1)=rc;
%BALANCE DE ENERGIA
rta(4,1)=(DH*ra)/(CA*CP(1)+CB*CP(2)+CC*CP(3));
end

Gráficas
De este modo, se procede a graficar la concentración y temperatura en
función del tiempo, obteniendo para los 4 casos la figura 26 y la figura 27.

5.2. CONDICIONES DE FRONTERA


El método de Newton Shooting itera la condición en la frontera inicial para
ajustar la condición inicial final. De esta manera, reúne el método de Runge
– Kutta para solucionar el sistema de ecuaciones diferenciales y el método
de Newton para iterar y encontrar los valores iniciales.

5.2.1. SISTEMAS DE UNA CONDICIÓN DE FRONTERA

Ecuación general

1) Función objetivo:

𝑦(𝑡𝑓 , 𝛾) − 𝑦𝑜𝑏𝑗 = 0 (81)

Donde 𝛾𝑜𝑏𝑗 es la condición de frontera y 𝑦(𝑡, 𝑦0 ) es el valor de y a un


tiempo (t) según la condición inicial (𝑦0 ) utilizada.

66
2) Ecuación:

𝛾𝑛𝑒𝑤 = 𝛾𝑜𝑙𝑑 + ∆𝛾 (82)

−[𝑦(𝑡𝑓 , 𝛾) − 𝑦𝑜𝑏𝑗 ]
∆𝛾 = (83)
𝜕𝑦(𝑡𝑓 , 𝛾)
[ ]
𝜕𝛾

Donde 𝛾 es la condición inicial como variable y 𝑡𝑓 el valor final de la


variable independiente.

Ejemplo

Encuentre el perfil de 𝑥1 y 𝑥2 a partir de las siguientes ecuaciones con el


método de Newton Shooting:

𝑑𝑦1
= 𝑦1 − 3𝑦2
𝑑𝑡
𝑑𝑦2
= 3𝑦1 − 2𝑦2
𝑑𝑡

0≤𝑡≤1 ; 𝑦1 (0) = 3 ; 𝑦2 (1) = 1

Solución

Función Principal:
function EJ_NS1()
% Preparación Codigo
clc
close all
% Parametros
tspan=0:0.01:1;
tol=1e-6;
h=1e-3;
cond=true;
cF=1;
c0=1;
% Método Númerico
while cond==true
[t,y]=ode45(@ecu,tspan,[3;c0]);
[t,ynew]=ode45(@ecu,tspan,[3;c0+h]);
der=(ynew(end,2)-y(end,2))/h;
Figura 28. Solución del perfil de y1 y y2. c0new=c0-(y(end,2)-cF)/der;
error=abs(y(end,2)-cF);
if error<tol
break
else
c0=c0new;
end
end
% Solución
plot(t,y(:,1),'r')
hold on
plot(t,y(:,2),'b')
grid on

67
legend('y1','y2')

Funciones Secundarias:
function f=ecu(t,y)
% Variables
y1=y(1);
y2=y(2);
% ODEs
f(1,1)=y1-3*y2;
f(2,1)=3*y1-2*y2;

Resultados

Los resultados se presentan en la figura 28.

5.2.2. SISTEMAS DE DOS O MAS CONDICIONES DE


FRONTERA

Ecuación general

1) Función objetivo:

𝑦(𝑡𝑓 , 𝛾) − 𝑦𝑜𝑏𝑗 = 0 (84)

Donde 𝑦𝑜𝑏𝑗 son las condiciones de frontera y 𝑦(𝑡, 𝑦0 ) son los valores de
y a un tiempo (t) según las condiciones iniciales (𝑦0 ) utilizadas:

2) Ecuación:

𝛾𝑛𝑒𝑤 = −𝛾𝑜𝑙𝑑 + ∆𝛾 (85)


−1
Δ𝛾 = −[𝐽(𝑡𝑓 , 𝛾)] 𝛿𝑦 (86)
𝜕𝑦𝑟+1 𝜕𝑦𝑟+1

𝜕𝛾𝑟+1 𝜕𝛾𝑛
𝐽(𝑡𝑓 , 𝛾) = … … … (87)
𝜕𝑦𝑛 𝜕𝑦𝑛

[𝜕𝛾𝑟+1 𝜕𝛾𝑛 ]

𝑦𝑟+1 (𝑡𝑓 , 𝛾) − 𝑦𝑟+1,𝑜𝑏𝑗


𝛿𝑦 = [ … ] (88)
𝑦𝑛 (𝑡𝑓 , 𝛾) − 𝑦𝑛,𝑜𝑏𝑗

Donde 𝛾 son las condiciones iniciales como variables y 𝑡𝑓 el valor final de


la variable independiente.

Ejemplo

Encuentre el perfil de 𝑦1 , 𝑦2 y 𝑦3 a partir de las siguientes ecuaciones


difenrenciales:
𝑑𝑦1
= −2𝑦1 + 𝑦2
𝑑𝑡

68
𝑑𝑦2
= 𝑦1 − 2𝑦2 − 𝑦3
𝑑𝑡
𝑑𝑦3
= 𝑦1 + 𝑦2 − 2𝑦3
𝑑𝑡

0≤𝑡≤1 ; 𝑦1 (1) = 0.4 ; 𝑦2 (1) = 0.2 ; 𝑦3 (0) = 0

Solución

Función Principal:
function EJ_NS2()
% Preparación Codigo
clc
close all
% Parametros
tspan=0:0.01:1;
tol=1e-6;
h=1e-3;
cond=true;
cF=[0.4;0.2];
c0=[1;1;0];
% Método Númerico
while cond==true
% Paso 1
[t,y]=ode45(@ecu,tspan,c0);
[t,yd1]=ode45(@ecu,tspan,c0+[h;0;0]);
[t,yd2]=ode45(@ecu,tspan,c0+[0;h;0]);
% Paso 2
d11=(yd1(end,1)-y(end,1))/h;
d12=(yd2(end,1)-y(end,1))/h;
d21=(yd1(end,2)-y(end,2))/h;
d22=(yd2(end,2)-y(end,2))/h;
J=[d11,d12;d21,d22];
% Paso 3
c0new=c0(1:2)'-(y(end,1:2)-cF')*inv(J);
error=abs(y(end,1:2)-cF');
% Paso 4
if error<tol
Figura 29. Solución del perfil de y1, y2 y y3. break
else
c0(1:2)=c0new';
end
end
% Solución
plot(t,y(:,1),'r')
hold on
plot(t,y(:,2),'b')
plot(t,y(:,3),'m')
grid on
legend('y1','y2','y3')

Funciones Secundarias:
function f=ecu(t,y)
% Variables
y1=y(1);

69
y2=y(2);
y3=y(3);
% ODEs
f(1,1)=-2*y1+y2;
f(2,1)=y1-2*y2-y3;
f(3,1)=y1+y2-2*y3;

Resultados

Los resultados se presentan en la figura 29.

5.2.3. EJEMPLO IQUI

En un sistema de única fase donde se presenta difusión y reacción química


al mismo tiempo se puede modelar mediante la ecuación de conservación
de masa. Asumiendo que la reacción es irreversible y de primer orden
implicando un reactivo A y un producto B se puede deducir la siguiente
ecuación diferencial de segundo orden:

𝑑 2 𝐶𝐴 𝑘
= 𝐶
𝑑𝑧 2 𝐷𝐴𝐵 𝐴

Donde 𝐶𝐴 es la concentración del reactivo 𝐴 (𝑘𝑔 𝑚𝑜𝑙/𝑚3 ), z es la variable


de distancia (m), k es la constante del avance de reacción homogénea (𝑠 −1)
y 𝐷𝐴𝐵 es el coeficiente de difusión binario (𝑚2 /𝑠). Una geometría típica
donde se puede aplicar la anterior ecuación es una capa de una dimensión
donde se conoce la concentración de A en la superficie superior y no
permite difusión en la superficie de abajo. De este modo las condiciones
de frontera son:

𝐶𝐴 = 𝐶𝐴0 𝑝𝑎𝑟𝑎 𝑧 = 0

𝑑𝐶𝐴
=0 𝑝𝑎𝑟𝑎 𝑧 = 𝐿
𝑑𝑧
Los datos que determinan un caso en particular son:

𝑚𝑜𝑙 −3 −1 −9
𝑚2
𝐶𝐴0 = 0.2 𝑘𝑔 3 𝑘 = 10 𝑠 𝐷𝐴𝐵 = 1.2𝑥10 𝐿
𝑚 𝑠
−3
= 10 𝑚

Muestre los perfiles de la concentración y del gradiente a lo largo de la capa.

Solución

Para la resolución de este problema es necesario realizar una sustitución,


con el fin de bajar el grado de la ecuación diferencial dada. De esta forma,
se tiene el siguiente sistema de ecuaciones:

𝑑𝐶𝐴
=𝑤
𝑑𝑧

70
𝑑𝑤 𝑑2 𝐶𝐴 𝑘
= = 𝐶
𝑑𝑧 𝑑𝑧 2 𝐷𝐴𝐵 𝐴

Función Principal:
function NewtonShootNotas()
global CA0 k DAB L
CA0=0.2;%kg mol/m3
k=(10^-3);%s-1
DAB=1.2e-9;%m2/s
L=(10^-3);%m
%Parametros
cond=true;
tol=1e-6;
h=1e-3;
%Paso de tiempo
dx=0.0001;
%Vector de variable independiente
xspan=[0:dx:L];
%Condiciones iniciales
y0=[1;CA0];
%Condiciones finales
CF=0;
%Newton Shooting
while cond==true
[x,y]=ode45(@ecu,xspan,y0);
[x,yd1]=ode45(@ecu,xspan,y0+[h;0]);
der=(yd1(end,1)-y(end,1))/h;
%Newton
y0new=y0(1)-((y(end,1)-CF)/der);
error=abs(y(end,1)-CF);
if error<tol
break
Figura 30. Solución para el perfil de else
concentración. y0(1)=y0new;
end
end
figure(1)
plot(x,y(:,1))
title('Gradiente en función de la longitud')
xlabel('Longitud (m)')
ylabel('Gradiente')
grid minor
figure(2)
plot(x,y(:,2),'r')
title('Concentración en función de la longitud')
xlabel('Longitud (m)')
ylabel('Concentración(kg mol/m3)')
grid minor
Figura 31. Solución del perfil del gradiente de
end
concentración.

Función Secundaria:
function sol=ecu(x,w)
global k DAB
y1=w(1);
CA=w(2);
sol(1,1)=(k/DAB)*CA;
sol(2,1)=y1;
end

71
Resultados

Los resultados se presentan en la figura 30 y 31.

6. SISTEMAS DE ECUACIONES ALGEBRO-


DIFERENCIALES (DAE)
Propósito

A lo largo de este capítulo se va a introducir el tema de ecuaciones algebro-


diferenciales y su método de solución con MATLAB®. A diferencia de
otros temas en el curso, no se va a tratar un método numérico que resuelva
dicho tipo de ecuaciones, sino que se va a trabajar con una función
predeterminada del software previamente mencionado.
El propósito de este capítulo es que el estudiante se familiarice con este
tipo de ecuaciones y para posteriormente facilitar su implementación.

El comportamiento de varios procesos físicos usualmente esta descrito por


ecuaciones diferenciales, sin embargo, algunos sistemas presentan
restricciones algebraicas que siempre deben ser tenidas en cuenta como lo
puede ser la ley de Kirchhoff en redes eléctricas o el movimiento de masa
a través de ciertos puntos del espacio. Cuando un sistema posee tanto
ecuaciones diferenciales, como ecuaciones algebraicas se dice que este es
un sistema algebro-diferencial o DAE por sus siglas en inglés. La forma
general de un sistema algebro-diferencial se puede apreciar a continuación:

𝐹(𝑡, 𝑥, 𝑥̇ ) = 0 (89)

Donde el termino asociado a la variable t representa el span de tiempo, x


representa los términos algebraicos y el termino de 𝑥̇ representa a los
términos diferenciales que aseguran que la ecuación presentada
anteriormente se satisfaga, es decir que es una variable independiente de F
que permite determinar una función diferenciable x tal que satisfaga la
ecuación 89 para todo instante de tiempo t.

Para garantizar la única solución del sistema, se deben tener en cuenta los
problemas de condiciones iniciales tal que se cumpla la siguiente condición:

𝑥(𝑡0 ) = 𝑥0

Esto asegura que las ecuaciones algebro-diferenciales cumplan tanto las


propiedades de las ecuaciones algebraicas como las propiedades de las
ecuaciones diferenciales.

72
6.1. SOLUCIÓN DE SISTEMAS DAE DE ÍNDICE 1
Estas ecuaciones son aquellas en las que el número de veces que debe ser
derivada la función 𝐹(𝑡, 𝑥, 𝑥̇ ) = 0 debe ser derivada para obtener un
sistema de ecuaciones diferenciales ordinarias, es decir un sistema de
ODE´s puro.

Antes de plantear el código para solucionar dicho problema en MATLAB®


se debe tener en cuenta que este programa únicamente puede realizar
soluciones a problemas que sean de índice 1. Por lo cual, si se desean
Figura 32. Matriz de masa incorrecta resolver problemas como torres de destilación y flash dinámicos se deben
utilizar otras herramientas computacionales dado que estos problemas
tienen un índice superior a 1.

Para solucionar un sistema DAE en MATLAB® se debe utilizar la función


predeterminada ODE15s u ODE43t, sin embargo, dado que en el curso
Figura 33. Matriz de masa correcta únicamente se cubre la primera función.

Dicha función se declara de la siguiente forma:

[𝑡, 𝑦] = 𝑜𝑑𝑒15𝑠(@𝑓, 𝑡𝑠𝑝𝑎𝑛, 𝑦𝑖 , 𝑜𝑑𝑒𝑠𝑒𝑡(´𝑀𝑎𝑠𝑠´, 𝑀) (90)

En la ecuación 90, se sabe que f es la función donde se encuentran las


ecuaciones que van a ser resueltas, es decir la función secundaria. El tspan
y el 𝑦𝑖 corresponden al vector del tiempo y al vector de inicialización
respectivamente. Por ultimo la parte del odeset corresponde a la matriz de
masa M la cual es independiente para cada sistema. Esta matriz se construye
como una matriz cuadrada de ceros con excepción de la diagonal la cual se
construye de la siguiente forma:

1, 𝑠𝑖 𝑙𝑎 𝑒𝑐𝑢𝑎𝑐𝑖ó𝑛 𝑗 𝑒𝑠 𝑑𝑖𝑓. 𝑒𝑛 𝑙𝑎 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑠𝑒𝑐𝑢𝑛𝑑𝑎𝑟𝑖𝑎


𝑐𝑗,𝑗 = { }
0, 𝑑𝑒 𝑙𝑜 𝑐𝑜𝑛𝑡𝑟𝑎𝑟𝑖𝑜

En este caso es importante que en la función secundaria las ecuaciones


diferenciales estén en las primeras posiciones del vector respuesta mientras
que las funciones secundarias estén en las últimas posiciones del vector
respuesta con el fin de evitar obtener una matriz de masa como la de la
figura 32. Sino que se obtenga una matriz de masa como la presentada en
la figura 33.

Ejemplo

En un proceso de destilación batch donde interactúan dos componentes


asignados como 1 y 2, las moles del líquido restante (𝐿), pueden describirse
en función de la composición molar del compuesto 2 (𝑥2 ). Esta relación
sigue la siguiente función:

𝑑𝐿 𝐿
=
𝑑𝑥2 𝑥2 (𝑘2 − 1)

73
Donde 𝑘2 es la constante de equilibrio vapor-liquido del compuesto 2.
Asumiendo que el sistema es ideal, la constante de equilibrio vapor-liquido
puede calcularse utilizando la siguiente relación:

𝑃𝑖
𝑘𝑖 =
𝑃

Donde 𝑃𝑖 es la presión de vapor del componente “i” y P es la presión total


del sistema. Comúnmente la presión de vapor puede calcularse mediante el
modelo de Antoine, el cual utiliza tres parámetros específicos (A, B y C)
del componente “i”. Adicionalmente, requiere de la temperatura de
operación (°C). La expresión de Antoine se muestra a continuación:
𝐵
𝑃𝑖 = 10(𝐴 − )
𝑇+𝐶

La temperatura del proceso sigue la curva de burbuja del sistema. Esta


temperatura puede calcularse implícitamente de la ecuación algebraica que
se muestra a continuación:

𝑘1 𝑥1 + 𝑘2 𝑥2 = 1

Considere una solución binaria de benceno (Componente 1) y tolueno


(Componente 2). Las constantes de Antoine para el benceno son 𝐴1 =
6.90565, 𝐵1 = 1211.033 y 𝐶1 = 220.79. Para el tolueno 𝐴2 =
6.95464, 𝐵2 = 1344.8 y 𝐶2 = 219.482. P es la presión en mmHg y T la
temperatura en °C. La presión del sistema es 912 mmHg. Inicialmente se
tiene una solución de 100 moles compuesta de 60% de benceno y 40% de
tolueno. Resuelva el sistema hasta alcanzar un 80% de Tolueno y grafique
el comportamiento de las moles del líquido restante y la temperatura con
respecto a la composición del tolueno. Asuma que la temperatura inicial de
la mezcla es de 95.5851°C. Analice su respuesta.

Solución

Función Principal:
function EjDestBatch()
% Preparacion del codigo
clc
clear all
close all
% Matriz Masa
M=[1,0;0,0];
options=odeset('Mass',M);
% Temperatura Inicial
T0=100;
Tin=fsolve(@temp0,T0)
disp(Tin)
% Solución
x2span=[0.4 0.8];
xo=[100,95.5851];
[x2,sol]=ode15s(@DAE,x2span,xo,options);
% Reporte
figure(1)
plot(x2,sol(:,1))

74
title('Destilacion Batch')
xlabel('Composición de Tolueno')
ylabel('Moles del Liquido (mol)')
grid on

figure(2)
plot(x2,sol(:,2))
title('Destilacion Batch')
xlabel('Composición de Tolueno')
ylabel('Temperatura (°C)')
grid on

Función Secundaria:
function f=DAE(x2,y)
% Variables
L=y(1);
T=y(2);
% Parametros
P=1.2*760; % mmHg
% Calculos intermedios
A=[6.90565,6.95464];
Figura 34. Moles de líquido vs composición de B=[1211.033,1344.8];
Tolueno C=[220.79,219.482];
Pvap=10.^(A-(B)./(T+C));
k=Pvap./P;
x1=1-x2;
% Modelo DAE
f(1,1)=L/(x2*(k(2)-1));
f(2,1)=k(1)*x1+k(2)*x2-1;

function f=temp0(T)
% Calculos intermedios
x1=0.6;
x2=0.4;
P=1.2*760;
A=[6.90565,6.95464];
B=[1211.033,1344.8];
Figura 35. Temperatura vs Composición de C=[220.79,219.482];
Tolueno Pvap=10.^(A-(B)./(T+C));
k=Pvap./P;
% Ecuación
f(1)=k(1)*x1+k(2)*x2-1;

Resultados

Los resultados obtenidos para las moles de líquido contra la composición


de tolueno se pueden ver en la figura 34 mientras que los resultados
obtenidos para la temperatura contra la concentración de tolueno se
pueden ver en la figura 35.

6.2. SOLUCIÓN DE SISTEMAS DAE DE ÍNDICE 2


O SUPERIOR
Estas ecuaciones a pesar de que no son cubiertas en el curso, también se
presentan en distintas aplicaciones de la ingeniería química. Estas se

75
presentan cuando la función desconocida F presentada en la ecuación 91,
debe ser derivada más de una vez con el fin de obtener un sistema de
ecuaciones diferenciales puro. Unos ejemplos de estos sistemas se pueden
ver a continuación:

Índice 2:

𝑦2 ´ = 𝑦1 + 𝛾1 0 = 𝑦2 + 𝛾2

𝑦2 ´ = −𝛾2 ´ (91)

𝑦1 ´ = 𝛾2 ´´ − 𝛾1 ´ (92)

Y así como estas ecuaciones de índice 2, pueden existir ecuaciones con un


mayor índice. Dado que MATLAB no resuelve este tipo de ecuaciones, se
deben buscar otros métodos de solución entre los cuales están los
siguientes:
 Métodos de reducción de índice.
 Discretización de ecuaciones (Diferencias finitas).
 Métodos de proyección.
 Métodos de fórmulas de diferenciación regresiva (BDF).

7. SISTEMAS DE ECUACIONES DIFERENCIALES


PARCIALES (PDE)
Propósito
En capítulos anteriores se dieron las primeras herramientas y conceptos
básicos en el mundo de las ecuaciones diferenciales, y se trataron
específicamente sistemas de ecuaciones diferenciales ordinarias (ODE) y
sistemas mezclados con ecuaciones algebraicas (DAE). En este capítulo se
cubrirá otra rama de las ecuaciones diferenciales, las cuales considera
derivadas parciales y funciones dependientes de varias variables
simultáneamente. Estas funciones son recurrentes en diversas áreas de
ingeniería química tales como, fenómenos de transporte.

Para solucionar sistemas PDE se mostrará el método aproximado de


diferencias finitas y se darán ejemplos de su aplicación en problemas
relacionados con la ingeniería química tal como los fenómenos de
transferencia de calor.

7.1. MÉTODO DE DIFERENCIAS FINITAS


Cuando se realiza una solución analítica de un sistema, se puede obtener
una ecuación para la temperatura en cada punto de dicho sistema, sin
embargo, cuando se trabaja en una solución numérica solo se puede
obtener la solución en ciertos puntos discretos. Es por esto que se genera
lo que se conoce como una red nodal. De esta forma se puede aproximar
las derivadas parciales de una ecuación física a una ecuación algebraica en

76
la cual solo se tiene la diferencia entre los nodos, los cuales son separados
por un conjunto de ecuaciones diferenciales. La solución para la
temperatura en los nodos se obtiene cuando se realiza la inversión de la
matriz obtenida. Una cualidad particular de este método es que los
espaciamientos no tienen que ser exactamente iguales, más sin embargo
deben mantener cierta proporcionalidad en su crecimiento/decrecimiento.

Ecuación general

1. Discretización hacia adelante:

𝑓(𝑥 + ℎ) − 𝑓(𝑥)
𝑓 ′ (𝑥) = (93)
Δ𝑥

2. Discretización hacia atrás:

𝑓(𝑥) − 𝑓(𝑥 − ℎ)
𝑓 ′ (𝑥) = (94)
Δ𝑥

3. Discretización centrada:
𝑓(𝑥 + ℎ) − 𝑓(𝑥 − ℎ)
𝑓 ′ (𝑥) = (95)
2Δ𝑥
Ejemplo

Resuelva la ecuación de una onda mostrada a continuación:

𝜕𝑢 𝜕𝑢
+𝑐 =0
𝜕𝑡 𝜕𝑥

𝑢(0 ≤ 𝑥 < 1, 0) = 1 ; 𝑢(1 ≤ 𝑥 ≤ 1.5, 0) = 2 ; 𝑢(1.5 < 𝑥 ≤ 2,0) = 1

0≤𝑥≤2
0 ≤ 𝑡 ≤ 0.25
En donde 𝑐 representa la rapidez cuya magnitud es constante (en este caso
𝑐 = 1 m/s). Esta ecuación describe la variación de 𝑢 en cada punto
estudiando por el efecto de un campo vectorial.

Solución

Realizando la discretización hacia adelante y hacia atrás para el tiempo y el


espacio respectivamente se tiene la siguiente ecuación:

𝑢𝑖𝑛+1 − 𝑢𝑖𝑛 𝑢𝑖𝑛 − 𝑢𝑖−1


𝑛
+𝑐 =0
Δ𝑡 Δ𝑥
Δ𝑡 𝑛
𝑢𝑖𝑛+1 = 𝑢𝑖𝑛 + 𝑐 (𝑢 − 𝑢𝑖𝑛 )
Δ𝑥 𝑖−1

Definiendo como pasos de nuestras variables Δ𝑥 = 0.04 y Δ𝑡 = 0.02 se


puede solucionar de la siguiente manera:

77
Función Principal:
function EJ_PDE_DF()
% Preparación Codigo
clc
close all
% Parametros
c=1;
dt=0.02;
dx=0.04;
tspan=0:dt:0.25;
xspan=0:dx:2;
% Inicialización
for i=1:length(xspan)
if xspan(i)<1
u0(i)=1;
elseif xspan(i)>1.5
Figura 36. Solución en t=0 s u0(i)=1;
else
u0(i)=2;
end
end
% Solución
u(1,:)=u0;
for j=1:length(tspan)
for i=1:length(xspan)
if i==1
u(j+1,i)=1;
else
u(j+1,i)=u(j,i)+c*(dt/dx)*(u(j,i-1)-u(j,i));
end
end
end
% Graficas
Figura 37. Solución en t=0.25 s figure(1)
plot(xspan,u(1,:))
ylim([0.8 2.2])
figure(2)
plot(xspan,u(end,:))
ylim([0.8 2.2])

Resultados

Los resultados se presentan en la figura 36 y 37.

7.2. EJEMPLO IQUI


Se tiene una barra de hierro con un coeficiente de conducción de 35.1 W/
(m K) de dimensiones de 18 cm x 10 cm situada en el suelo. Por un
descuido usted la deja durante el invierno afuera y al caer la nieve esta se
posa al lado de la barra cubriéndola hasta arriba, sin embargo, no alcanza a
cubrir la barra en su totalidad. Usted desea saber cómo es el perfil de
Figura 38. Esquema del ejemplo IQUI temperatura en la barra una vez esta llegue a estado estacionario.
Adicionalmente a esto, usted sabe que el coeficiente convectivo del aire
con la barra es de 100 W/ (m2 K). Utilice espaciamientos de 2 cm como
los valores de ∆𝑥 𝑦 ∆𝑦. Un modelo aproximado del problema junto con
las distintas temperaturas involucradas se puede ver en la figura 38.

78
Solución

Se plantean el esquema de discretización mostrado en al figura 39.

Se plantean las siguientes ecuaciones para los distintos nodos:

ℎ∆𝑥 ℎ∆𝑥 ℎ∆𝑥


1: 𝑇10 + 𝑇2 + 𝑇𝑎𝑖𝑟 + 𝑇𝑠𝑛𝑜𝑤 − 2 ( + 1) 𝑇1 = 0
𝑘 𝑘 𝑘
Figura 39. Discretizaciones consideradas para el
ejemplo IQUI Para los nodos 2, 3, 4, 5, 6, 7 y 8 se plantea una ecuación similar por lo cual
solo se va a mostrar la ecuación del nodo 2 la cual se puede ver a
continuación:
ℎ∆𝑥 ℎ∆𝑥
2: 𝑇1 + 𝑇2 + 2𝑇11 + 2 𝑇𝑎𝑖𝑟 − 2 ( + 2) 𝑇2 = 0
𝑘 𝑘

Para el nodo 9 el cual es una esquina externa con convección se tiene lo


siguiente:

ℎ∆𝑥 ℎ∆𝑥 ℎ∆𝑥


9: 𝑇8 + 𝑇18 + 𝑇𝑎𝑖𝑟 + 𝑇𝑠𝑛𝑜𝑤 − 2 ( + 1) 𝑇9 = 0
𝑘 𝑘 𝑘
Para el nodo 10, 18, 19, 27, 28 y 36 ya que son nodos sobre una superficie
plana con convección se tiene:

2ℎ∆𝑥 ℎ∆𝑥
10: 2𝑇11 + 𝑇1 + 𝑇19 + 𝑇𝑠𝑛𝑜𝑤 − 2 ( + 2) 𝑇10 = 0
𝑘 𝑘

Para los nodos 11 al 17, 20 al 26 y 29 al 35 se tiene la siguiente ecuación ya


que todos son nodos intermedios:

11: 𝑇2 + 𝑇10 + 𝑇12 + 𝑇20 − 4𝑇11 = 0

Para los nodos 37 y 45 que son nodos con convección y aislamiento se


tiene la siguiente ecuación:

ℎ∆𝑥 ℎ∆𝑥
19: 𝑇20 + 𝑇10 + 2 𝑇𝑠𝑛𝑜𝑤 − (2 + ) 𝑇19 = 0
𝑘 𝑘

Para los nodos 38 al 44 son nodos planos sin convección por lo que el
término relacionado a la convección es 0, esta ecuación se puede ver a
continuación:

38: 𝑇37 + 𝑇39 + 2𝑇29 − 4𝑇38 = 0

Resolviendo el sistema de 45 ecuaciones y 45 incógnitas con Matlab a


través de la función predeterminada de fsolve se obtienen los siguientes
resultados:

Resultados

La temperatura del nodo 1 es: 274.50


La temperatura del nodo 2 es: 275.24

79
La temperatura del nodo 3 es: 275.24
La temperatura del nodo 4 es: 275.94
La temperatura del nodo 5 es: 276.01
La temperatura del nodo 6 es: 275.94
La temperatura del nodo 7 es: 275.69
La temperatura del nodo 8 es: 275.24
La temperatura del nodo 9 es: 274.50
La temperatura del nodo 10 es: 274.02
La temperatura del nodo 11 es: 274.66
La temperatura del nodo 12 es: 275.08
La temperatura del nodo 13 es: 275.32
La temperatura del nodo 14 es: 275.40
La temperatura del nodo 15 es: 275.32
La temperatura del nodo 16 es: 275.08
La temperatura del nodo 17 es: 274.66
La temperatura del nodo 18 es: 274.02
La temperatura del nodo 19 es: 273.77
La temperatura del nodo 20 es: 274.29
La temperatura del nodo 21 es: 274.65
La temperatura del nodo 22 es: 274.87
La temperatura del nodo 23 es: 274.95
La temperatura del nodo 24 es: 274.87
La temperatura del nodo 25 es: 274.65
La temperatura del nodo 26 es: 274.29
La temperatura del nodo 27 es: 273.77
La temperatura del nodo 28 es: 273.64
La temperatura del nodo 29 es: 274.06
La temperatura del nodo 30 es: 274.37
La temperatura del nodo 31 es: 274.57
La temperatura del nodo 32 es: 274.64
La temperatura del nodo 33 es: 274.57
La temperatura del nodo 34 es: 274.37
La temperatura del nodo 35 es: 274.06
La temperatura del nodo 36 es: 273.64
La temperatura del nodo 37 es: 273.57
La temperatura del nodo 38 es: 273.93
La temperatura del nodo 39 es: 274.22
La temperatura del nodo 40 es: 274.40
La temperatura del nodo 41 es: 274.46
La temperatura del nodo 42 es: 274.40
La temperatura del nodo 43 es: 274.22
La temperatura del nodo 44 es: 273.93
La temperatura del nodo 45 es: 273.57

80
8. MESH
Propósito

El presente capítulo tiene como propósito introducir el modelo de


ecuaciones conocido como MESH, para la resolución y estudio de sistemas
de separación, aplicado particularmente a torres de destilación en
contracorriente. Se presentarán las generalidades del modelo y las
diferentes suposiciones y aspectos claves que se deben tener en cuenta al
momento de su utilización.

Adicionalmente, se introducirá el algoritmo de Thomas para la resolución


de sistemas MESH desacoplados de los balances de energía y se aplicará
esté método a un ejemplo para entender a profundidad su funcionamiento.

Ecuaciones MESH

Las ecuaciones MESH se pueden utilizar cuando se tienen en cuenta las


siguientes suposiciones:
 Un separador líquido-vapor en estado estable y operando en
continuo.
 Tiene un número conocido de platos en arreglo de cascada en
contra corriente.
 Que el equilibrio químico se alcanza en cada uno de los platos.
 No existen reacciones químicas dentro de la torre.
 El arrastre de las gotas de líquido en el vapor y la oclusión de
burbujas en el líquido son despreciables.
Si existe una alimentación en la etapa j, con un flujo molar Fj y con una
composición global zi,j del componente i, Temperatura 𝑇𝐹𝑗 , presión 𝑃𝐹𝑗 con
una entalpia ℎ𝐹𝑗 . La presión de alimentación se asume igual o superior a la
presión de la etapa j. Adicionalmente a la alimentación fresca, se tiene que
para cada etapa j, puede existir una entrada de líquido (𝐿𝑗−1 ) proveniente
de la etapa j-1, es decir desde una etapa superior, con una composición
𝑥𝑖,𝑗−1, una entalpia de ℎ𝐿𝑗−1 , una temperatura 𝑇𝑗−1 y presión de 𝑃𝑗−1 la
cual debe ser igual o menor a la presión de la etapa j. En cuanto al flujo
molar de vapor Vj+1 que entra a la etapa j, se sabe que esta va a provenir de
una etapa inferior, es decir de la etapa j+1. Este flujo molar de vapor,
también tiene sus composiciones 𝑦𝑖,𝑗+1 , una entalpia ℎ𝑉𝑗+1 , una
temperatura 𝑇𝑗+1 y presión 𝑃𝑗+1 . El modelo matemático de una etapa de
equilibrio Lj para un equipo separador líquido vapor se construye con las
ecuaciones MESH las cuales se muestran a continuación:

Ecuaciones de materia (M): Hace referencia a las ecuaciones de los balances


de materia para cada uno de los componentes. Es decir que si en el sistema
existen C componentes se van a obtener C ecuaciones M.

81
𝑀𝑖,𝑗 : 𝐿𝑗−1 𝑥𝑖,𝑗−1 + 𝑉𝑗+1 𝑦𝑖,𝑗+1 + 𝐹𝑗 𝑧𝑖,𝑗 − (𝐿𝑗 − 𝑈𝑗 )𝑥𝑖,𝑗 − (𝑉𝑗 − 𝑊𝑗 )𝑦𝑖,𝑗 = 0 (96)

Ecuaciones de energía (E): Son las ecuaciones relacionadas con el equilibrio


de fases para cada componente, es decir que por etapa vamos a tener un
total de C ecuaciones.
𝐸𝑖,𝑗 : 𝑦𝑖,𝑗 − 𝐾𝑖,𝑗 𝑥𝑖,𝑗 = 0 (97)

Ecuaciones de fracciones molares (S): Corresponde a la sumatoria, en cada


corriente de las fracciones molares de cada componente en dicha fase. Por
etapa se tienen dos ecuaciones, una para cada corriente.
𝐶

(𝑆𝑦 )𝑗 : ∑ 𝑦𝑖,𝑗 − 1 = 0 (98)


𝑖=1
𝐶

(𝑆𝑥 )𝑗 : ∑ 𝑥𝑖,𝑗 − 1 = 0 (99)


𝑖=1

Figura 40. Modelo general de una etapa de Ecuaciones de entalpia (H): Se compone de los balances de entalpia en cada
equilibrio en contracorriente etapa, es decir que siempre va a existir una única ecuación de entalpia por
etapa.

𝐻𝑗 : 𝐿𝑗−1 ℎ𝐿𝑗−1 + 𝑉𝑗+1 ℎ𝑉𝑗+1 + 𝐹𝑗 ℎ𝐹𝑗 − (𝐿𝑗 + 𝑈𝑗 )ℎ𝐿𝑗 − (𝑉𝑗 + 𝑊𝑗 )ℎ𝑉𝑗


− 𝑄𝑗 = 0 (100)

Un diagrama general de una torre en cascada a contracorriente y el


diagrama de una etapa se pueden ver en la figura 40 y en la figura 41.

Algoritmo de Thomas

Es posible modificar las ecuaciones M mencionadas anteriormente con la


ayuda de las ecuaciones E y de esta forma eliminar el vector de
componentes de la fase de vapor Y, por lo cual, las ecuaciones para calcular
Y y L son separadas de las demás ecuaciones. Con esto en mente, las
ecuaciones para realizar dichos cálculos por etapa y por componente nos
quedan de la siguiente forma:

𝐴𝑗 𝑥𝑖,𝑗−1 + 𝐵𝑗 𝑥𝑖,𝑗 + 𝐶𝑗 𝑥𝑖,𝑗+1 = 𝐷𝑗

Donde:

𝑗−1

Figura 41. Modelo de una torre de destilación en 𝐴𝑗 = 𝑉𝑗 + ∑ (𝐹𝑚 − 𝑊𝑚 − 𝑈𝑚 ) − 𝑉1 , 2≤𝑗≤𝑁


cascada con arreglo de etapas en contracorriente
𝑚=1

𝑗−1

𝐵𝑗 = [𝑉𝑗 + ∑ (𝐹𝑚 − 𝑊𝑚 − 𝑈𝑚 ) − 𝑉1 + 𝑈𝑗 + (𝑉1 + 𝑊1 )𝐾𝑖,𝑗 ] , 1≤𝑗


𝑚=1
≤𝑁

𝐶𝑗 = 𝑉𝑗+1 𝐾𝑖,𝑗+1 , 1≤𝑗 ≤𝑁−1

82
𝐷𝑗 = −𝐹𝑗 𝑧𝑖,𝑗 , 1≤𝑗≤𝑁

Una vez se tienen estos coeficientes se procede a calcular los valores de pj


y qj, estos valores se utilizan para calcular posteriormente la composición
de i en la etapa j para la fase liquida. Esto se puede hacer dado que se tiene
un sistema de ecuaciones como el que se presenta en la figura 42.

𝐶𝑗 𝐷𝑗 − 𝐴𝑗 𝑞𝑗−1
𝑝𝑗 = 𝑞𝑗 =
𝐵𝑗 − 𝐴𝑗 𝑝𝑗−1 𝐵𝑗 − 𝐴𝑗 𝑝𝑗−1
Figura 42. Sistema de ecuaciones tridiagonal para
las ecuaciones M modificadas
Por lo tanto,

𝑥𝑖,𝑗 = 𝑞𝑗 − 𝑝𝑗 𝑥𝑖,𝑗+1

Ejemplo

Se tiene una corriente de 15000 kmol/h de líquido saturado con una


composición equimolar de metano, etano, propano, n-butano y n-pentano
que entra al plato intermedio de una columna de destilación de tres etapas
de equilibrio, que además cuenta con un condensador total y un rehervidor
parcial. La corriente de destilado de la torre es de 9000 kmol/h con un
reflujo externo de 30000 kmol/h de líquido saturado. Dado que las
soluciones formadas pueden considerarse ideales, por lo cual la presión de
saturación se puede calcular con ayuda de los valores presentados en la
tabla y ecuación presentada a continuación. Adicionalmente, es posible
asumir que el flujo de vapor que sale de cada plato es de 39000 kmol/h y
que la columna opera a una presión constante de 1 atm. Calcule el valor de
la temperatura y composiciones de cada uno de los platos utilizando el
algoritmo de Thomas.
𝐶2
𝑃 𝑠𝑎𝑡 = exp (𝐶1 + + 𝐶3 ∗ ln(𝑇) + 𝐶4 ∗ 𝑇 𝐶5 )
𝑇

En la ecuación anterior se tiene que la presión de saturación va a estar en


pascales y la temperatura va a estar en grados Kelvin. Utilice los siguientes
coeficientes para realizar los cálculos correspondientes a cada uno de los
componentes:

𝐶1 𝐶2 𝐶3 𝐶4 𝐶5
Metano 39.205 -1324.4 -3.4366 -3.10E-05 2
Etano 51.857 -2598.7 -5.1283 1.49E-05 2
Propano 59.078 -3492.6 -6.0669 1.09E-05 2
n-Butano 66.343 -4363.2 -7.046 9.45E-06 2
n-Pentano 78.741 -5420.3 -8.8253 9.62E-06 2

Solución

Lo primero que se debe obtener es el valor de cada uno de los flujos en


cada etapa. Esta información se resume en la tabla presentada a
continuación:

83
Información general de los flujos.
Etapa 1 2 3 4 5
L [kmol/h] 30000 30000 30000 45000 6000
V [kmol/h] 0 39000 39000 39000 39000
F [kmol/h] 0 0 15000 0 0
W [kmol/h] 0 0 0 0 0
U [kmol/h] 9000 0 0 0 0

Lo siguiente que se debe realizar es calcular las presiones de saturación para


cada componente en cada una de las etapas. Para realizar el cálculo inicial
de estas presiones se va a asumir un perfil como el que se muestra a
continuación:

Etapa 1 2 3 4 5
T (ºC) -90 -70 -50 -30 -10

Esto nos da que la presión de saturación por componente en cada etapa es


la siguiente:

Presión de Saturación (Pa)


Etapa 1 2 3 4 5
Metano 454764.05 510744.87 509284.28 462627.70 389610.84
Etano 93743.33 249928.59 551848.76 1064283.4 1859347.9
Propano 6401.25 24275.75 70369.56 167708.24 345476.32
n-Butano 457.19 2473.17 9482.26 28249.12 69660.09
n-Pentano 32.66 259.68 1344.94 5085.86 15187.73

Con esta presión de saturación y sabiendo que cada etapa en la torre opera
a 101325 Pa se puede calcular la constante de equilibrio para cada uno de
los componentes en cada etapa con la siguiente ecuación:

𝑃 𝑠𝑎𝑡
𝐾𝑖,𝑗 =
𝑃
Esto nos queda que para la inicialización planteada las constantes son las
siguientes:

Constante de Equilibrio (Kij)


Etapa 1 2 3 4 5
Metano 2.87083 5.08777 4.50509 3.6743 3.04721
Etano 0.14245 4.2870 11.12154 20.47162 29.66635
Propano 0.004856 0.50430 1.78365 3.9204 6.25518
n-Butano 0.000174 0.06251 0.306175 0.81773 1.45754
n-Pentano 5.8413E-6 0.008106 0.056244 0.18483 0.370635

Una vez se tiene la constante de equilibrio se procede a construir la matriz


tridiagonal para que nos quede de la siguiente forma:

84
Matriz tridiagonal
B1 C1 0 0 0
A2 B2 C2 0 0
0 A3 B3 C3 0
0 0 A4 B4 C4
0 0 0 A5 B5

Nótese que para esta matriz tridiagonal, también va a existir un vector de


Di asociado a cada etapa, dicho vector se puede ver a continuación:

Di
D1
D2
D3
D4
D5

La matriz se construye con las ecuaciones del Algoritmo de Thomas. En


este caso se va a mostrar únicamente la matriz del metano junto con su
vector respuesta. Dicha matriz se puede ver a continuación:

Metano
Etapa Di
1 -39000 196585.74 0 0 0 0
2 30000 -226585.7 196023.5 0 0 0
3 0.004856 0.50430 1.78365 3.9204 6.25518 -3000
4 0.000174 0.06251 0.306175 0.81773 1.45754 0
5 5.8413E-6 0.008106 0.056244 0.18483 0.370635 0

Cuando se tiene esta matriz se procede a calcular la siguiente matriz:

Matriz después de eliminación


1 p1 0 0 0
1 1 p2 0 0
0 0 1 p3 0
0 0 0 1 p4
0 0 0 0 1

Junto con su vector respuesta:


qi
q1
q2
q3
q4
q5

Para el caso de la matriz del metano nos queda la siguiente matriz después
de la eliminación:

85
Etapa Matriz metano qi
1 1 -5.04066 0 0 0 0
2 0 1 -2.600956827 0 0 0
3 0 0 1 -1.0924605 0 0.0184
4 0 0 0 1 -0.86231844 0.0048
5 0 0 0 0 1 0.0018

Una vez se tiene esta matriz se puede proceder a calcular la concentración


de metano en cada una de las etapas, esto nos da el siguiente resultado:

x1 x2 x3 x4 x5
0.3321137 0.0658869 0.0253318 0.0063401 0.0018

Este procedimiento se repite para cada uno de los componentes. Una vez
se tiene la concentración de x para cada componente en cada etapa se
construye la siguiente matriz:

Composiciones X
Metano 0.332113 0.0658869 0.025331 0.0063401 0.001829
Etano 0.333181 0.135077 0.033195 0.0036432 0.000227
Propano 0.193356 0.8070550 0.9581547 0.6484365 0.209964
n-Butano 0.000455 0.0186650 0.154546 0.3640814 0.499316
n-Pentano 3.199E-06 0.001248 0.072391 0.1316182 0.49999
Suma 0.859111 1.0279324 1.243620 1.1541196 1.211333

Como se puede ver, la suma de las fracciones no suma 1 por lo cual se debe
normalizar la matriz anterior. Esta normalización se lleva a cabo con la
siguiente fórmula para cada etapa:
𝑥𝑖,𝑗
𝑋𝑖,𝑗 = ∀ 𝑖 ∈ 𝐶, 𝑗 ∈ 𝑁
∑𝐶𝑚=1 𝑥𝑚,𝑗

Una vez se lleva a cabo este procedimiento se obtiene la siguiente matriz:

Composiciones X normalizadas
Metano 0.386578 0.0640965 0.020369 0.0054934 0.001510
Etano 0.387821 0.1314066 0.026692 0.0031567 0.000187
Propano 0.225065 0.7851245 0.770456 0.5618451 0.173333
n-Butano 0.000530 0.0181578 0.124271 0.3154624 0.412204
n-Pentano 3.723E-06 0.0012142 0.058210 0.1140421 0.412764
Suma 1 1 1 1 1

Cuando se tienen las fracciones del líquido normalizadas, se puede calcular


la fracción de vapor de cada uno de los componentes. Esto se realiza con
ayuda de la ley de Raoult modificado, esta ley se puede ver a continuación:

𝑌𝑖,𝑗 = 𝑋𝑖,𝑗 𝐾𝑖,𝑗

Esta matriz nos queda de la siguiente forma:

86
Composiciones y normalizadas
Metano 1.490583 0.3230891 0.102381 0.025081 0.005806
Etano 0.358802 0.3241281 0.145376 0.033157 0.003441
Propano 0.014218 0.1881025 0.535076 0.9299389 0.590996
n-Butano 2.392E-06 0.0004432 0.011629 0.0879500 0.283386
n-Pentano 1.200E-09 3.112E-06 0.000772 0.0057241 0.061869
1-Suma 0.863607 -0.164233 -0.204762 0.0818525 -0.0544984

En este caso, la última fila corresponde a 1 − ∑𝐶𝑖=1 𝑦𝑖,𝑗 ya que esta fila va
a ser la que se utiliza como parámetro del solver de Excel. Cuando se tienen
estas matrices se procede a realizar la solución del sistema por medio del
solver de Excel. Para llevar a cabo este solver, se le dice que debe variar las
temperaturas de las etapas. Se establece como objetivo la celda roja con un
valor de 0. Las celdas amarillas se añaden como restricción y se les asigna
un valor de 0. Por último, en la parte donde dice que “Convertir variables
sin restricción en no negativas” en la pestaña del solver, se debe asegurar
que esta casilla no este activa. Cuando se hace este procedimiento, se le da
click al botón de solucionar y se debería obtener la solución del problema.
Esto nos da el siguiente perfil de presión para cada uno de las etapas:

Etapa 1 2 3 4 5
T (ºC) -118.24954 -56.47159 -28.08725 -5.71135 9.80457

Y las siguientes composiciones tanto para el líquido como para el vapor:

Composiciones X normalizadas
Metano 0.331245 0.0651061 0.028084 0.0086880 0.003131
Etano 0.333315 0.0777494 0.012293 0.0006927 2.680E-05
Propano 0.322205 0.6389061 0.317226 0.0927105 0.016691
n-Butano 0.013172 0.2107214 0.539341 0.6706748 0.480241
n-Pentano 6.09E-05 0.0075167 0.103053 0.2272338 0.49990

Composiciones y normalizadas
Metano 0.950951 0.3312455 0.126522 0.0319233 0.009542
Etano 0.047481 0.3333154 0.136726 0.0141810 0.000795
Propano 0.001564 0.3222059 0.565821 0.3634624 0.104405
n-Butano 2.29E-06 0.0131721 0.165133 0.5484337 0.699972
n-Pentano 3.55E-10 6.093E-05 0.005796 0.0419993 0.185283

87

Vous aimerez peut-être aussi