Está en la página 1de 50

Capítulo 2

Métodos numéricos con


MATLAB

Los modelos matemáticos de los procesos químicos implican típicamente un


sistema complejo de ecuaciones. En el campo de la ingeniería química, la mayoría
de los modelos matemáticos de procesos suelen consistir en ecuaciones lineales y
no lineales, ecuaciones diferenciales ordinarias y parciales, o algunas
combinaciones de éstas. Para investigar las características del proceso, es necesario
resolver las ecuaciones utilizando métodos numéricos. Este capítulo cubre los
fundamentos de los métodos numéricos con énfasis en la aplicación con MATLAB.
Los temas incluyen resolver sistemas de ecuaciones lineales, encontrar raíces de
ecuaciones, aproximación polinómica (incluyendo interpolación y ajuste de
curvas), diferenciación e integración numérica, optimización, y resolver ecuaciones
diferenciales ordinarias y parciales. Se supone que el lector ya está familiarizado
con las teorías subyacentes de los temas tratados, por lo que este texto sólo
proporcionará una visión general superficial de las teorías cuando sea necesario.
Los métodos numéricos presentados como programas de MATLAB son tan
fáciles de leer y entender como los presentados como algoritmos o pseudocódigos.
MATLAB también tiene capacidades gráficas muy convenientes y potentes
funciones incorporadas para casi todos los métodos numéricos clave. Por último, la
formulación de operaciones con matriz vectorial de MATLAB es una base
excelente para los métodos de computación científica.

Este capítulo sirve como introducción a la programación general y a la


implementación de algoritmos utilizando MATLAB, a la vez que presenta
MATLAB como una herramienta viable para la resolución de problemas para las
necesidades químicas. Los programas de MATLAB listados en este libro se
mantienen lo más modulares posible para maximizar la reutilización. Se ha
dedicado mucha atención a la documentación y a la anotación de los programas
desarrollados aquí.
2.1 SISTEMAS LINEALES
Cuando los procesos químicos son modelados matemáticamente, ocasionalmente
son descritos por sistemas de ecuaciones lineales. En esta sección, examinaremos
cómo se resuelven estos sistemas de ecuaciones. Consideremos las ecuaciones
lineales simultáneas representadas por lo siguiente:

Hay n variables desconocidas x1, x2, ...., xn y n ecuaciones algebraicas lineales.


En general, los
sistemas de ecuaciones lineales pueden expresarse en términos de vectores y matrices
como
Ax = b

dónde
A es una matriz de n × n de coeficientes conocidos
x es la columna vector de n incógnitas
b es un vector de columna de n coeficientes conocidos como se muestra a continuación
Si la matriz de coeficiente A es cuadrada y noingular, la solución del
sistema lineal viene dada por

Si la matriz A no es cuadrada (es decir, A ∈ Rm × n, m > n), no podemos


calcular A-1 y la solución no puede obtenerse a partir de la relación anterior.
Si multiplicamos AT en ambos lados del sistema lineal, tenemos

El producto ATA es cuadrado, por lo que podemos encontrar el inverso


del producto. Así, obtenemos

Alquiler de

tenemos

La matriz A+ se llama el pseudoinverso Moore-Penrose de A. Podemos utilizar


el pinv de función incorporado de MATLAB, para calcular A+. En la mayoría
de los casos, la solución de los sistemas lineales se puede encontrar utilizando el
operador de barra invertida (\) de MATLAB.

Ejemplo 2.1: Seudoinverso de una matriz

Utilice el pinv de función incorporado de MATLAB para calcular el


pseudoinverso de
Ejemplo 2.2: Solución de un sistema lineal utilizando el operador
de barra invertida (\)

Utilice el operador de la barra diagonal inversa para resolver el


siguiente sistema de ecuaciones:

Solución
La solución viene dada por x = A\c. En este problema, la matriz de
coeficientes A no singular y se puede utilizar la inversa de A para
encontrar la solución.
>> A =[4 2 -1; -3 1 2; 2 -4 1]; b =[8; -6; 12];
>> x = A\b
x=
3
-1
2
>> x = inv(A)*b
x=
3
-1
2
Ejemplo 2.3: Conducción de calor

La figura 2.1 muestra una placa cuadrada plana con sus lados sostenidos a
temperaturas constantes. Encuentra la temperatura-tura en cada nodo x1, x2,
x3, y x4. Cada punto representa un nodo, y se supone que la temperatura en
cada nodo viene dada por las temperaturas medias de los nodos adyacentes.
Solución

La relación anterior puede ser reorganizada en la forma de un sistema de


ecuaciones lineales como

Podemos usar el operador de la barra invertida.


>> A = [4 -1 -1 0 ; -1 4 0 -1 ; -1 0 4 -1 ; 0 -1 -1 4 ] ;
>> b = [ 45 35 55 45 ] ' ;
>> x = A\b
x=
22.5000
20.0000
25.0000
22.0000
15 15

x1 x2
30 20

x3 x4
30 20

25 25

FIGURA 2.1 Placa cuadrada plana con transferencia de calor.

Ejemplo 2.4: Transferencia de calor bidimensional1

Considere la sección transversal de una chimenea rectangular con conducción


de calor constante a lo largo de los ejes x e y como se muestra en la Figura 2.2.
Dado que ambos extremos de la sección son simétricos, sólo podemos
considerar 1/8 de la sección. A partir de esta sección, podemos construir una
red de nodos formada por pequeñas casillas.
Un balance de calor en el nodo 4 da
FIGURA 2.2 Sección transversal de una chimenea rectangular. (De Kapuno,
R.R.A., Programming for Chemical Engineers, Infinity Science Press, 2008, p.
122.)

Como cada nodo es cuadrado, Δx= Δy, y al ordenarlos tenemos

En estado estacionario, se supone que q4/kA es cero. Encuentra temperaturas T4, T5,
...., T12 en los nodos 4 a 12.
Solución
A partir del balance térmico de cada nodo, y considerando las
condiciones de contorno, tenemos

T1 = T2 = T3 = 500°F

T13 = T14 = T15 = T16 = T17 = T18 = 200°F


En el nodo 4: -4T4 + 2T5 + 2T9 = 0

En el nodo 5: T4 - 4T5 + T6 + T10 = -500

En el nodo 6: T5 - 4T6 + T7 + T11 = -500

En el nodo 7: 2T6 - 4T7 + T12 = -500

En el nodo 8: -4T8 + 2T9 = -400

En el nodo 9: T4 + T8 - 4T9 + T10 = -200

En el nodo 10: T5 + T9 - 4T10 + T11 = -200

En el nodo 11: T6 + T10 - 4T11 + T12 = -200

En el nodo 12: T7 + 2T11 - 4T12 = -200

Las ecuaciones lineales anteriores pueden resolverse utilizando el


operador de la barra invertida como se muestra a continuación:
2.2 ECUACIONES NO LINEALES
2.2.1 Ecuaciones polinómicas
En MATLAB, un polinomio está representado por un vector de fila cuyos
elementos denotan cada coeficiente ordenado en potencias descendentes. La
solución de la ecuación polinómica
f ( x) = an x n + an-1x n -1 +… + a1 x + a0 = 0

viene dado por las raíces de funciones incorporadas de MATLAB. Si


definimos el vector del coeficiente como p =[an an - 1  ⋯ a1 a0], la solución se
obtiene a partir de
x = roots(p)

Ejemplo 2.5: Solución de una ecuación polinómica

Encuentra las raíces de la siguiente ecuación:


f ( x) = x 5 - 3x4 + 3x 3 - 2x2 - 4x + 1= 0
Solución
Podemos usar las raíces de la función. Pero primero, tenemos que
construir un vector de coeficiente con los coef-ficientes ordenados en
orden descendente:
>> c = [1 -3 3 -2 -4 1];
>> x = roots(c)
x=
2.3600 + 0.0000i
0.5980 + 1.4065i
0.5980 - 1.4065i
-0.7865 + 0.0000i
0.2306 + 0.0000i

Ejemplo 2.6: Volumen específico de CO2

La ecuación de estado de van der Waals viene dada por

En esta ecuación, v = (V/n) (n: número de lunares), R = 0,082054


liter * atm/(mol - K), y a =3,592 y b = 0,04267 para CO2. Halla el volumen
específico (litro/mol) de CO2 cuando P = 12 atm y T = 315.6 K.
Solución
La ecuación de van der Waals puede reordenarse de la siguiente manera
Pv3 - ( bP + RT )v 2 + av - ab = 0

que es un polinomio de tercer orden con respecto a v. Por lo tanto, el


volumen específico puede obtenerse usando la función raíces:
>> P = 12; T = 315,6; R = 0,08205; a = 3,592; b = 0,04267;
raíces ([P -(b*P+R*T) a -a*b])

que es un polinomio de tercer orden con respecto a v. Por lo tanto, el volumen


específico puede obtenerse usando la función raíces:

Dado que v debe ser un número real, tomamos v = 2.0582 litros/mol.


2.2.2 Ceros de ecuaciones no lineales
Se pueden utilizar varios métodos numéricos para encontrar ceros de funciones
no lineales de una o varias variables. La siguiente es la descripción general de
varias técnicas numéricas para encontrar ceros de una ecuación no lineal de una
variable dada por f(x) = 0 donde x ∈ R.
2.2.2.1 Método de bisección
En este método, se selecciona primero un intervalo inicial[a, b] para que
f(a)f(b) < 0. El punto medio m se calcula por m = (a + b)/2. Si f(a)f(m) < 0, la
raíz está en[a, m] y se fija b = m. De lo contrario, la raíz está en[m, b] y se fija a
= m. Este proceso se repite hasta que la longitud del intervalo de búsqueda sea
menor que el valor pequeño prescrito.
2.2.2.2 Método de posición falsa
El método de posición falsa, o el método regula falsi, es similar al método de la
bisección. Dos puntos (x0, f(x0)) y (x1, f(x1)) se seleccionan primero para que
f(x0)f(x1) < 0. El punto intermedio, xk+1, se calcula por

Si f(xk -1)f(xk+1) < 0, ajuste xk = xk+1; de lo contrario, ajuste xk -1 = xk+1.


Este proceso de iteración termina cuando la raíz se estima adecuadamente.
2.2.2.3 Método de Newton

Dada una estimación inicial de la raíz, x0, y el derivado en x0, f ′(x0), la


aproximación a la raíz se calcula mediante

Este proceso de iteración termina cuando la raíz se estima adecuadamente.


2.2.2.4 Método secante
Dos puntos, (x0, f(x0)) y (x1, f(x1)), se seleccionan primero. La aproximación
a la raíz viene dada por

Este proceso de iteración finaliza cuando se estima que la raíz es adecuada.


2.2.2.5 Método de Muller´s
Para los tres puntos, (x0, f(x0)), (x1, f(x1)), y (x2, f(x2)), se calcula
La siguiente aproximación viene dada por

MATLAB tiene incorporada una función fzero que puede usarse para encontrar
los ceros de una ecuación no lineal de una sola variable f(x) = 0. Una forma de
su sintaxis es

X= fzero (fun,xo)
donde diversión es el nombre de la función f(x) y x0 es una suposición definida
por el usuario para el cero. La función fzero devuelve un valor de x que está
cerca de x0. Esta función sólo identifica los puntos en los que la función toca el
eje. Algunos métodos utilizados para encontrar ceros de una ecuación no lineal
de una sola variable pueden extenderse a un sistema de ecuaciones no lineales
de múltiples variables de una forma F(x) = 0 donde x ∈ Rn × 1 y F ∈ Rn × 1. A
continuación se ofrece una visión general de algunas técnicas numéricas para
encontrar ceros de una ecuación no lineal de varias variables.
2.2.2.6 Método de Newton para sistemas no lineales
En cada etapa iterativa, la actualización para el vector solución, xnew, viene
dada por

Donde esta el jacobian J


Donde z=Xnew.X La actualización para el algoritmo de Newton viene dada por

2.2.2.7 Método de iteración de punto fijo para sistemas no lineales


En este método, el sistema no lineal F(x) = 0 se convierte a la forma de punto
fijo x = g(x). Si existe una región Q tal que g(Q) ⊂ Q y la G jacobiana de g
satisface ‖G(z)‖∞ < 1, entonces la iteración x(k + 1) = g(x(k)) convergerá. Los
ceros de un sistema de ecuaciones no lineales pueden obtenerse utilizando la
función integrada de MATLAB® fsolve. El uso de esta función es similar a

fzero.
donde diversión denota el nombre de la función que define un sistema de
ecuaciones no lineales y fval son los valores de la función evaluada en el vector
de solución x.
Ejemplo 2.7: Ceros de una ecuación no lineal
Encuentra los ceros de
Solución Podemos utilizar la función fzero. Para encontrar el cero cerca de -1:

Ejemplo 2.8: Factor de fricción usando la ecuación de Colebrook

La ecuación de Colebrook viene dada por:

Halla el factor de fricción f para NRe = 6,5 × 104 y ε/D = 0,00013. Como
primera conjetura para f, use f0 = 0.1. Solución La ecuación debe reordenarse

en la forma f(x) = 0 como

Podemos encontrar f usando la función fzero de la siguiente manera:

Ejemplo 2.9: SRK Ecuación de Estado


La ecuación de estado de Soave-Redlich-Kwong (SRK) viene dada por

donde y Tc y Pc indican la temperatura crítica (K) y la presión crítica


(atm) respectivamente, y V es el volumen específico (litro/mol). Halla el
volumen específico de 1-buteno a 415 K y 21 MPa. La constante de gas R =
0,082054 litros - atm/(mol - K) y las propiedades críticas del 1-buteno son Tc =
419,6 K y Pc = 40,2 MPa.
Solución
Primero, tenemos que reordenar la ecuación de SRK en la forma de f(x) = 0

como sigue:

Desde 1 MPa = 9,86923 atm, P = 207,2538 atm, y Pc = 396,743 atm. Los


resultados se muestran a continuación con la primera suposición de 0,1.

Podemos ver que V = 0,1291 litros/mol.

Ejemplo 2.10: Un sistema de ecuaciones no lineales


Halla los ceros de las siguientes tres ecuaciones:

Solución
Comenzamos con la definición de la función que contiene ecuaciones en forma
de vector. La estimación inicial de una solución común debe establecerse por

adelantado.
Ejemplo 2.11: Composición de la mezcla de equilibrio2
El etano reacciona con el vapor para formar hidrógeno sobre un catalizador de
craqueo a una temperatura de T = 1000 K y una presión de P = 1 atm. El
alimento contiene 4 lunares de vapor por lunar de etano. Los componentes
presentes en la mezcla de equilibrio se muestran en la Tabla 2.1. Las energías
de formación de Gibbs (kcal/gmol) de los distintos componentes a la
temperatura de reacción (1000 K) también se indican en la Tabla 2.1. La
composición de equilibrio de la mezcla de efluentes se calculará utilizando los
datos que figuran en el cuadro 2.1. La suposición inicial para cada componente
se da en la tabla. Este problema puede ser considerado como un problema de

optimización, que minimiza la energía total de Gibbs. La función objetivo a


minimizar viene dada por

Donde
Ni es el número de moles del componente i
c es el número total de componentes
R es la constante de gas
Gi0 es la energía de Gibbs del componente puro i a temperatura T

Los balances de oxígeno, hidrógeno y carbono deben ser ajustados para


encontrar ni.
Estas ecuaciones de balance son restricciones que pueden ser introducidas en la
función objetivo usando los multiplicadores de Lagrange λ1, λ2, y λ3 La
función de objetivo ampliado viene dada por

Todos los derivados parciales de la función F con respecto a ni y λj


desaparecen en el punto mínimo. Por ejemplo, la derivada parcial de F con
respecto a ni viene dada por
Solución De fj = 0 (j = 1, 2, 3), tenemos

Deja que

en relación
y transformar logaritmos en funciones exponenciales para evitar tomar
logaritmos de números muy pequeños. Aplicando los datos de energía de Gibbs
dados en la Tabla 2.1, tenemos las siguientes ecuaciones no lineales:
Hay 12 variables desconocidas (ni (i = 1, 2, ...., 9), λj (j = 1, 2, 3)) y 12
ecuaciones. Primero, construimos la función rxnfun de MATLAB®, que define
el sistema de ecuaciones no lineales en forma vectorial. En esta función, todas
las variables desconocidas se representan en términos de xi (i = 1, 2,...,..., 12)
(es decir, xi = ni (i = 1, 2,..., 9) y xi = λi(i = 10, 11, 12)).

Como estimación inicial, elegimos x0 =[0.001 0.001 0.001 0.001 0.993 1


0.0001 5.992 1 0.001 10 10 10 10]. Los ceros del sistema de ecuaciones no
lineales se pueden encontrar usando la función integrada fsolve. El archivo de

script ethanrxn muestra el procedimiento de solución.


Ejecutando este script se obtiene

2.3 Análisis de regresión


2. 3.1 Introducción a la estadística
Que N designe el número total de ítems en la población bajo consideración, n el
número de ítems contenidos en la muestra tomada de la población (0 ≤ n ≤ n ≤
N), y mj (j = 1, 2, ...., M) el número de veces que ocurre el valor de xj. La
probabilidad de ocurrencia se define por el número de ocurrencias de xj

dividido por el número total de observaciones como


Para una variable aleatoria discreta, p(xj) se llama la función de probabilidad, y
tiene las siguientes propiedades:

El valor esperado de una variable aleatoria discreta se define como


El valor esperado corresponde al centro de gravedad de la distribución de
densidad de probabilidad. Para el conjunto de la población, el valor esperado
viene dado por la media aritmética de la variable aleatoria como
El modo de muestreo de una observación de la muestra es el valor que se da
con mayor frecuencia, y la media de la muestra (o media aritmética) es el valor
obtenido dividiendo la suma de las observaciones por su recuento total.
El valor esperado de la media del muestreo viene dado por
La varianza de población se define como el valor esperado del cuadrado de la

desviación de la variable aleatoria X de su expectativa:


Para una variable aleatoria discreta, la definición anterior es equivalente a
Por lo tanto, la desviación estándar de la población se define como la raíz
cuadrada positiva de la varianza de la población:

La varianza de la muestra s2 se define como el promedio aritmético del

cuadrado de las desviaciones de xi de la población media μ


Si no se conoce μ, se utiliza x como estimación de μ, y la varianza de la
muestra viene dada por
De hecho, la varianza de la muestra es una estimación imparcial de la varianza
de la población:
La raíz cuadrada positiva de la varianza de la muestra se denomina desviación
estándar de la muestra:
La mediana es el valor en el centro de los datos si el número de puntos de datos
es impar. En MATLAB®, la media de la muestra se calcula por la media de la
función incorporada, y el modo de muestra se calcula por el modo de función

incorporado. La varianza y la desviación estándar son calculadas por las


funciones incorporadas var y std, respectivamente. La mediana de la función
incorporada devuelve el valor mediano de los elementos de los datos.
Ejemplo 2.12: Estadísticas elementales
La Tabla 2.2 muestra las medidas de los coeficientes de expansión térmica de
un determinado metal. Encuentre la media, mediana, modo, varianza y
desviación estándar de estos datos.
2.3.2 Generación de números aleatorios
MATLAB proporciona tres funciones incorporadas para generar números
aleatorios. La función rand genera números aleatorios distribuidos
uniformemente entre 0 y 1. La función randn genera números aleatorios
distribuidos normalmente que tienen una media de 0 y una desviación estándar
de 1. Los siguientes comandos muestran cómo generar una matriz m × n
consistente en números aleatorios:
x = rand(m,n)
x = randn(m,n)
Para generar un número aleatorio x dentro de[xa xb] (es decir, xa < x < xb),

usamos
Una matriz aleatoria normalmente distribuida m × n con una media de x y una
desviación estándar de s puede ser generada por
Los números enteros aleatorios pueden ser generados por la función
incorporada randi. Construyamos una matriz de 2 × 3 que consiste en números

enteros aleatorios de 1 a 30:


Ejemplo 2.13: Generación de números aleatorios
1. Generar una matriz "x" de 2 × 3 de números aleatorios distribuidos
uniformemente entre 0 y 1.
2. Generar una matriz "y" de 2 × 3 de números aleatorios distribuidos
normalmente.
3. Generar una matriz "z" de 3 × 3 de números aleatorios distribuidos
uniformemente entre 3 y 5.
Solución
2.3.3 Análisis de Regresión Lineal

A linear relationship can be represented as


donde y∗ es la variable dependiente
x es la variable independiente
Si dejamos que X sea el vector de observaciones de la variable independiente e
y sea el vector de observaciones de la variable dependiente, entonces el modelo
lineal puede ser reescrito como

donde u es el vector de los términos de perturbación α es la intersección y de la


línea β es la pendiente de la línea
Esta relación puede ampliarse para incluir más de una variable independiente
como se indica a continuación:
donde X1, X2, ...., Xm son los vectores de observaciones de m variables

independientes. El vector X1 puede ser tomado como un vector cuyos


elementos son todos iguales a uno. En este caso, β1 se convierte en la
intersección y. Podemos reescribir la relación anterior en forma de matriz
vectorial como
donde y ∈ Rn×1, X ∈ Rn×m, β ∈ Rm×1, u ∈ Rn×1 y n indica el número de
observaciones. Si b denota un vector del elemento m, que es una estimación del
parámetro vector β, entonces podemos definir un vector de residuos como
Cada elemento de ε es una diferencia entre la observación experimental y y el
valor calculado de y usando el vector estimado b. Dejemos que Φ sea una suma

de los residuos cuadrados dada por


Tomando la derivada parcial de Φ con respecto a b y poniendo el resultado a
cero, tenemos

Resolviendo la ecuación resultante para el vector b, tenemos

El vector b obtenido a partir de la ecuación anterior minimiza la función

objetivo Φ. El valor esperado de b viene dado por


Podemos ver que b es la estimación imparcial de β.
2.3.4 Análisis de Regresión Polinómica
Supongamos que un vector de variables dependientes y puede ser representado
como un polinomio del vector de variables independientes x:

Vamos a definir la matriz de las variables independientes X como

De los mínimos cuadrados ponderados, tenemos


donde W es la matriz de ponderación. bw minimiza la función objetivo J
definida por
La función incorporada de MATLAB polyfit implementa el análisis de
regresión polinómica de mínimos cuadrados. La sintaxis de la llamada es

donde x es el vector de las variables independientes, y es el vector de las


variables dependientes, y n es el orden del polinomio a ajustar. El vector p
contiene los coeficientes resultantes del polinomio en orden descendente.
La función incorporada lscov realiza cálculos de mínimos cuadrados
ponderados para Xb = y. Esta función se puede llamar así

donde X es la matriz definida por variables independientes, y es el vector de las


variables dependientes, y v denota el inverso de la matriz de ponderación W.
Ejemplo 2.14: Perfil de temperatura de reacción
La Tabla 2.3 muestra las mediciones de la temperatura de reacción en función
del tiempo. Determine los polinomios de primer orden, segundo orden y cuarto
orden para representar estos datos.

FIGURA 2.3 Representación polinómica de los datos de temperatura


Solución
Podemos utilizar la función incorporada polyfit para realizar regresiones

polinómicas.
Los gráficos de estas líneas y los puntos de datos se muestran en la Figura 2.3.
De los resultados, podemos ver que el polinomio de 4to orden
es el polinomio más adecuado.

2.3.5 Transformación de funciones no lineales en funciones lineales


Las funciones no lineales pueden utilizarse en lugar de las funciones
polinómicas para las funciones de adaptación. Algunas funciones no lineales
pueden transformarse en funciones lineales tomando un logaritmo o inversión.
La relación lineal resultante puede utilizarse en el análisis de regresión lineal.
La Tabla 2.4 resume ejemplos de transformación lineal de algunos modelos no
lineales.

Ejemplo 2.15: Cinética de la enzima Michaelis-Menten


Una enzima se comporta como un catalizador en una célula viva. Para
representar las reacciones catalizadas por enzimas, se utiliza ampliamente la

ecuación de Michaelis-Menten:
donde
r es la velocidad de reacción
[S] denota la concentración del sustrato S
a es la velocidad máxima de reacción inicial
b es una constante dada por una combinación de constantes de velocidad
La Tabla 2.5 muestra los datos experimentales de las tasas de reacción frente a
las concentraciones del sustrato. Suponiendo que las velocidades de reacción
puedan representarse mediante la ecuación de Michaelis-Menten, determinar
los parámetros a y b de la ecuación.
Solución
Tomando el inverso de la ecuación de Michaelis-Menten r = ((a[S])/(b +[S])),
tenemos
Los coeficientes p1 y p0 del modelo lineal pueden obtenerse utilizando la
función incorporada polyfit con n = 1. De las relaciones p0 = 1/a y p1 = b/a,
tenemos
FIGURA 2.4 Modelo de Michaelis-Menten.

a = -10,6918
b = -187,4149
Podemos ver que los datos experimentales pueden ser aproximados por

El gráfico de esta línea y los puntos de datos se muestran en la Figura 2.4.


Ejemplo 2.16: Presión de vapor según la ecuación de Antoine
La ecuación de Antoine se utiliza ampliamente para representar la relación
entre la presión de vapor y la temperatura:

Pv es la presión de vapor (mmHg) T es la temperatura (°C) A, B y C son los


parámetros
Usar los datos de presión de vapor dados en la Tabla 2.6 para encontrar los
parámetros A, B, y C. Multiplicando la solución (T + C) en ambos lados de la

ecuación de Antoine, tenemos

Por reordenación, tenemos

Y de dividir ambos lados por T, obtenemos


Dejar

b viene dada por

Podemos ver que la ecuación de Antoine viene dada por


El gráfico de esta línea y los puntos de datos se muestran en la Figura 2.5.
FIGURA 2.5 Modelo de presión de vapor de Antoine.

Ejemplo 2.17: Viscosidad del propano líquido3


La Tabla 2.7 presenta la viscosidad (Pa - s) del propano líquido en función de la
temperatura T (K). Se propuso una correlación no lineal para representar los
datos de viscosidad
Determine los parámetros A, B, C y D quemejor se ajusten a estos datos de
viscosidad.

Solución
La correlación propuesta anteriormente puede reordenarse de la siguiente

manera
dejar
El parámetro desconocido vector b viene dado por

El gráfico de esta correlación y los puntos de datos se muestran en la Figura


2.6.
Ejemplo 2.18: Modelo de reacción catalítica4
La Tabla 2.8 presenta los datos de velocidad de reacción para la reacción
catalítica heterogénea dados por A → B. Se ha sugerido el siguiente modelo

para correlacionar los datos:


donde k1, KA KB son coeficientes que se determinan por regresión. Calcular
los parámetros utilizando regresión y graficar la velocidad de reacción
representada por este modelo y los datos de velocidad

Solución
Tomando el inverso de la ecuación dada, tenemos
FIGURA 2.6 Correlación de la viscosidad del propano líquido.

Reordenar esta ecuación da:

el parámetro vectorial desconocido puede calcularse utilizando el operador de


la barra invertida (\). La figura 2.7 ilustra los resultados de la comparación
entre los datos de velocidad y el modelo.
FIGURA 2.7 Comparación entre los datos de velocidad y el modelo.

2.4 Interpolación
2.4.1 Interpolación polinómica
A veces necesitamos representar una función basada en el conocimiento de su
comportamiento en un conjunto de puntos discretos. La interpolación es un
método que produce una función que se ajusta mejor a un dato dado, a la vez
que proporciona una buena aproximación a los valores desconocidos en puntos
intermedios. Supongamos que los valores de una función f(xi) son conocidos en
un conjunto de variables independientes xi como se muestra en la Tabla 2.9.

El objetivo general en el desarrollo de polinomios de interpolación es elegir un


polinomio Pn(x) de la forma
para que esta ecuación se ajuste mejor a los puntos base de la función, y
conectar estos puntos con una curva suave. En resumen, encontramos Pn(x) tal
que
El polinomio Pn(x) resultante puede utilizarse para estimar los valores de los
datos en puntos intermedios.

Ejemplo 2.19: Determinación del polinomio de interpolación de segundo orden


La Tabla 2.10 muestra los datos de entropía del vapor saturado a tres
temperaturas diferentes. Identificar el polinomio de segundo orden que mejor
se ajuste a los datos, y estimar la entropía en T = 373.15 K usando este
polinomio. Solución Tenemos que elegir los coeficientes de la ecuación
cuadrática

para que esta ecuación se ajuste mejor a los puntos de datos. El procedimiento
que se muestra en la Tabla 2.11 puede representarse como
Los coeficientes pueden ser calculados por el operador de la barra invertida.

Podemos ver que la entropía del vapor saturado puede ser representada como

At T = 373,15 K, la entropía se calcula como

De la tabla de vapor, obtenemos s = 7.3554 kJ/(kg - K) a T = 373.15 K. Así,


podemos ver que la entropía del vapor saturado puede ser estimada
adecuadamente por el polinomio de segundo orden.
2.4.2 Uso de la función polyfit
La función incorporada polyfit puede ser implementada como

donde p es un vector de coeficientes ordenados en potencias descendentes, x es


un vector de variables independientes, y es un vector de variables dependientes,
y n es el orden del polinomio. Cuando se utiliza polyfit, el número de puntos de
datos debe ser mayor que el de los coeficientes polinómicos. Los valores de
función en los puntos intermedios se pueden calcular utilizando la función
polivalente incorporada. Por ejemplo, el valor de la función en un punto

intermedio z puede ser encontrado por


donde p es el vector de los coeficientes ordenados en potencias descendentes,
determinado por la función polyfit. f y z pueden ser vectores
Ejemplo 2.20: Regresión polinómica por polifosfato La Tabla 2.12 presenta la
entalpía del vapor saturado versus la temperatura. Determine un polinomio de
segundo orden que se ajuste a estos datos de entalpía, y estime la entalpía en T
= 373,15 K utilizando el polinomio. Solución Los siguientes comandos
encuentran coeficientes del polinomio de segundo orden:

Podemos ver que la entalpía del vapor saturado que se muestra en la Tabla 2.12
puede ser representada por el polinomio cuadrático

El gráfico de esta curva y los puntos de datos de entalpía se muestran en la


Figura 2.8. La entalpía del vapor saturado a T = 350,15 K puede obtenerse de la

siguiente manera
Tenemos H = 2638.65 kJ/kg. De la tabla de vapor, obtenemos H = 2638.7 kJ/kg
a T = 350.15 K. Así, podemos ver que los polinomios de segundo orden pueden
estimar adecuadamente la entalpía del vapor saturado.
FIGURA 2.8 Interpolación del valor de entalpía.

2.4.3 Interpolación Clubic Spline


Suponemos que se dan n puntos de datos: (x1, y1), (x2, y2), ...., (xn, yn).
También asumimos que x1 < x2 < ⋯ < xn. El polinomio cúbico Pi(x) en el
intervalo xi ≤ x ≤ x ≤ xi+1 viene dado por

donde hi = xi+1 - xi. En esta relación, bi y ci pueden ser representados en


términos de ai como

Los n - 2 parámetros desconocidos ai(i = 2, 3, ..., n - 1) pueden obtenerse


resolviendo las siguientes ecuaciones n - 2:
con a1 = an = 0. MATLAB proporciona el spline de funciones incorporado

para realizar cálculos de splines cúbicos. La sintaxis básica de la llamada es


donde x e y son vectores de variables independientes y dependientes,
respectivamente, y yi es el vector de los valores del interpolante en xi.
Ejemplo 2.21: Interpolación de splines cúbicos
La Tabla 2.13 muestra datos experimentales sobre una caída de presión (kPa)
de acuerdo con los caudales (litros/segundo) en un filtro. Realice la
interpolación de splines cúbicos utilizando el spline de funciones incorporado.
Solución El siguiente código produce el gráfico de la interpolación y los puntos
de datos mostrados en la Figura 2.9.

FIGURA 2.9 Interpolación de splines cúbicos.


Interpolación en una dimensión
Para los datos unidimensionales, el vector de una variable independiente x debe
ser monótonamente creciente o decreciente. La función interp1 integrada de
MATLAB encuentra el valor interpolado yi para el valor especificado xi (xi y
yi son vectores), basado en los datos dados en los vectores x e y. La sintaxis de

llamada es
donde 'method' es el método de interpolación deseado, y el método por defecto
es la interpolación lineal. MATLAB proporciona varios métodos como se
muestra en la Tabla 2.14. Estos métodos también se pueden utilizar en
interpolación bidimensional y tridimensional, excepto pchip. Al igual que con
las splines cúbicas, el método pchip utiliza polinomios cúbicos para conectar
los puntos de datos con los primeros derivados continuos. En este método, los
segundos derivados no son necesariamente continuos.
Ejemplo 2.22: Interpolación unidimensional

Determine y a x = 0.45 usando los datos de equilibrio benceno-tolueno


mostrados en la Tabla 2.15. Pruebe varios métodos de interpolación. Solución
Los comandos para implementar la interpolación unidimensional son

Ejemplo 2.23: Montaje unidimensional


La tabla 2.16 muestra las series temporales de las mediciones de la temperatura
de reacción. Utilice la función interp1 integrada de MATLAB® para ajustar
estos datos con la opción pchip (Hermite cúbico por partes). Solución Los
comandos para implementar y graficar la interpolación de pchip que se
muestran en la Figura 2.10 son

FIGURA 2.10 Interpolación unidimensional (uso de interp1).


2.4.5 Interpolación en Multidimensión
La interpolación bidimensional se ocupa de determinar valores intermedios
para las funciones de dos variables independientes z = f(xi, yi). Supongamos
que tenemos valores en cuatro puntos diferentes: z11 = f(x1, y1), z21 = f(x2,
y1), z12 = f(x1, y2), z22 = f(x2, y2). Interpolemos entre estos puntos para
estimar el valor de la función z = f(xi, yi) en un punto intermedio (xi, yi) (x1 ≤
xi ≤ x2, y1 ≤ yi ≤ y2). Utilizando el método de interpolación de Lagrange, el

valor de la función en (xi, y1) es


y en (xi, y2) es
Estos puntos pueden ser usados para interpolar linealmente a lo largo del eje y
para producir

La función interp2 integrada de MATLAB implementa la interpolación


bidimensional por partes. Una simple representación sintáctica de interp2 es

donde x e y son matrices que contienen las coordenadas de los puntos en los
que se dan los valores de la matriz z, zi es una matriz que contiene los
resultados de la interpolación evaluados en los puntos de la matriz z, matrices
xi y yi, y 'método' es el método de interpolación deseado. Los métodos son
idénticos a los utilizados por interp1, es decir, el más cercano, el lineal y el
spline. Al igual que con interp1, si se omite el argumento 'method', el valor por
defecto es interpolación lineal. La interpolación tridimensional se ocupa de
determinar valores intermedios para las funciones de tres variables
independientes v = f(x, y, z). La función interp3 integrada de MATLAB
implementa la interpolación tridimensional por partes. La sintaxis de llamada
de interp3 es
Vi = interp3(X, Y, Z, V, Xi, Yi, Zi) donde X, Y, y Z son matrices que
contienen las coordenadas de los puntos en los que se dan los valores de la
matriz V; Vi es una matriz que contiene los resultados de la interpolación
evaluados en los puntos de las matrices Xi, Yi y Zi; y "método" es el método de
interpolación deseado.
Ejemplo 2.24: Interpolación bidimensional
Las temperaturas se miden en varios puntos sobre una placa de metal calentada
(Tabla 2.17). Calcule la temperatura en xi = 6.4 e yi = 5.2 usando interpolación
de splines cúbicos bidimensionales y parciales. Solución Los comandos para
implementar la interpolación de splines cúbicos bidimensionales son

Ejemplo 2.25: Interpolación de humedad y punto de rocío


La tabla 2.18 presenta la humedad absoluta (H) y el punto de rocío (DP) del
aire en función de la humedad relativa (HR). Estime H y DP cuando RH = 58.4
y T (temperatura del bulbo seco) = 46.8°C usando interpolación bidimensional
de splines cúbicos parciales.

Solución
Los comandos para implementar la interpolación spline bidimensional son
Podemos ver que la humedad absoluta es de 42,27 g/m3 y el punto de rocío es
de 36,95°C cuando la humedad relativa es de 58,4% y la temperatura del bulbo
seco es de 46,8°C.
2.5 OPTIMIZACIÓN MATLAB proporciona dos funciones incorporadas para
la optimización: fminbnd y fminsearch. La función fminbnd combina la
búsqueda de sección dorada con la interpolación parabólica. Esta función itera
a través de interpolaciones parabólicas hasta que se obtiene un resultado
aceptable. Si no se pueden obtener resultados, se utiliza el método de la sección
dorada. Una expresión simple de su sintaxis es
[x, fval] = fminbnd(fun, x1, x2) donde x1 y x2
son los límites del intervalo que se está buscando, fun es el nombre de la
función que se está evaluando, x es la ubicación del mínimo y fval es el valor
de la función en x. La función fminsearch se puede utilizar para determinar el
mínimo de funciones multidimensionales. Una sintaxis de llamada simple de
esta función es
x, fval] = fminsearch(fun, x0)
donde x0 es la suposición inicial (puede ser un vector o escalar), fun es el
nombre de la función que se está evaluando, x es la ubicación del mínimo y
fval es el valor de la función en x.
Ejemplo 2.26: Uso de fminbnd
Utilice fminbnd para estimar el mínimo de la función f(x) dentro del intervalo 0

≤ x ≤ 5:
Solución
El siguiente script estima el mínimo de f(x).
Ejemplo 2.27: Uso de fminsearch

Utilice fminsearch para estimar el mínimo de la función f(x) utilizando la


suposición inicial de x0 =[-1, 1]:
Solución
El siguiente script estima el mínimo de f(x):
2.6 Diferenciación e integración
2.6.1 Diferenciación
La derivada de una función puede ser estimada usando los valores de la función
en un conjunto de puntos discretos. Las fórmulas de diferencia para estimar los
primeros derivados se basan en la interpolación de un conjunto de datos
determinado utilizando una línea recta. Supongamos que se dan una función
f(x) y tres puntos de datos (xi - 1, f(xi - 1)), (xi, f(xi)), y (xi+1, f (xi+1)). El
primer derivado de f (x) en xi, f ′(xi), puede ser estimado por tres fórmulas

diferentes.

MATLAB tiene dos funciones incorporadas para determinar los derivados de


los datos: diff y gradiente. La función diff devuelve un vector que contiene las
diferencias entre elementos adyacentes. diff(y) calcula las diferencias entre los
elementos adyacentes de y, y diff(x) calcula las diferencias entre los elementos
adyacentes de x. Los derivados de los datos están dados por
d = diff(y)./diff(x)
La función de gradiente evalúa los derivados en los propios valores de datos, en
lugar de en los intervalos entre valores. Una simple expresión de su sintaxis es
df = gradiente(f, h)
donde f es un vector unidimensional y h es el intervalo (constante) entre puntos
de datos.
Ejemplo 2.28: Diferenciación por diferencias
Diferenciar la función

de x = 0 a 1 utilizando la función diff. Compare sus resultados con la solución


exacta dada por

FIGURA 2.11 Diferenciación utilizando la función incorporada diff.


Solución
El siguiente script estima la diferenciación de f(x) y compara los resultados con
la solución exacta gráficamente como se muestra en la Figura 2.11

Ejemplo 2.29: Diferenciación por gradiente


Diferenciar la función

de x = 0 a 1 utilizando la función de gradiente. Compare sus resultados con la

solución exacta dada por

Solución
El siguiente script estima la diferenciación de f(x) y calcula la solución exacta.

2.6.2 Integración
2.6.2.1 Integral definida
Una integral definida puede ser aproximada por una suma ponderada de valores
de función en puntos dentro del intervalo de integración especificado [a b]. Una
fórmula de integración numérica para aproximar tiene la forma

También podría gustarte