Está en la página 1de 23

Instituto Tecnológico de Ciudad Madero

Materia:
Optimización de procesos.

Catedrático/a:

Del Ángel Aldana Ruth Zurisadai

Alumnos:

Morteo Chávez José Carlos.


Reyes Izaguirre Jorge de Jesús.
Método de Marquardt
Se sabe que el método del ascenso de máxima inclinación aumenta el valor de la función,
aun si el punto inicial está lejos del óptimo. Por otro lado, ya se describió el método de
Newton, que converge con rapidez cerca del máximo. El método de Marquardt usa el método
del descenso de máxima inclinación cuando x está lejos de x*, y el método de Newton cuando
x está cerca de un óptimo. Esto se puede lograr al modificar la diagonal del hessiano en la
ecuación:

donde αi es una constante positiva e I es la matriz identidad. Al inicio del procedimiento, se


supone que αi es grande y

la cual reduce la ecuación al método del ascenso de máxima inclinación. Conforme continúan
las iteraciones, ai se aproxima a cero y el método se convierte en el de Newton.

Así, el método de Marquardt ofrece lo mejor de los procedimientos: comienza en forma


confiable a partir de valores iniciales pobres y luego acelera en forma rápida cuando se
aproxima al óptimo.

Por desgracia, el método también requiere la evaluación del hessiano y la inversión


matricial en cada paso. Debe observarse que el método de Marquardt es, ante todo, útil para
problemas no lineales de mínimos cuadrados.

Bibliografía:
Steven C. Chapra, Raymond P. Canale; Métodos numéricos para ingenieros, 5ta ed.
Método de Fibonacci.

Definición:

Un procedimiento similar al método de la Sección Dorada lo constituye el método de


Fibonacci, con la variación de que el factor de contracción τi no es constante, sino que camia
en cada iteración. Procedemos con un análisis similar al que se usó para demostrar el método
de la sección dorada para determinar cómo varía τ i.

Derivación de la fórmula:

Considérese el esquema mostrado en la siguiente figura. Supongamos que se rechaza la


región derecha del intervalo, [ri-1, bi-1] y analicemos las dos opciones de cambio para el punto
remanente li-1.

Análisis de hacer li-1 = li

El valor de li-1 está dado por

li-1=bi-1 – τi-1[bi-1 – ai-1]

mientras que li equivale a

li = [ai-1 + τi-1(bi-1 – ai-1)] – τi[τi-1(bi-1 – ai-1)]

Igualando las dos ecuaciones anteriores se obtiene

(bi-1 – ai-1)(τi*τi-1 – 2*τi-1 + 1) = 0

Esta ecuación se satisface en forma trivial mediante

τi = τi-1 = 1

lo cual no es de utilidad puesto que se requiere que τi sea menor que uno.

Análisis de li-1 = ri

En este caso se obtiene


bi-1 – τi-1(bi-1 – ai-1) = ai-1 + τi*τi-1(bi-1 – ai-1)

de donde

(bi-1 – ai-1)(τi*τi-1 + τi-1 -1) = 0

Necesitamos satisfacer la ecuación de diferencias de primer orden

τi i * τi-1 + τi-1 – 1 =0

Para lo cual se requiere de una condición inicial o de una condición terminal. Este requisito
se cumple mediante el siguiente análisis. Supongamos que n ≥ 3 es un número fijo de
evaluaciones de función permisibles. Entonces, se tiene el siguiente esquema de
evaluaciones de función

Iteración, i 0 1 2 … n-3 n-2


Número acumulativo de evaluaciones 2 3 4 … n-1 n
de función
τi τ0 τ1 τ2 … τn-3 τn-2

Examinemos la penúltima iteración. Para simplificar, hagamos τn-3 = β. Con objeto de


maximizar la región de rechazo en la última iteración (y por lo tanto minimizar la longitud
del último intervalo remanente), conviene escoger β de tal manera que el punto rn-2 quede
exactamente a la mitad del intervalo [an-2, bn-2], es decir,

1-β =2β – 1

Lo cual implica que τn-2 = (1+eps)/2, donde eps << 1. Por lo tanto, podemos usar τn-3 = 2/3
como la condición terminal para la ecuación de diferencias de primer orden, de la cual se
obtiene la forma recursiva para la evaluación de τi-1
1
𝜏𝑖−1 =
1 + 𝜏𝑖

Aplicando esta relación, se obtienen los siguientes valores:

Donde Fi son los números de Fibonacci, los cuales se obtienen al sumar los dos anteriores.

Contracción del intervalo.

Después de n-2 iteraciones, lo cual implica n evaluaciones de función, el intervalo original


se reduce a una fracción equivalente a

𝑏𝑛−2 − 𝑎𝑛−2 𝐹1 + 𝜀 𝐹2 𝐹𝑛−1 1 + 𝜀


𝐶𝑛 = = 𝜏𝑛−2 ∗ 𝜏𝑛−3 ∗ … ∗ 𝜏2 ∗ 𝜏1 ∗ 𝜏0 = ∗ ∗ …∗ =
𝑏𝑜 − 𝑎𝑜 𝐹2 𝐹3 𝐹𝑛 𝐹𝑛

Donde épsilon es un número demasiado pequeño.

Construcción de búsqueda mediante Fibonacci

Para n evaluaciones de función, en general, se construye la siguiente secuencia:

Consideremos el caso en que n=6 evaluaciones de función (equivalentes a 4 iteraciones):


Con esta secuencia de valores de τi se construye la búsqueda de Fibonacci, similar a la que
se sigue con el método de sección dorada, sólo que ahora τ varía en cada iteración.

Ejemplo:

Minimizar la función f(x)=(x-4)2 haciendo una búsqueda en el intervalo [0, 9]. Usar 2
iteraciones.

Solución:

Para n-2 iteraciones, se requiere de n=4 evaluaciones de función. Sabemos que τn-2 = τ2 =
½, a partir de lo cual se construye la secuencia de valores de τi que se van a usar en cada
iteración i:

Iteración i 0 1 2
τi 3/5 2/3 1/2

Comenzamos colocando los primeros puntos.

Iteración 0: colocación de los puntos iniciales.


La evaluación en estos puntos en la función resulta en:

F(l0) = 0.16

F(r0) = 1.96

Suponiendo que la función es unimodal, rechazamos la región comprendida al lado derecho


del punto r0 ([r0, b0] = [5.4, 9]), como se muestra esquemáticamente enseguida:

Iteración 1:

El intervalo reducido y el valor de τ a usarse en esta iteración son [a1, b1] = [0, 5.4]; τ1 =
2/3

El punto que quedó sin eliminar en la iteración anterior, que era punto izquierdo, se
transforma en el punto derecho de esta iteración; es decir l0 => r1 = 3.6

El nuevo punto izquierdo es:

Y la función en este nuevo punto es: f(l1) = 4.84. Se rechaza la región [0, 1.8] ya que f(l1)
> f(r1).
Iteración 2: Esta es la última iteración que se ha fijado, en la cual el intervalo remanente es
[a2, b2] = [1.8, 5.4]; con r1 => l2 = 3.6

Como se trata de la última iteración, el nuevo punto de colocación r2 debe coincidir con el
punto l2, por la forma en que el método de Fibonacci está diseñado:

En ésta última iteración podemos eliminar la mitad de la región remanente evaluando la


función en el punto l2 + ε, donde ε es un número demasiado pequeño. Tomando un valor
para ε de .001,

F(3.601) = 0.1521

Debido a que la función disminuye hacia el lado derecho del punto final y tenemos un
problema de minimización, se rechaza la región del lado izquierdo de ese punto.
La aplicación del método de Fibonacci con 2 iteraciones termina con una aproximación del
punto óptimo x=3.6. Se detecta que el punto óptimo se encuentra entre la región de [3.6,
5.4]. La solución exacta implica x*= 4.

Bibliografía:

Arturo Jiménez Gutiérrez, Diseño de procesos en ingeniería química (2013).


Newton Raphson.
Definición.

El método de Newton es una extensión directa del método del mismo nombre para buscar
ceros de funciones de una variable. La idea es realizar el desarrollo de las series de Taylor de
una función alrededor de una estimación de la raíz X0.

1
𝑓(𝑥) = 𝑓(𝑥0 ) + (𝑥 − 𝑥0 )(𝑓 ′ (𝑥0 )) + (𝑥 − 𝑥0 )(𝑓"(𝑥0 ))+. . ..
2

Truncando la serie a primer orden e igualando f(x)=0 se tiene.

𝑓(𝑥0 )
𝑥 = 𝑥0 −
𝑓′(𝑥0 )

Este Método es similar al de la Secante, la diferencia esencial radica en que en la Secante se


utiliza el Método de diferencias divididas para aproximar f´(x). El Método de Newton-
Raphson asume que la función f(x) es derivable sobre un intervalo cerrado [a,b]. Entonces
f(x) tiene una pendiente definida y una única línea tangente en cada punto dentro del intervalo
[a,b].La tangente en (x0,f(x0)) es una aproximación a la curva de f(x) cerca del punto
(x0,f(x0)). En consecuencia, el cero de la línea tangente es una aproximación del cero de f(x)
o denominada raíz de f(x).

Si ha intentado encontrar una raíz de una función complicada algebraicamente alguna vez,
usted puede haber tenido alguna dificultad. Usando algunos conceptos básicos de cálculo, se
tienen maneras de evaluar raíces de funciones complicadas numéricamente. Normalmente,
se usa el método de Newton-Raphson. Este proceso iterativo sigue una pauta fija para
aproximar una raíz, considerado la función, su derivada, y un valor x inicial.

Usted puede recordar del álgebra que una raíz de una función es un cero de la función. Esto
significa que la raíz de una función, se calcula cuando la función se iguala a cero. Se puede
encontrar las raíces de una función simple como 𝑓(𝑥) = 𝑥 2 − 4 simplemente colocando la
función igual a cero, y resolviendo:

Resolviendo: 𝑓(𝑥) = 𝑥 2 − 4 de aquí se tiene que,𝑓(𝑥) = (𝑥 − 4)(𝑥 − 2) = 0, para concluir


que la igualdad se cumple solo si x = 2 ó x = -2, que son consideradas como raíces de la
ecuación.

En el gráfico anterior se observa que el punto x=2 y x=-2, la curva corta al eje x, considerando
estos puntosa como raíz de la función.

El Método de Newton Raphson usa un proceso iterativo para encontrar la raíz de una función.
La raíz especifica que el proceso localiza un valor que depende del valor x inicial, valor x
escogido arbitrariamente.

Se Calcula la primera aproximación, x1, como el cero de la línea tangente en un punto


inicial x0 dado. Se calcula la segunda aproximación, x2, como el cero de la línea tangente en
la primera aproximación x1. Siguiendo el esquema mostrado más abajo, las primeras dos
aproximaciones de raíces usando el Método Newton-Raphson, se buscan con el mismo
criterio del Método de la Bisección:
Derivación de la fórmula:

El Método de Newton tiene una interpretación geométrica sencilla, de hecho, el Método de


Newton consiste en una línealización de la función, es decir, f se reemplaza por una recta
talque contiene al punto (x0, f’(x0)) y cuya pendiente coincide con la derivada de la función
en el punto, f’(x0). La nueva aproximación a la raíz, x1, se obtiene de la intersección de la
función lineal con el eje X de ordenadas.

Demostración: Sea x0 la raíz supuesta inicial o valor inicial de las iteraciones y si se aplican
funciones trigonométricas al ángulo α de la figura 4 se tienen que tan(∝) = 𝑓(𝑥0 )/(𝑥0 −
𝑥1 ), a partir de esta formula se puede decir que: (𝑥0 − 𝑥1 ) = 𝑓(𝑥0 )/ tan(∝). Y despejando
x1 se tendría la fórmula de Newton. La pendiente en x0 está dada por tan(∝) = 𝑓′(𝑥0 ).
Teniendo en cuenta lo anterior se tendría entonces que: 𝑥1 = 𝑥0 − 𝑓(𝑥0 )/ tan(∝). Tambien
se puede deducir de teniendo en cuenta que la ecuación de la línea tangente en x 0 esta dada
por: 𝑦 − 𝑓(𝑥0 ) = 𝑓′(𝑥0 )(𝑥 − 𝑥0 ). La primera aproximación x1 es obtenida como la raíz de
(1). Así (x1, 0) es un punto sobre la ecuación anterior.

De aquí, 0 − 𝑓(𝑥0 ) = 𝑓′(𝑥0 )(𝑥1 − 𝑥0 )


Despejando, 𝑥1 − 𝑥0 = −𝑓(𝑥0 )/𝑓′(𝑥0 )
Finalmente se obtiene: 𝑥1 = 𝑥0 − 𝑓(𝑥0 )/𝑓′(𝑥0 )
Por construcción similar se obtiene: 𝑥𝑛+1 = 𝑥𝑛 − 𝑓(𝑥𝑛 )/𝑓′(𝑥𝑛 )

Donde, xn es un valor para la x conocido actualmente, 𝑓(𝑥𝑛 ) representa el valor de la función


evaluada en xn, y 𝑓′(𝑥𝑛 ) es la derivada evaluada en xn, xn+1 representa el próximo valor para
x que se esta tratando de encontrar como raíz al aplicar el modelo. Esencialmente, 𝑓′(𝑥0 ) la
derivada representa 𝑓(𝑥)/𝑑𝑥, (𝑑𝑥 = 𝑑𝑒𝑙𝑡𝑎 − 𝑥) o 𝑑𝑥 = 𝑥0 − 𝑥1 . Sin embargo, el termino
𝑓(𝑥)/𝑓′(𝑥) representa un valor de 𝑑𝑥 = ∆𝑥.

𝑓(𝑥) 𝑓(𝑥)
= = ∆𝑥
𝑓′(𝑥) 𝑓′(𝑥)/∆𝑥

Orden de convergencia:

Sean x0, x1,x2… una secuencia que converge a r y sea en= xn - r. si existe un numero de m y
|𝑒 |
una constante C (distinta de cero), tal que: 𝑙𝑖𝑚 |𝑒𝑛+1
𝑚 = 𝑐, Cuando 𝑛 ⇾ 𝑖𝑛𝑓𝑖𝑛𝑖𝑡𝑜, Entosnes
𝑛 |
m es llamado “orden de convergencia” de la secuencia C el error asintótico constante. Para
m=1,2,3, la convergencia se dice lineal, cuadrática y cúbica respectivamente.

Por lo tanto Newton-Raphson es un método que converge cuadráticamente, es decir que el


número de cifras decimales correctos se duplica aproximadamente en cada iteración, o el
error es aproximadamente proporcional al cuadrado del error anterior.

Dos situaciones en las que el Método de Newton no funciona adecuadamente: (a) el Método
no alcanza la convergencia y (b) el Método coverge hacia un punto que no es un cero de la
ecuación.

Entre más iteraciones se ejecuten, los 𝑑𝑥 = ∆𝑥 tenderán a ser más pequeños y por ende
tenderán a cero (0) minimizando el valor del error. Para ver cómo esto se aplicará el método
Newton-Raphson a la función que se trabajó antes. 𝑓(𝑥) = 𝑥 2 − 4. Se listan los valores que
se necesitan conocer para completar el proceso.

𝑓(𝑥) = 𝑥 2 − 4
𝑓′(𝑥) = 2𝑥
𝑥0 = 6
Teóricamente, se podría ejecutar un número infinito de iteraciones para encontrar una
presentación perfecta para la raíz de la función. Sin embargo, este es un método numérico
que se usa para disminuir el trabajo de encontrar la raíz, para que toque hacer de forma
manual este proceso. Por consiguiente se asume que el proceso ha trabajado con precisión
cuando 𝑑𝑒𝑙𝑡𝑎 − 𝑥 (𝑑𝑥) se vuelva menor que 0.1. Este valor de precisión debe ser específico
a cada situación.

Usos.

 Eficiente para la resolución de problemas de búsqueda de raíces.


 Se emplea en la solución de problemas académicos y en problemas propios del mundo
real.

Ventajas:

1. Es eficiente en la solución de sistemas de ecuaciones no lineales, converge muy


rápidamente y proporciona una muy buena precisión de los resultados.

Desventajas:

1. Lenta convergencia debida a la naturaleza de una función en particular.


2. Cuando un punto de inflexión, 𝑓"(𝑥) = 0, ocurre en la vecindad de una raíz.
3. No existe un criterio general de convergencia.
4. Evaluar la derivada.

Ejemplo:

Ecuación polinomial de orden 3: 𝑓(𝑥) = 𝑥 3 + 𝑥 + 16


Dependiendo del valor de x con el cual se inician las iteraciones se conseguirá el encuentro
de la raíz en menos o más iteraciones. Basta con observar y tratar de aplicar el modelo sobre
la misma para darse cuenta porque las oscilaciones.

Los anteriores cálculos se realizaron haciendo uso del paquete MatLab con el siguiente
código. Si desea tener mas cifras significativas puedes cambiar el formato de presentación
por el de formato long.

Bibliografía:

https://es.scribd.com/doc/5707202/Newton-Raphson

Steven C. Chapra, Raymond P. Canale; Métodos numéricos para ingenieros, 5ta ed.
Sección Dorada.
Definición.

La estrategia de este método se basa en tres puntos iniciales: dos considerados los extremos
de un intervalo (x1 y x2) y el tercero (x3) entre los dos primeros de tal suerte que relación
entre la distancia de este punto interno al extremo x2 (x2 − x3) y la distancia entre los
extremos (x2 − x1) es siempre una constante:

𝑥2 − 𝑥3 √5 − 1
= = 𝜏 = 0.618034 …
𝑥2 − 𝑥1 2

Note que el punto x3 divide al segmento [𝑥1 : 𝑥2 ] en dos partes: la parte [𝑥1 : 𝑥3 ] es más
pequeña que la parte [𝑥3 : 𝑥2 ]: el segmento [𝑥3 : 𝑥2 ] es el 61.80% de [𝑥1 : 𝑥2 ], mientras que
[𝑥1 : 𝑥3 ] tiene una longitud que es el 38.19%.

El método itera generando un siguiente punto x4 en [𝑥3 : 𝑥2 ] (la parte más amplia) de manera
que se cumple:
𝑥4 − 𝑥1
=𝜏
𝑥2 − 𝑥1

Note que las fórmulas convenientes para el cálculo de x3 y x4 son:

𝑥4 = (1 − 𝜏)𝑥1 + 𝜏𝑥2

𝑥3 = 𝜏𝑥1 + (1 − 𝜏)𝑥2

Y la razón es porque en estas fórmulas no se requiere que x1<x2.

Observemos las razones:

𝑥4 − 𝑥1 ((1 − 𝜏)𝑥1 + 𝜏𝑥2 ) − 𝑥1 𝜏𝑥2 − 𝜏𝑥1


= = =𝜏
𝑥2 − 𝑥1 𝑥2 − 𝑥1 𝑥2 − 𝑥1
𝑥2 − 𝑥3 𝑥2 − (𝜏𝑥1 + (1 − 𝜏)𝑥2 ) 𝜏𝑥2 − 𝜏𝑥1
= = =𝜏
𝑥2 − 𝑥1 𝑥2 − 𝑥1 𝑥2 − 𝑥1

𝑥3 − 𝑥1 (𝜏𝑥1 + (1 − 𝜏)𝑥2 ) − 𝑥1 (1 − 𝜏)(𝑥2 − 𝑥1 ) 1 − 𝜏


= = = =𝜏
𝑥4 − 𝑥1 (1 − 𝜏)𝑥1 + 𝜏𝑥2 − 𝑥1 𝜏(𝑥2 − 𝑥1 ) 𝜏

𝑥2 − 𝑥4 𝑥2 − ((1 − 𝜏)𝑥1 + 𝜏𝑥2 ) (1 − 𝜏)(𝑥2 − 𝑥1 ) 1 − 𝜏


= = = =𝜏
𝑥2 − 𝑥3 𝑥2 − 𝜏𝑥1 − (1 − 𝜏)𝑥2 𝜏(𝑥2 − 𝑥1 ) 𝜏

Dependiendo de la función a maximizar, el algoritmo escoge tres puntos de los cuatro


disponibles de manera que la situación se repite en las proporciones de los intervalos. En
general, si Ii es la longitud del intervalo en la iteración i se cumple que:

𝐼𝑛 = 𝜏 𝑛−1 𝐼1

Por tanto, conociendo el intervalo inicial (I1) y sabiendo a que precisión se desea estimar el
punto (In), es fácil estimar el total de iteraciones requeridas para que este método se aproxime
al valor requerido:

ln(𝐼𝑛 ) − ln(𝐼1 )
𝑛=1+
ln(𝜏)
El método de la sección dorada requiere de la ubicación de los tres puntos x1, x2 y x3como se
describen anteriormente. Cuando el método se aplica a la determinación de una funcion 𝑓(𝑥),
los puntos deben satisfacer:

𝑓(𝑥1 ) < 𝑓(𝑥3 ) 𝑦 𝑓(𝑥3 ) ≥ 𝑓(𝑥2 )

Es decir, la funcion “sube” y “cae”. Al procedimiento para encontrar tales puntos recibe el
nombre de “ubicación del intervalo de trabajo” (Bracketing).

La estrategia inicia a partir de un punto x1 y teniendo un incremento de x inicial s. se genera


un siguiente punto:

𝑥3 = 𝑥1 + 𝑠

Si 𝑓(𝑥1 ) ≥ 𝑓(𝑥3 ) habrá que buscar hacia atrás cambiando intercambiado los puntos y el
signo del incremento. Si 𝑓(𝑥1 ) < 𝑓(𝑥3 ), el incremento se agranda en la proporción 𝜏 por
medio de la fórmula 𝑠 = 𝑠/𝜏.

Un siguiente punto se genera hacia adelante:

𝑥2 = 𝑥3 + 𝑠
Si 𝑓(𝑥3 ) ≥ 𝑓(𝑥2 )los tres puntos buscados están determinados. Si 𝑓(𝑥3 ) < 𝑓(𝑥2 ), entonces
el procedimiento se repite tomando 𝑥1 = 𝑥3 , 𝑥2 = 𝑥3 y 𝑠 = 𝑠/𝜏. Observe que el intervalo de
“bracketing” va creciendo en la proporción 1/𝜏 (≈ 1.618).

Crecimiento del intervalo de “Bracketing”:


Usos:

 Encontrar y definir el optimo si se trata de una funcion unimodal, o los optimos si se


trata de una funcion multimodal.

Ventajas:

1. Es el método mas exacto y eficiente al encontrar con mayor precisión el o los puntos
optimos de la funcion a evaluar.

Desventajas:

2. Es mucho mas complejo de realizar que los métodos previos, e igualmente mucho
mas laborioso al interpretarse.

Ejemplo:

Programar en MatLab.

function [x, obj] = golden(fun,x1,x4)

% Busqueda unidireccional (minimizando) por el método de la Sección

% Áurea

% fun = archivo donde se calcula la función objetivo (debe ser una

% función escalar)

% x1 = punto de un extremo del intervalo

% x4 = punto del otro extremo del intervalo

% NOTA: se asume que existe un único mínimo en el intervalo x1, x4.

tol = 1e-5; % Tolerancia para la terminación del problema, calculada

%como la norma de la longitud de intervalo.

f2 = feval(objfun,x2);

f3 = feval(objfun,x3);
error =1;

cont = 0;

while error > tol

cont = cont +1;

A= [x1^2, x1, 1; x2^2, x2, 1; x3^2, x3 1];

d= [f1;f2;f3];

coef = inv(A)*d;

a= coef(1);

b= coef(2);

c= coef(3);

xm = -b/(2*a);

fm = feval(objfun, xm);

% los dos primeros if son para el caso de funciones crecientes o

% decrecientes al menos en lo que respecta a los tres puntos

% considerados.

if f1 >= f2 & f2 >= f3

x1 = x2;

f1 = f2;

x2 = (x1 + x3)/2;

f2 = feval(objfun,x2);

y = f3;

x = x3;

elseif f1 <= f2 & f2 <= f3

x3 = x2;

f3 = f2;

x2 = (x1 + x3)/2;
f2 = feval(objfun,x2);

y = f1;

x = x1;

elseif xm >= x1 & xm <= x2

if fm >= f2

x1 = xm;

f1 = fm;

else

x3 = x2;

f3 = f2;

x2 = xm;

f2 = fm;

end

y = fm;

x = xm;

elseif xm > x2 & xm <= x3

if fm >= f2;

x3 = xm;

f3 = fm;

else

x1 = x2;

f1 = f2;

x2 = xm;

f2 = fm;

end

y = fm;
x = xm;

end

error = norm(x1-x3,1);

Bibliografía:

http://cb.mty.itesm.mx/materias/ma4011/materiales/a130-17.pdf

http://delta.cs.cinvestav.mx/~ccoello/optimizacion/clase3-opt-2009.pdf

https://rua.ua.es/dspace/bitstream/10045/16373/8/Microsoft%20Word%20-
%208.%20INTRODUCCION%20A%20LA%20OPTIMIZACION%20NUMERICA-1.pdf

Arturo Jiménez Gutiérrez, Diseño de procesos en ingeniería química (2013).

También podría gustarte