Anda di halaman 1dari 36

CAPÍTULO 4

Optimización de Funciones no Lineales Univariables

Los problemas de funciones no lineales con una sola variable se pueden resolver de dos
formas, con algoritmos de aproximaciones directos e indirectos. A los métodos directos
se conocen como métodos de búsqueda por reducción de intervalos porque localizan el
óptimo mediante la eliminación sucesiva de subintervalos que reducen el intervalo de
búsqueda restante. Los métodos de búsqueda directos hacen uso de las derivadas de la
función, como el método de Newton Raphson. En este capítulo se presentan ambos
métodos.

1
En la mayoría de los problemas se sabe que el óptimo se encuentra dentro de un rango específico de las variables
independientes, por ejemplo la conversión que debe estar entre los valores de cero y uno. En este ejemplo la conversión
𝑥𝑥 cae en el intervalo [0 , 1] pero se desconoce su valor por lo que al intervalo [a , b]=[0 , 1] se le denomina intervalo o
región de incertidumbre. Los métodos de aproximación numérica que encuentran el óptimo en regiones de intervalos
conocidos se llaman métodos de búsqueda por reducción de intervalos porque localizan el óptimo mediante la
eliminación sucesiva de subintervalos que reducen el intervalo de búsqueda restante.

4.1 Métodos de búsqueda por reducción de intervalos

Los métodos directos univariables hacen la búsqueda de los puntos óptimos mediante sucesivas reducciones del
intervalo de estudio, con tres o más puntos en los que se evalúa la función objetivo y posteriormente se hace la
eliminación de subintervalos, acotando la región de búsqueda y terminar cuando se logra una precisión requerida en el
último intervalo.

Se considera que la función objetivo es unimodal, se puede definir un criterio para eliminar regiones donde
seguro el óptimo no se encuentra. Para ello se necesita evaluar la función en al menos dos puntos dentro del intervalo y
aplicar algún criterio para eliminar una parte de la región de incertidumbre y se continúa reduciendo hasta que se
encuentre un intervalo suficientemente pequeño. A este tipo de métodos también se les conoce como métodos directos
en oposición a los métodos que usan derivadas y que son conocidos como métodos indirectos.

4.2 Método de la bisección o división dicotómica.

Este método divide la región de búsqueda por la mitad y se aplica de la siguiente forma:

Empezando la búsqueda en la región delimitada por 𝑎𝑎 ≤ 𝑥𝑥 ≤ 𝑏𝑏 se prueba la función en dos valores da 𝑥𝑥1 y 𝑥𝑥2
comprendidos entre a y b, 𝑎𝑎 < 𝑥𝑥1 < 𝑥𝑥2 < 𝑏𝑏 para determinar cuál es el que más se aproxima al optimo, ya sea el
máximo o mínimo buscado. Si lo que se busca es el máximo se tendrán tres casos:

𝑆𝑆𝑆𝑆 𝑓𝑓( 𝑥𝑥1 ) > 𝑓𝑓( 𝑥𝑥2 ), entonces el máximo se encuentra en el intervalo (𝑎𝑎, 𝑥𝑥2 )

Si 𝑓𝑓( 𝑥𝑥1 ) < 𝑓𝑓( 𝑥𝑥2 ) entonces el máximo se encuentra entre 𝑥𝑥1 𝑦𝑦 𝑏𝑏

Si 𝑓𝑓( 𝑥𝑥1 ) = 𝑓𝑓( 𝑥𝑥2 ) entonces el máximo se encuentra entre 𝑥𝑥1 𝑦𝑦 𝑥𝑥2

Los valores 𝑥𝑥1 𝑦𝑦 𝑥𝑥2 se determinan muy cercanos al punto medio de la región de búsqueda,

𝑎𝑎+𝑏𝑏 𝑎𝑎+𝑏𝑏
𝑥𝑥1 = 2
− 𝑒𝑒 y 𝑥𝑥2 = 2
+ 𝑒𝑒 (4-1)

Se elige un valor de 𝑒𝑒 muy pequeño, por ejemplo 𝑒𝑒 = 0.01

Se puede determinar el número de iteraciones 𝑛𝑛 para reducir el intervalo de incertidumbre final a una longitud 𝑡𝑡, la
fórmula:

2
ln(𝑏𝑏−𝑎𝑎)/𝑡𝑡
𝑛𝑛 = � � (4-2)
ln(2)

Con 𝑡𝑡 = 0.2 se espera una reducción del intervalo original en 2%.

El algoritmo procede de acuerdo a los siguientes pasos (para el caso de maximización):

1. Determinar el número de iteraciones requeridas para lograr una reducción del intervalo de incertidumbre a una
cantidad muy pequeña, con la ecuación (4-2).
2. Repetir los pasos 3 y 4, 𝑛𝑛 veces.
3. Aplicar las fórmulas (4-1) y calcular 𝑓𝑓( 𝑥𝑥1 ) 𝑦𝑦 𝑓𝑓( 𝑥𝑥2 )
4. 𝑆𝑆𝑆𝑆 𝑓𝑓( 𝑥𝑥1 ) > 𝑓𝑓( 𝑥𝑥2 ) entonces hacer 𝑏𝑏 = 𝑥𝑥2 si no entonces 𝑎𝑎 = 𝑥𝑥1
𝑥𝑥2 + 𝑥𝑥1
5. Se determina el óptimo de la función 𝑓𝑓( 𝑥𝑥 ∗ ) con los últimos valores de 𝑥𝑥1 𝑦𝑦 𝑥𝑥2 , 𝑥𝑥 ∗ =
2

Ejemplo 4.1

En la prueba balística de un cañón se sabe que el proyectil sigue una trayectoria definida por:

ℎ(𝑡𝑡) = 75𝑡𝑡 3/4 − 2.5𝑡𝑡 2


Donde 𝑡𝑡 es el tiempo y ℎ es la altura.

Determine el valor de la altura máxima que alcanza el proyectil y a que tiempo se logra el máximo.

El problema se resuelve con la ayuda de la calculadora TI nspire como se muestra en la Figura 4.1

3
Figura 4.1 Resolución del problema del proyectil del Ejemplo 4.1

En la Figura 4.1 se indica en las primeras instrucciones que se determina el tiempo al cual el proyectil toca el piso con la
instrucción solve(h(x)=0,x)

El algoritmo de búsqueda se implementa con un pequeño programa en una línea, la cual en su forma completa es:

For i,1,7:x1:=((a+b)/2)-e:x2:=((a+b)/2)+e:If (h(x)|x=x1)≥(h(x)|x=x2)Then:x2→b:Else:x1→a:EndIf:Disp a,b,h(x1),h(x2):EndFor

Después de 7 iteraciones se obtiene el último intervalo 𝑥𝑥1 = 6.9048 𝑦𝑦 𝑥𝑥2 = 7.0419 por lo que el tiempo del máximo
6.9048 + 7.0419
estimado en 𝑥𝑥 ∗ = = 6.9148 con una altura máxima de 200.277.
2

Los valores exactos son: 𝑡𝑡 = 6.933 con una altura ℎ = 200.278

La gráfica de la trayectoria también se grafica en la calculadora como se muestra en la Figura 4.2

4
Figura 4.2 Trayectoria del proyectil del Ejemplo 4.1

La línea con las instrucciones del algoritmo se desglosa de la siguiente manera:

For i,1,7
X1:=((a+b)/2)-e
X2:=((a+b)/2)+e
If (h(x)evaluado en x=x1≥(h(x)evaluado en x=x2)
Then x2→b
Else x1→a
EndIf
Disp a,b,h(x1),h(x2)
EndFor

Los resultados de los cálculos se resumen en la siguiente Tabla 4.1

Tabla 4.1 Resumen de resultados del Ejemplo 4.1

X1 X2 h(x1) h(x2)
0 7.51 199.315  199.244
3.745 7.51 166.844  167.277
5.6175 7.51  194.774  194.941
6.55375 7.51 199.826  199.873
6.55375 7.04188 200.253  200.241
6.78781 7.04188 200.212  200.229
6.90484 7.04188 200.275  200.278

Se observa que en casi todas las iteraciones el límite derecho no cambia por lo que el límite izquierdo es sustituido por
un nuevo valor en cada iteración excepto la quinta.

5
4.3 Método de la Sección Dorada.

Primero se define el intervalo inicial de búsqueda y segundo se aplica un procedimiento de búsqueda que reduzca la
región de búsqueda partiendo el intervalo anterior en tres segmentos y eliminando el que no contenga al óptimo (ver
Figura 4.3).

La forma de dividir los intervalos es en una proporción fija denominada sección dorada o proporción aurea. El origen del
método se basa en la división constante de cualquier segmento rectilíneo cuya longitud se divide en dos partes 𝐴𝐴 y 𝐵𝐵 de
tal forma que la proporción entre 𝐴𝐴 y 𝐵𝐵 sea igual a la proporción entre la suma de ambos (𝐴𝐴 + 𝐵𝐵) y el segmento más
largo 𝐴𝐴, la figura 4.4 ilustra esta división.

𝐴𝐴 (𝐴𝐴+𝐵𝐵)
Entonces:
𝐵𝐵
= 𝐴𝐴

𝐴𝐴 𝐴𝐴 𝐵𝐵 1
Si esta proporción se denota por τ se obtiene: 𝜏𝜏 = = + =1+
𝐵𝐵 𝐴𝐴 𝐴𝐴 𝜏𝜏

Se obtiene: 𝜏𝜏 2 − 𝜏𝜏 − 1 =0, cuya solución da,


√5−1
𝜏𝜏 = = 0.618033 (4-3)
2

ƒ(x)

a x1 x
x2 b

Figura 4.3 División de la región de búsqueda (a, b) en tres segmentos.

B A

A-B

a x1 x2 b

A B

Figura 4.4 Gráfica de la división en dos regiones A y B del intervalo de búsqueda (a, b)

6
La ubicación de coordenadas inicial y final de cada segmento se determina con:

𝑥𝑥1 = 𝑏𝑏 − 𝜏𝜏(𝑏𝑏 − 𝑎𝑎) y 𝑥𝑥2 = 𝑎𝑎 + 𝜏𝜏(𝑏𝑏 − 𝑎𝑎) (4-4)

Equivalentemente se pueden aplicar las fórmulas: 𝑥𝑥1 = 𝑎𝑎 + (1 − 𝜏𝜏)(𝑏𝑏 − 𝑎𝑎) y 𝑥𝑥2 = 𝑏𝑏 − (1 − 𝜏𝜏)(𝑏𝑏 − 𝑎𝑎)

Si la función 𝑓𝑓(𝑥𝑥) es monótona en la región [𝑎𝑎, 𝑏𝑏] el método de la sección dorada procede eliminando uno de los
segmentos, supuestamente el que no contiene el óptimo. El método para minimizar una función univariable 𝑓𝑓(𝑥𝑥)
procede iterativamente hasta llegar a una reducción del intervalo original que contenga el mínimo.

Las pruebas para determinar que segmento se elimina son:

Si 𝑓𝑓(𝑥𝑥1) < 𝑓𝑓(𝑥𝑥2), 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 𝑥𝑥2 → 𝑏𝑏; 𝑥𝑥1 → 𝑥𝑥2 ; 𝑓𝑓(𝑥𝑥1) → 𝑓𝑓(𝑥𝑥2) 𝑦𝑦 𝑥𝑥1 = 𝑏𝑏 − 𝜏𝜏(𝑏𝑏 − 𝑎𝑎) Eliminar segmento [𝑥𝑥2 , 𝑏𝑏]

Si 𝑓𝑓(𝑥𝑥2) < 𝑓𝑓(𝑥𝑥1), 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 𝑥𝑥1 → 𝑎𝑎; 𝑥𝑥2 → 𝑥𝑥1 ; 𝑓𝑓(𝑥𝑥2) → 𝑓𝑓(𝑥𝑥1) 𝑦𝑦 𝑥𝑥2 = 𝑎𝑎 + 𝜏𝜏(𝑏𝑏 − 𝑎𝑎) Eliminar segmento [𝑎𝑎, 𝑥𝑥1 ]

Los puntos intermedios se colocan simétricamente equidistantes con respecto a los límites iniciales por lo que se elimina
un segmento que tiene la misma longitud que el segmento que se conserva. En la búsqueda sólo se requiere la
evaluación de uno de los puntos intermedios y la función en ese punto.

Entonces si 𝐿𝐿0 es la longitud inicial del intervalo [𝑎𝑎, 𝑏𝑏] y 𝐿𝐿𝑘𝑘 es la longitud luego de k iteraciones, corresponde a la región
de incertidumbre y donde se puede continuar la búsqueda.

Después de aplicar el método 𝑛𝑛 iteraciones al intervalo inicial 𝐿𝐿0 = (𝑏𝑏 − 𝑎𝑎) el intervalo final 𝐿𝐿𝑛𝑛 tendrá una longitud
𝐿𝐿𝑛𝑛 = 𝜏𝜏 𝑛𝑛−1 𝐿𝐿0. Al aplicar logaritmos se obtiene:

log(𝐿𝐿𝑛𝑛 )
𝑛𝑛 − 1 = (4-5)
log(𝐿𝐿0 )

Para reducir el intervalo inicial a 1% al tomar logaritmos se obtiene; (𝑛𝑛 − 1)log(𝜏𝜏) ≤ log(0.01) se requieren al menos
10 iteraciones al despejar 𝑛𝑛 − 1

log(0.01) −2
𝑛𝑛 − 1 = = = 9.57
log(0.618033) −0.20899

Ejemplo 4.2 Se propone aprovechar el calor residual que salen con los gases de combustión de un horno que tienen un
flujo de 60,000 lb/h y capacidad calorífica de 0.25 BTU/lbºF, a una temperatura de 500ºF. Para ello se debe instalar un
cambiador de calor que tiene un coeficiente global de calor de 4.0 BTU/h-pie2-ºF y se desea producir vapor a una
temperatura de 220ºF a partir de agua líquida saturada a 220ºF. El vapor que se obtendría tendría un valor de $0.75 por
millón de BTU y el costo de instalación del cambiador se puede estimar en $5 por pie cuadrado de área. El costo se
amortiza en 5 años a una tasa de interés de8%.

El beneficio económico de la inversión P por los cinco años de instalación considerando el valor del vapor (ingresos por
ahorro de energía) y el costo del nuevo cambiador es:
𝑃𝑃 = 𝑣𝑣 ∗ 𝑄𝑄 ∗ 𝑛𝑛 − 𝐶𝐶 ∗ 𝐴𝐴 ∗ (1 + 𝑖𝑖)𝑛𝑛
Dónde:
𝑃𝑃 = 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵 𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 𝑑𝑑𝑑𝑑 𝑙𝑙𝑙𝑙 𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖ó𝑛𝑛
𝑣𝑣 = 𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣 𝑑𝑑𝑑𝑑𝑑𝑑 𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣 𝑝𝑝𝑝𝑝𝑝𝑝 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 𝑑𝑑𝑑𝑑 𝐵𝐵𝐵𝐵𝐵𝐵 = $0.75/106 𝐵𝐵𝐵𝐵𝐵𝐵
𝑄𝑄 = 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑡𝑡𝑡𝑡𝑡𝑡𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 = 𝑚𝑚 ∗ 𝐶𝐶𝐶𝐶 ∗ (𝑇𝑇𝑖𝑖𝑖𝑖 − 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 ) = 𝑈𝑈 ∗ 𝐴𝐴 ∗ ∆𝑇𝑇𝐿𝐿𝐿𝐿
7
𝑛𝑛 = 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 𝑑𝑑𝑑𝑑 𝑙𝑙𝑙𝑙 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎ó𝑛𝑛 = 5 𝑎𝑎ñ𝑜𝑜𝑜𝑜
𝐶𝐶 = 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑑𝑑𝑑𝑑𝑑𝑑 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 = $5.0/𝑝𝑝𝑝𝑝𝑝𝑝 2
𝐴𝐴 = Á𝑟𝑟𝑟𝑟𝑟𝑟 𝑑𝑑𝑑𝑑𝑑𝑑 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑒𝑒𝑒𝑒 𝑝𝑝𝑝𝑝𝑝𝑝 2
𝑙𝑙𝑙𝑙
𝑚𝑚 = 𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓 𝑑𝑑𝑑𝑑 𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 𝑑𝑑𝑑𝑑 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐ó𝑛𝑛 = 60,000

𝐵𝐵𝐵𝐵𝐵𝐵
𝐶𝐶𝐶𝐶 = 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐í𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓 𝑑𝑑𝑑𝑑 𝑙𝑙𝑙𝑙𝑙𝑙 𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 = 0.25
𝑙𝑙𝑙𝑙º𝐹𝐹
𝑇𝑇𝑖𝑖𝑖𝑖 = 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇 𝑑𝑑𝑑𝑑 𝑙𝑙𝑙𝑙𝑙𝑙 𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 = 500º𝐹𝐹
4𝐵𝐵𝐵𝐵𝐵𝐵
𝑈𝑈 = 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 𝑑𝑑𝑒𝑒 𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 𝑑𝑑𝑑𝑑 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 =
ℎ − 𝑝𝑝𝑝𝑝𝑝𝑝 2 − º𝐹𝐹
�𝑇𝑇𝑖𝑖𝑖𝑖 −𝑇𝑇𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣 �−(𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 −𝑇𝑇𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣 )
∆𝑇𝑇𝐿𝐿𝐿𝐿 = (𝑇𝑇𝑖𝑖𝑖𝑖 −𝑇𝑇𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣 )
𝑙𝑙𝑙𝑙
(𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 −𝑇𝑇𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣 )

En la ecuación de la diferencia de temperatura logarítmica se obtiene:


500−𝑇𝑇𝑜𝑜𝑢𝑢𝑢𝑢
∆𝑇𝑇𝐿𝐿𝐿𝐿 = 280
𝑙𝑙𝑙𝑙
(𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 −220)

Al sustituir los datos se obtiene:

$0.75 60,000𝑙𝑙𝑙𝑙 0.25𝐵𝐵𝐵𝐵𝐵𝐵 24ℎ 365𝑑𝑑í𝑎𝑎𝑎𝑎


𝑃𝑃 = � 6 �� �� � (500 − 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 ) � �� � (5 𝑎𝑎ñ𝑜𝑜𝑜𝑜)
10 𝐵𝐵𝐵𝐵𝐵𝐵 ℎ 𝑙𝑙𝑙𝑙 − º𝐹𝐹 𝑑𝑑í𝑎𝑎 𝑎𝑎ñ𝑜𝑜
$5 60,000𝑙𝑙𝑙𝑙 0.25𝐵𝐵𝐵𝐵𝐵𝐵 ℎ − 𝑝𝑝𝑝𝑝𝑝𝑝 2 º𝐹𝐹 1
− � 2� � �� � (500 − 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 ) � � (1 + 0.8)5
𝑝𝑝𝑝𝑝𝑝𝑝 ℎ 𝑙𝑙𝑙𝑙 − º𝐹𝐹 4𝐵𝐵𝐵𝐵𝐵𝐵 500 − 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 º𝐹𝐹
280
𝑙𝑙𝑙𝑙
(𝑇𝑇𝑜𝑜𝑜𝑜𝑡𝑡 − 220)

Al simplificar se obtiene:

𝑃𝑃 = 91,137 − 492.75𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 + 27,549.9 ln(𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 -220)

Se tiene un problema de maximización de beneficios en términos de una variable que en este caso es la temperatura de
los gases a la salida del cambiador, 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜

Resolución con la calculadora TI-nspire. Empezar abriendo tres ventanas, la primera con una página de notas para
describir el problema, la segunda con una calculadora para insertar la función a optimizar y la tercera con una hoja de
cálculo para ingresar los cálculos con el método de la sección dorada.

La página de notas se muestra en la Figura 4.5 (a). En la página con la calculadora se define la función, Figura 4.5 (b).
También se calcula el máximo con fMax condicionando a que el valor de la variable sea mayor a 230, es decir,
𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓(𝑓𝑓(𝑥𝑥), 𝑥𝑥)|𝑥𝑥 > 230.

8
(a) (b)
Figura 4.5 (a) Página de notas, (b) Página de la calculadora con la función y el óptimo.

En la página con la calculadora se define la función. También se calcula el máximo con fMax condicionando a que el
valor de la variable sea mayor a 230, es decir, 𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓(𝑓𝑓(𝑥𝑥), 𝑥𝑥)|𝑥𝑥 > 230.

Las hojas de cálculo como Excel muestran un formato de tabla en la que las celdas son identificadas por una letra para
cada columna y por un número para cada fila. En la hoja de cálculo de la calculadora después de definir los rótulos de las
primeras 6 columnas para a, b, x1, x2, f(x1) y f(x2) que son: a y b los valores extremos del intervalo con que inicia la
búsqueda; x1, x2, son los segmentos internos izquierdo y derecho; f(x1) y f(x2) son la función en el segmento izquierdo y
la función en el segmento derecho, respectivamente.

Después se definen en a1 y b1 los valores del intervalo inicial 230 y 350 respectivamente y luego en las celdas c1 y d1
ingresar las fórmulas para determinar el segmento izquierdo y el derecho de la sección dorada:
1.618−1 𝑏𝑏−𝑎𝑎
𝑥𝑥1 = 𝑎𝑎 + (𝑏𝑏 − 𝑎𝑎) y 𝑥𝑥2 = 𝑎𝑎 + , Figuras 4.6 (a) y (b) respectivamente.
1.618 1.618

(a) (b)
Figura 4.6 Ingreso de las fórmulas para los segmentos internos de la sección dorada.

Luego en la línea de ingreso para la celda e1 se escribe =f(c1) para evaluar la función con el valor de la celda c1. Lo
mismo se hace para la celda f1 para evaluar la función con el valor de la celda d1. Figuras 4.7 (a) y 4.7 (b).
9
(a) (b)
Figura 4.7 (a) Definición de la función en los valores de los segmentos internos.

En la celda a2 definir la función = 𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖(𝑓𝑓1 > 𝑒𝑒1, 𝑐𝑐1, 𝑎𝑎1) para indicar que si el valor de la celda f1 es mayor que el de la
celda e1, entonces poner en a2 el valor de c1 en caso contrario poner el valor de a1 ver Figuras 4.8 (a) y (b). Lo anterior
se repite para todas las hileras de la 2 en adelante. En la columna a se indica la siguiente prueba para ubicar el óptimo: Si
𝑓𝑓(𝑥𝑥1) > 𝑓𝑓(𝑥𝑥2) 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 ℎ𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑎𝑎 = 𝑥𝑥1, 𝑠𝑠𝑠𝑠 𝑛𝑛𝑛𝑛, 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 ℎ𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑎𝑎 = 𝑎𝑎

Similarmente en la columna b: 𝑓𝑓(𝑥𝑥2) > 𝑓𝑓(𝑥𝑥1) 𝑒𝑒𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 ℎ𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑏𝑏 = 𝑥𝑥2, 𝑠𝑠𝑠𝑠 𝑛𝑛𝑛𝑛, 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 ℎ𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑏𝑏 = 𝑏𝑏

Estas dos condiciones en la columna 𝑎𝑎 y la 𝑏𝑏 prueban si el óptimo cae cerca del extremo izquierdo o el derecho,
respectivamente.

(a) (b)
Figura 4.8 (a) Pruebas de la condición de acotamiento del óptimo entre los límites a y b.

Luego copiar las fórmulas de las celdas desde c1 hasta f1 en c2 y f2 respectivamente, Figura 4.9 (a). Después copiar la
hilera 2 en la hilera 3 y repetir sucesivamente hasta alcanzar el óptimo. Al término de nueve iteraciones se obtiene una
diferencia menor a un grado en los dos últimos valores calculados de la temperatura y se toma el promedio de valores
como el valor de convergencia, Figura 4.9 (b).

10
(a) (b)
Figura 4.9 (a) Copiado de fórmulas en hilera 2, (b) Cálculos en las nueve iteraciones.

Entre los dos últimos valores de la temperatura 𝑥𝑥1 = 275.836 y 𝑥𝑥2 = 276.44 se encuentra el valor óptimo buscado,
𝑥𝑥 = 275.911 dando un máximo beneficio de 66,0361dolares.

El área del cambiador de calor se determina de la ecuación:

𝑄𝑄 = 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 = 𝑚𝑚 ∗ 𝐶𝐶𝐶𝐶 ∗ (𝑇𝑇𝑖𝑖𝑖𝑖 − 𝑇𝑇𝑜𝑜𝑜𝑜𝑜𝑜 ) = 𝑈𝑈 ∗ 𝐴𝐴 ∗ ∆𝑇𝑇𝐿𝐿𝐿𝐿

𝑄𝑄 = 60,000(0.25)(500 − 275.91) = 3,361,350 𝐵𝐵𝐵𝐵𝐵𝐵


500−275.91
Entonces de la ecuación, 𝑄𝑄 = 4(𝐴𝐴) 280 = 3,361,350
𝑙𝑙𝑙𝑙(275.91−220)

Se obtiene el área óptima del cambiador: 𝐴𝐴 = 11,227.96 𝑝𝑝𝑝𝑝𝑝𝑝 2

$
Y el costo del cambiador es: 𝐶𝐶 = 5 (11,227.96 𝑝𝑝𝑝𝑝𝑝𝑝 2 ) = $56,139.82
𝑝𝑝𝑝𝑝𝑝𝑝 2

Es importante resaltar que la secuencia de cálculos de la Figura 4.7 (b) es una plantilla de la hoja de cálculo que permite
usar el método de búsqueda de la sección dorada para cualquier problema, generándose una aplicación de hoja de
cálculo personalizada.

El porciento de reducción del intervalo inicial después de nueve iteraciones es aproximadamente 2%:

𝐿𝐿8 276.44 − 275.836


= = 0.021
𝐿𝐿0 350 − 230
4.4 Método de Fibonacci

La secuencia de los números de Fibonacci se forma con: 𝐹𝐹𝑛𝑛 = 𝐹𝐹𝑛𝑛−1 + 𝐹𝐹𝑛𝑛−2 empezando en 𝐹𝐹1 = 1 y 𝐹𝐹2 = 1

La fórmula para definir los puntos intermedios son:


𝐹𝐹𝑛𝑛−1 𝐹𝐹𝑛𝑛−1
𝑥𝑥1 = 𝑏𝑏 − (𝑏𝑏 − 𝑎𝑎) y 𝑥𝑥2 = 𝑎𝑎 + (𝑏𝑏 − 𝑎𝑎)
𝐹𝐹𝑛𝑛 𝐹𝐹𝑛𝑛

El método se aplica como el de la sección dorada para reducir el intervalo de búsqueda.

11
Se tendrán cuatro puntos en los valores 𝑎𝑎, 𝑏𝑏, 𝑥𝑥1 𝑦𝑦 𝑥𝑥2 con sus respectivos valores de la función
𝑓𝑓(𝑎𝑎), 𝑓𝑓(𝑏𝑏), 𝑓𝑓(𝑥𝑥1 ) 𝑦𝑦 𝑓𝑓(𝑥𝑥2 ). Para determinar que segmento se elimina se comparan los valores 𝑓𝑓(𝑥𝑥1 ) con 𝑓𝑓(𝑥𝑥2 ). En el
caso de buscar el máximo se elimina el segmento que contenga al menor valor de la función. Por ejemplo si 𝑓𝑓(𝑥𝑥2 ) es
menor de 𝑓𝑓(𝑥𝑥1 ) se elimina el segmento comprendido entre 𝑓𝑓(𝑥𝑥2 ) y 𝑏𝑏, la siguiente Figura 4.10 muestra este caso.

F(x1) F(x2)

a x1 x2 b

Segmento a eliminar

Figura 4.10 Los cuatro segmentos para la búsqueda del máximo.

El nuevo intervalo de búsqueda está comprendido entre 𝑎𝑎 y 𝑥𝑥2 , se hace 𝑥𝑥2 equivalente a 𝑏𝑏 y se repite el procedimiento
como se muestra en Figura 4.11.
F(x1) F(x2)

a x1 x2 b
Este pasa a ser x2 Este pasa a ser el
nuevo valor de b
a x1 x2 b

Figura 4.11 Nuevos segmentos para la búsqueda en segunda iteración.


Se presentan a continuación los pasos para formar la hoja de cálculo en la calculador TI nspire como en el Ejemplo 4.2.

Ejemplo 4.3 Se resuelve el problema del Ejemplo 4.2 pero con la fórmula de Fibonacci.

Primero se define la secuencia de los números de Fibonacci, por ejemplo para nueve términos se tiene:
1,1,2,3,5,8,13,21,34,55,89. Estos números se colocan primero en la columna H de la Hoja de cálculo empezando en 89 y
55 en la línea 1.

El intervalo inicial es 𝑎𝑎 = 230 y 𝑏𝑏 = 350. Colocarlos en las celdas a1 y b1. Los valores de la serie de Fibonacci se colocan
en la columna H de la Hoja de cálculo empezando en 89 y 55 en la línea 1.

A B C D E F G H
a b x1 x2 f(x1) f(x2) Fn Fn-1
1 230 350 ℎ1 ℎ1 F(c1) F(d1) 89 55
𝑏𝑏1 − (𝑏𝑏1 − 𝑎𝑎1) 𝑎𝑎1 + (𝑏𝑏1 − 𝑎𝑎1)
𝑔𝑔1 𝑔𝑔1
2 𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖(𝑓𝑓1 > 𝑒𝑒1, 𝑐𝑐1, 𝑎𝑎1) 𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖(𝑒𝑒1 > 𝑓𝑓1, 𝑑𝑑1, 𝑏𝑏1) ℎ2 ℎ2 F(c2) F(d2) 55 34
𝑏𝑏2 − (𝑏𝑏2 − 𝑎𝑎2) 𝑎𝑎2 + (𝑏𝑏2 − 𝑎𝑎2)
𝑔𝑔2 𝑔𝑔2

En las celdas 𝑐𝑐1 y 𝑑𝑑1 escribir las fórmulas para los puntos intermedios y en las celdas 𝑒𝑒1 y f1 las funciones a maximizar
evaluadas en 𝑐𝑐1 y 𝑑𝑑1 respectivamente. Las preguntas para determinar que segmento se elimina se colocan en a2 y b2,
𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖(𝑓𝑓1 > 𝑒𝑒1, 𝑐𝑐1, 𝑎𝑎1) y 𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖(𝑒𝑒1 > 𝑓𝑓1, 𝑑𝑑1, 𝑏𝑏1) respectivamente. Luego copiar las celdas 𝑐𝑐1 a la ℎ1y pegar en las celdas
de la 𝑐𝑐2 a la ℎ2. Finalmente, repetir las líneas de la 2 a la 9. Con estos pasos queda configurada la plantilla de hoja de
cálculo para aplicar el método de búsqueda de Fibonacci. La hoja de cálculo en la calculadora TI-Nspire es:
12
Se obtienen casi los mismos resultados que con el método de la sección dorada.

Se puede demostrar que la relación entre el enésimo intervalo y el primero se define por:
𝐿𝐿𝑛𝑛 𝐹𝐹 1
= 𝐹𝐹1 = 𝐹𝐹 (4-6)
𝐿𝐿𝑜𝑜 𝑛𝑛 𝑛𝑛

Esta expresión permite estimar previamente el número de pruebas necesarias para lograr una aproximación dada. Por
1 1
ejemplo con 8 iteraciones se tiene = = 0.029 ~0.03 una reducción al 3%.
𝐹𝐹𝑛𝑛 34

275.843−274.494
En el Ejemplo 4.3 se tiene para la octava iteración: = 0.01124 que representa finalmente, una reducción
350−230
de aproximadamente al 1% del intervalo inicial, hay que empezar con el valor 𝐹𝐹𝑛𝑛 = 89 y terminar con 𝐹𝐹 = 3.

4.5 Método de interpolación cuadrática para minimizar

El método de interpolación cuadrática usa un polinomio de segundo orden empleando tres puntos 𝑥𝑥0 , 𝑥𝑥1 𝑦𝑦 𝑥𝑥2 para
estimar un nuevo punto más cercano al óptimo 𝑥𝑥𝑚𝑚 . Ver Figura 4.12

La fórmula de interpolación en aproximaciones sucesivas es:


1 𝑓𝑓0 �𝑥𝑥12 −𝑥𝑥22 �+𝑓𝑓1 �𝑥𝑥22 −𝑥𝑥02 �+𝑓𝑓2 (𝑥𝑥02 −𝑥𝑥12 )
𝑥𝑥𝑚𝑚 = (4-7)
2 𝑓𝑓0 (𝑥𝑥1 −𝑥𝑥2 )+𝑓𝑓1 (𝑥𝑥2 −𝑥𝑥0 )+𝑓𝑓2 (𝑥𝑥0 −𝑥𝑥1 )

Donde 𝑥𝑥𝑚𝑚 es el valor interpolado usando una aproximación de una ecuación cuadrática 𝑓𝑓(𝑥𝑥) = 𝑎𝑎𝑥𝑥 2 + 𝑏𝑏𝑏𝑏 + 𝑐𝑐

ƒ(x)

13 x
x0 x1 xm x2
Figura 4.12 Puntos seleccionados para la interpolación cuadrática.

La fórmula de interpolación se encuentra resolviendo un sistema de tres ecuaciones de la función cuadrática cada una
para cada punto.

𝑎𝑎𝑥𝑥02 + 𝑏𝑏𝑥𝑥0 + 𝑐𝑐 = 𝑓𝑓(𝑥𝑥0 )

𝑥𝑥02 𝑥𝑥0 1 𝑎𝑎 𝑓𝑓(𝑥𝑥0 )


𝑎𝑎𝑥𝑥12 + 𝑏𝑏𝑥𝑥1 + 𝑐𝑐 = 𝑓𝑓(𝑥𝑥1 ) en forma de matrices se obtiene: �𝑥𝑥12 𝑥𝑥1 1� � � = �𝑓𝑓(𝑥𝑥1 )�
𝑏𝑏
𝑥𝑥22 𝑥𝑥2 1 𝑐𝑐 𝑓𝑓(𝑥𝑥2 )
𝑎𝑎𝑥𝑥22 + 𝑏𝑏𝑥𝑥2 + 𝑐𝑐 = 𝑓𝑓(𝑥𝑥2 )

El punto óptimo para la función cuadrática propuesta se obtiene con la derivada de la función cuadratica,
𝑑𝑑
𝑓𝑓 ′ (𝑥𝑥) = (𝑎𝑎𝑥𝑥 2 + 𝑏𝑏𝑏𝑏 + 𝑐𝑐) = 0 que resulta 𝑥𝑥𝑚𝑚 = −𝑏𝑏/2𝑎𝑎
𝑑𝑑𝑑𝑑

Con la regla de Cramer obtiene:

𝑓𝑓(𝑥𝑥0 ) 𝑥𝑥0 1
�𝑓𝑓(𝑥𝑥1 ) 𝑥𝑥1 1� = 𝐷𝐷𝑎𝑎 = 𝑓𝑓(𝑥𝑥0 )(𝑥𝑥1 − 𝑥𝑥2 ) + 𝑓𝑓(𝑥𝑥1 )(𝑥𝑥2 − 𝑥𝑥0 ) + 𝑓𝑓(𝑥𝑥2 )(𝑥𝑥0 − 𝑥𝑥1 )
𝑓𝑓(𝑥𝑥2 ) 𝑥𝑥2 1

𝑥𝑥02 𝑓𝑓(𝑥𝑥0 ) 1
�𝑥𝑥12 𝑓𝑓(𝑥𝑥1 ) 1� = 𝐷𝐷𝑏𝑏 = 𝑓𝑓(𝑥𝑥0 )(𝑥𝑥12 − 𝑥𝑥22 ) + 𝑓𝑓(𝑥𝑥1 )(𝑥𝑥22 − 𝑥𝑥02 ) + 𝑓𝑓(𝑥𝑥2 )(𝑥𝑥02 − 𝑥𝑥12 )
𝑥𝑥22 𝑓𝑓(𝑥𝑥2 ) 1

𝑥𝑥02 𝑥𝑥0 1
�𝑥𝑥12 𝑥𝑥1 1� = 𝐷𝐷 = 𝑥𝑥02 (𝑥𝑥1 − 𝑥𝑥2 ) + 𝑥𝑥12 (𝑥𝑥2 − 𝑥𝑥0 ) + 𝑥𝑥22 (𝑥𝑥0 − 𝑥𝑥1 )
𝑥𝑥22 𝑥𝑥2 1
𝐷𝐷
𝑏𝑏 � 𝑏𝑏 �
Puesto que 𝑎𝑎 = 𝐷𝐷𝑎𝑎 /𝐷𝐷 y 𝑏𝑏 = 𝐷𝐷𝑏𝑏 /𝐷𝐷 , entonces: 𝑥𝑥𝑚𝑚 = − = − 𝐷𝐷
𝐷𝐷
= 𝐷𝐷𝑏𝑏 /2𝐷𝐷𝑎𝑎
2𝑎𝑎 2� 𝑎𝑎 �
𝐷𝐷

1 𝑓𝑓0 �𝑥𝑥12 −𝑥𝑥22 �+𝑓𝑓1 �𝑥𝑥22 −𝑥𝑥02 �+𝑓𝑓2 (𝑥𝑥02 −𝑥𝑥12 )


Obteniéndose: 𝑥𝑥𝑚𝑚 =
2 𝑓𝑓0 (𝑥𝑥1 −𝑥𝑥2 )+𝑓𝑓1 (𝑥𝑥2 −𝑥𝑥0 )+𝑓𝑓2 (𝑥𝑥0 −𝑥𝑥1 )

En el caso de minimización para seleccionar los siguientes tres puntos se pueden presentar cuatro casos:

Si 𝑥𝑥𝑚𝑚 > 𝑥𝑥1 𝑦𝑦 𝑓𝑓(𝑥𝑥𝑚𝑚 ) ≥ 𝑓𝑓(𝑥𝑥1 ), 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 𝑥𝑥1 → 𝑥𝑥0 ; 𝑥𝑥𝑚𝑚 → 𝑥𝑥1 ; 𝑦𝑦 𝑥𝑥2 → 𝑥𝑥2 Eliminar segmento (𝑥𝑥0 , 𝑥𝑥1 )

Si 𝑥𝑥𝑚𝑚 > 𝑥𝑥1 𝑦𝑦 𝑓𝑓(𝑥𝑥𝑚𝑚 ) < 𝑓𝑓(𝑥𝑥1 ), 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 𝑥𝑥0 → 𝑥𝑥0 ; 𝑥𝑥1 → 𝑥𝑥1 ; 𝑦𝑦 𝑥𝑥𝑚𝑚 → 𝑥𝑥2 Eliminar segmento (𝑥𝑥𝑚𝑚 , 𝑥𝑥2 )

Si 𝑥𝑥𝑚𝑚 < 𝑥𝑥1 𝑦𝑦 𝑓𝑓(𝑥𝑥𝑚𝑚 ) ≥ 𝑓𝑓(𝑥𝑥1 ), 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 𝑥𝑥0 → 𝑥𝑥0 ; 𝑥𝑥𝑚𝑚 → 𝑥𝑥1 ; 𝑦𝑦 𝑥𝑥1 → 𝑥𝑥2 Eliminar segmento (𝑥𝑥𝑚𝑚 , 𝑥𝑥2 )

Si 𝑥𝑥𝑚𝑚 < 𝑥𝑥1 𝑦𝑦 𝑓𝑓(𝑥𝑥𝑚𝑚 ) < 𝑓𝑓(𝑥𝑥1 ), 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 𝑥𝑥𝑚𝑚 → 𝑥𝑥0 ; 𝑥𝑥1 → 𝑥𝑥1 ; 𝑦𝑦 𝑥𝑥2 → 𝑥𝑥2 Eliminar segmento (𝑥𝑥0 , 𝑥𝑥1 )

Estas pruebas en la variable y la función se aprecian mejor en un diagrama de flujo como el de la Figura 4.13

14
X0x0 si si si X1x0
no Xmx1
Xmx1 Xfm >f1 Xxm >x1 Xfm >f1
X1x2 X2x2
no no

Xmx0 X0x0
X1x1 X1x1
X2x2 Xmx2

Figura 4.13 Pruebas para la eliminación de intervalos por interpolación.

Ejemplo 4.4

La fabricación del percloroetileno se basa en la reacción simultánea de pirolisis y halogenación. La reacción principal es:

C3H8 +8*Cl2 --> Cl2C=CCl2 + CCl4 + 8 HCl

A 550 ºC y 1.5 atm con una relación de reactivos en la alimentación M= 15 (mol Cl2/mol C3H8), el tiempo de un lote
depende del tiempo en el reactor Tr más el tiempo de separación Ts

1 𝑀𝑀 − 𝑥𝑥
𝑇𝑇𝑇𝑇 = 𝑙𝑙𝑙𝑙
0.03(𝑀𝑀 − 1) 𝑀𝑀(1 − 𝑥𝑥)

𝑇𝑇𝑇𝑇 = 0.8 + 10(1 − 𝑥𝑥)

El costo de operación es una función de la suma de los tiempos de operación que a su vez dependen de la conversión del
propano en el reactor: x
El costo por uso de equipos es de 100 $/h en el reactor y 70 $/h en los destiladores
La función a minimizar es:
1 𝑀𝑀 − 𝑥𝑥
𝐶𝐶𝑇𝑇 = � 𝑙𝑙𝑙𝑙 � ∗ 100 + [0.8 + 10(1 − 𝑥𝑥)] ∗ 70
0.03(𝑀𝑀 − 1) 𝑀𝑀(1 − 𝑥𝑥)
Se simplifica a:
15 − 𝑥𝑥
𝑓𝑓(𝑥𝑥) = �238.095 ∗ 𝑙𝑙𝑙𝑙 � + 56 + 700(1 − 𝑥𝑥)
15(1 − 𝑥𝑥)

Iniciar la búsqueda con 𝑥𝑥0 = 0.1 𝑦𝑦 𝑥𝑥2 = 0.9

Se abren dos ventanas en la calculadora, la primera para definir la función y la segunda un con una hoja de cálculo para
aplicar el método, ver figura 4.14.
15
En la primera linea de la hoja de cálculo ingresar los valores:

A1 = 0.1; B1=(A1+D1)/2; D1=0.9; C1=la fórmula de interpolación; E1=f(B1); F1=f(C1)

En la segunda linea ingresar:


A2=iffn(c1>b1,iffn(f(f1)>f(e1),b1,a1),iffn(f(f1)>f(e1),a1,c1))
B2=iffn(c1>b1,iffn(f(f1)>f(e1),c1,b1),iffn(f(f1)>f(e1),c1,b1))
D2=iffn(c1>b1,iffn(f(f1)>f(e1),d1,c1),iffn(f(f1)>f(e1),b1,d1))

Duplicar las celdas C1 en C2 y E1 en E2 y F1 en F2

Figura 4.14 Resolución del Ejemplo 4.3 en la calculadora TI Nspire

El error es menor a 0.5% en la octava iteración

4.6 Método de Newton

De la misma manera que se desarrolla el método de Newton Raphson para encontrar las raíces de las funciones no
lineales, se puede aplicar para encontrar los puntos críticos de funciones no lineales.

Para una función 𝑓𝑓(𝑥𝑥) de una variable a ser minimizada y suponiendo que en 𝑥𝑥𝑘𝑘 es posible evaluar
𝑓𝑓(𝑥𝑥), 𝑓𝑓 ′ (𝑥𝑥𝑘𝑘 ) 𝑦𝑦 f”(xk). Entonces es posible construir una aproximación cuadrática a partir del desarrollo de Taylor:

1
𝑓𝑓(𝑥𝑥) ≈ 𝑓𝑓(𝑥𝑥𝑘𝑘 ) + 𝑓𝑓 ′ (𝑥𝑥𝑘𝑘 ) ∗ (𝑥𝑥 − 𝑥𝑥𝑘𝑘 ) + 2𝑓𝑓 ′′ (𝑥𝑥𝑘𝑘 ) ∗ (𝑥𝑥 − 𝑥𝑥𝑘𝑘 )2

Se puede estimar 𝑥𝑥𝑘𝑘+1 determinando el punto donde la derivada de 𝑓𝑓(𝑥𝑥) se hace cero:

𝑓𝑓 ′ (𝑥𝑥𝑘𝑘 ) = 𝑓𝑓′(𝑥𝑥𝑘𝑘 ) + 𝑓𝑓 ′′ (𝑥𝑥𝑘𝑘 ) ∗ (𝑥𝑥𝑘𝑘+1 − 𝑥𝑥𝑘𝑘 ) = 0

Se despeja 𝑥𝑥𝑘𝑘+1 da:

𝑓𝑓′(𝑥𝑥𝑘𝑘 )
𝑥𝑥𝑘𝑘+1 = 𝑥𝑥𝑘𝑘 − (4-8)
𝑓𝑓′′(𝑥𝑥𝑘𝑘 )

16
Esta es la fórmula de Newton Raphson para que a partir de un punto inicial (𝑥𝑥0 ) se llegue a un punto crítico
aproximándose mejor a cada nueva iteración.

Se usan como criterios para dar por terminada la búsqueda de los puntos críticos cuando ocurra lo siguiente:

a) Cuando el número de iteraciones sea mayor a un número preestablecido y/o,


𝑓𝑓(𝑥𝑥𝑘𝑘+1 )−𝑓𝑓(𝑥𝑥𝑘𝑘 )
b) � 𝑓𝑓(𝑥𝑥𝑘𝑘+1 )
� ≤ 𝑒𝑒 donde 𝑒𝑒 es un valor pequeño, por ejemplo, 10-4.

( ) ( )
f x k +1 − f x k < ε
Ejemplo 4.5

Encontrar las raíces y puntos críticos de la función: 𝑓𝑓(𝑥𝑥) = (4 − (𝑥𝑥 + 1)2 )𝑥𝑥

Se usa la calculadora TI nspire para resolver el problema.

Después de definir la función, se define la fórmula de Newton Raphson para encontrar raiceds:

𝑓𝑓(𝑥𝑥)
𝑛𝑛𝑛𝑛 = 𝑥𝑥 −
𝑑𝑑
(𝑓𝑓(𝑥𝑥))
𝑑𝑑𝑑𝑑

Y se aplica el algoritmo a partir del punto inicial 𝑥𝑥 = 0.1 con la instrucción:

𝐹𝐹𝐹𝐹𝐹𝐹 𝑖𝑖, 1,5: 𝑥𝑥 ≔ 𝑛𝑛𝑛𝑛(𝑥𝑥): 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 𝑥𝑥, 𝑓𝑓(𝑥𝑥): 𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸

Se aplica el algoritmo en cinco iteraciones. Se obtiene una primera raíz en 𝑥𝑥 = 0

Después se define la fórmula de Newton Raphson para encontrar los puntos críticos:
𝑑𝑑
𝑓𝑓(𝑥𝑥)
𝑛𝑛𝑛𝑛2 = 𝑥𝑥 − 2𝑑𝑑𝑑𝑑
𝑑𝑑
(𝑓𝑓(𝑥𝑥))
𝑑𝑑𝑥𝑥 2
Se encuentra el punto crítico en 𝑥𝑥 = 0.535184

Luego se inicia otra búsqueda alrededor del punto 𝑥𝑥 = −1


Se encuentra otro punto crítico en 𝑥𝑥 = −1.86812
Finalmente se evalúa la función en los puntos críticos y se obtiene la segunda derivada de la función en esos puntos
críticos para determinar sus características.

Los resultados se resumen en la siguiente tabla:

Puntos críticos, 𝑥𝑥 ∗ = Función, 𝑓𝑓(𝑥𝑥 ∗ ) 𝑑𝑑2


(𝑓𝑓(𝑥𝑥 ∗ )
𝑑𝑑𝑥𝑥 2
-1.86812 -6.0646 7.2111

17
0.535184 0.87942 -7.2111

Con lo que se determina que el primer punto crítico es un mínimo y el segundo un máximo.

Posteriormente se grafica la función y se identifican los puntos críticos, Figura 4.15.

18
Figura 4.15 Identificación de los puntos críticos de 𝑓𝑓(𝑥𝑥) = (4 − (𝑥𝑥 + 1)2 )𝑥𝑥

19
Problemas

4.1 En el intervalo de incertidumbre para x entre [0, 2], encontrar el óptimo de:

f ( x) = 4 4 − 14 x 3 + 60 x 2 − 70 x

a) Con el método de la sección dorada efectué tres iteraciones.


b) Con el método de Fibonacci efectué tres iteraciones empezando con el número F5 = 8.
c) Con el método de interpolación cuadrática efectué tres iteraciones
d) Compare los resultados para determinar cuál método da la mejor aproximación al verdadero mínimo.

20
CAPÍTULO 5
Optimización de Funciones no Lineales Multivariables

Los métodos numéricos de optimización multivariable se dividen en dos grupos. Los


primeros que usan algoritmos de aproximación sin el empleo de derivadas. En este
grupo se tienen el método de búsqueda paralela a los ejes, el método de Hook y
Jeeves, como principales. En el otro grupo se tienen métodos que usan derivadas
en sus aproximaciones numéricas. Los más empleados son el método del gradiente
y el método de Newton Raphson. En este capítulo se describen los métodos de
ambos grupos con ejemplos que ilustran la aplicación a problemas de dos variables.

21
Los métodos de optimización numérica proceden siguiendo un patrón fijo de operaciones en la que las variables tienen
cambios o movimientos sucesivos hasta llegar al objetivo que sea maximizar o minimizar la función objetivo. A partir de
un conjunto inicial de valores de las variables denominado punto base, luego se debe seleccionar tanto una dirección
del movimiento hacia una región mejor, como la distancia del movimiento a lo largo de dicha dirección, obteniendo así
un nuevo punto base para el movimiento siguiente.

Las coordenadas de un nuevo punto en las variables serán:


𝑥𝑥 𝑗𝑗+1 = 𝑥𝑥 𝑗𝑗 + 𝑠𝑠 ∙ 𝑑𝑑 𝑗𝑗
Dónde:
𝑥𝑥 𝑗𝑗 = 𝑐𝑐𝑐𝑐𝑜𝑜𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 𝑑𝑑𝑑𝑑𝑑𝑑 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏
𝑠𝑠 = 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 𝑒𝑒𝑒𝑒 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 𝑑𝑑𝑑𝑑 𝑏𝑏ú𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠
𝑑𝑑 𝑗𝑗 = 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑ó𝑛𝑛 𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚

5.1 Método de búsqueda paralela a los ejes coordenados.

Este método se aplica de dos formas diferentes:

a) Con un valor de magnitud del paso de búsqueda fijo y b) buscando un valor de cambio del paso variable que optimice
la función objetivo.

En el caso que la magnitud de cambio sea constante las coordenadas de un nuevo punto en las variables serán:

𝑥𝑥 𝑗𝑗+1 = 𝑥𝑥 𝑗𝑗 ± ∆𝑥𝑥 𝑗𝑗

Se aplica de la siguiente manera:

A partir de un punto inicial o base 𝑥𝑥 𝑏𝑏 y un valor de ∆𝑥𝑥 𝑗𝑗 para cada variable y la definición de la tolerancia de
convergencia, se procede de la siguiente manera.

a) Variar una de las variables manteniendo constantes las otras variables. Se prueba un cambio positivo y si la
función mejora pasar al siguiente paso. Si no mejora la función objetivo, cambiar la dirección de búsqueda.
b) Probar las otras variables con movimientos en la dirección que mejora la función.
c) Si al probar tanto el cambio positivo como el negativo y la función no mejora, reducir la magnitud del
movimiento.
d) Repetir (a) y (b) hasta lograr la tolerancia de la convergencia

Para el caso en que la magnitud de cambio no se mantiene fija, entonces 𝑠𝑠 se determina con una optimización de
búsqueda univariable como los que se describieron en el capítulo 4.

Este método es muy fácil de entender y programar pero es muy lento en converger especialmente en contornos
elípticos de la función con ejes rotados y muy alongados. En la Figura 5.1 se muestra una secuencia de movimientos
paralela a los ejes en una función de dos variables para encontrar el máximo.

22
x2 Δx2
Δx1

x1
Figura 5.1 Movimientos de búsqueda paralela a los ejes.

Ejemplo 5.1

Aplicar el método de búsqueda paralela a los ejes coordenados para minimizar la función:

𝑓𝑓(𝑥𝑥, 𝑦𝑦) = (𝑥𝑥 2 + 𝑦𝑦 − 11)2 + (𝑥𝑥 + 𝑦𝑦 2 − 7)2

A partir del punto inicial (1,1) y con incrementos iniciales de (0.5, 0.5), esta función se conoce como función de
Himmelblau, la cual es difícil de converger ya que tiene siete puntos extremos.

Los resultados de la búsqueda se dan en la siguiente tabla:

x1 x2 f1 delta1 delta2
1 1 106.0 0.5 0.5
1.5 1 80.3 0.5 0.5
1.5 1.5 63.1 0.5 0.5
2 1.5 37.8 0.5 0.5
2 2 26.0 0.5 0.5
2.5 2 7.8 0.5 0.5
2.5 2.5 8.1 0.5 0.25
2.5 2.25 6.6 0.5 0.25
3 2.25 1.2 0.5 -0.25
3 2 0

Se observa que el movimiento entre los puntos (2.5, 2) y (2.5, 2.5) la función deja de disminuir para aumentar de f(2.5,
2) = 7.8 a f(2.5, 2.5)=8.1, por lo que se debe disminuir el tamaño del incremento.

Los movimientos se observan en la gráfica de la Figura 5.2.

23
4.0

3.5

3.0

8.1
2.5

6.6 1.2
26 2.0
7.8 0.0

63 37 1.5

F=106 80 1.0

0.5

0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0

Figura 5.2 Movimientos de la búsqueda paralela a los ejes en el Ejemplo5.1.

Con la calculadora TI nspire se implementa la búsqueda paralela a los ejes de la función de Himmelblau y minimización
del paso de incremento ver Figura 5.3

24
Figura 5.3 Instrucciones de la búsqueda paralela a los ejes del Ejemplo 5.1

Ejemplo 5.2

25
Un sistema de extracción de dos etapas se utiliza para recuperar el soluto de una disolución acuosa, utilizando
disolvente nuevo en cada etapa. La disolución entra al sistema con un caudal de 500 kg de agua/h y con una
concentración xo = 0.20 kg de soluto por kg de agua. Dadas las distintas condiciones de mezcla en cada etapa, puede
admitirse que en la primera la relación de equilibrio entre las corrientes que salen de ella viene expresada por

𝑦𝑦1 = 1.8 𝑥𝑥1 , mientras que en la segunda sería 𝑦𝑦2 = 2.2 𝑥𝑥2, siendo:

yi: kg de soluto/kg de disolvente en el extracto que sale de la etapa i.

xi: kg de soluto/kg de agua en el refinado que sale de la etapa i.

Si el valor del soluto recuperado es de 1,000 $/kg y el precio del disolvente de 80 $/kg, determinar el caudal óptimo de
disolvente a utilizar en cada una de las etapas, W1 y W2 (kg/h), para maximizar la diferencia entre el valor del soluto
recuperado y el costo del disolvente gastado. Considere que el flujo de W1 + W2 no deben ser mayor al caudal de la
disolución a tratar.

El diagrama de las dos etapas de extracción se da en la Figura 5.4:


W1 = kg d/h W2 = kg d/h

W0 = 500 kg A/h
① Etapa ③ Etapa
1 2
x0 = 0.2 kg S/kg A X1= kg S/kg A X2= kg S/kg A


y1 = 1.8x1 kg S/kg d y2 = 2.2x2 kg S/kg d

Figura 5.4 Diagrama del proceso de extracción por solventes.

Balance del soluto en la etapa 1 es:

𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑞𝑞𝑞𝑞𝑞𝑞 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑞𝑞𝑞𝑞𝑞𝑞 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑞𝑞𝑞𝑞𝑞𝑞


� �=� �+� �
𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 𝑒𝑒𝑒𝑒 1 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 𝑒𝑒𝑒𝑒 3 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 𝑒𝑒𝑒𝑒 4

Es decir:

500 𝑘𝑘𝑘𝑘 𝐴𝐴 0.2 𝑘𝑘𝑘𝑘 𝑆𝑆 500 𝑘𝑘𝑘𝑘 𝐴𝐴 𝑥𝑥1 𝑘𝑘𝑘𝑘 𝑆𝑆 𝑦𝑦1 𝑘𝑘𝑘𝑘 𝐴𝐴 𝑤𝑤1 𝑘𝑘𝑘𝑘 𝑑𝑑
� �� �=� �� �+� �� �
ℎ 𝑘𝑘𝑘𝑘 𝐴𝐴 ℎ 𝑘𝑘𝑘𝑘 𝐴𝐴 𝑘𝑘𝑘𝑘 𝑑𝑑 ℎ
500∗0.2
Puesto 𝑦𝑦1 = 1.8 𝑥𝑥1 se obtiene: 500 ∗ 0.2 = 500𝑥𝑥1 + 1.8𝑥𝑥1 𝑤𝑤1 de donde: 𝑥𝑥1 =
(500+1.8𝑤𝑤1 )

𝑥𝑥1 500
Del balance de la segunda etapa se obtiene: 𝑥𝑥2 =
(500+2.2𝑤𝑤2

La función objetivo es: 𝑓𝑓(𝑤𝑤1 , 𝑤𝑤2 ) = 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 ∗ 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 − 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑑𝑑𝑑𝑑 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 ∗ 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝

26
Entonces:
500 500 ∗ 0.2
max 𝑓𝑓(𝑤𝑤1 , 𝑤𝑤2 ) = 500 �0.2 − � 1000
(500 + 2.2𝑤𝑤2 (500 + 1.8𝑤𝑤1 )
− (𝑤𝑤1 + 𝑤𝑤2 )80
Con la restricción: 𝑤𝑤1 + 𝑤𝑤2 < 500

Para aplicar el método de búsqueda paralela a los ejes 𝑤𝑤1 𝑦𝑦 𝑤𝑤2 se define 𝑤𝑤1 = 100 𝑦𝑦 𝑤𝑤2 = 100 ,

El procedimiento en la calculadora TI nspire se muestra a continuación:

27
En cinco iteraciones converge a la solución.
𝑘𝑘𝑘𝑘 𝑘𝑘𝑘𝑘
La solución exacta es: 𝑤𝑤1 = 151.1876 𝑦𝑦 𝑤𝑤2 = 201.6258 con valor de la función de 𝑓𝑓 = 37,461.19 $/ℎ
ℎ ℎ

5.2 Método de Hooke y Jeeves.

Este método funciona con dos tipos de movimientos de búsqueda, el primero denominado búsqueda exploratoria y el
segundo de búsqueda patrón. El procedimiento se describe a continuación:

Algoritmo para maximizar funciones no lineales con dos variables 𝑓𝑓(𝑥𝑥, 𝑦𝑦).

Iniciar un contador de iteraciones 𝑖𝑖 = 0 y definir los valores de los incrementos iniciales de las variables ∆𝑥𝑥 y ∆𝑦𝑦

1. Iniciar con un punto bases 𝑏𝑏0 = (𝑥𝑥0 , 𝑦𝑦0 ) y evaluar la función en este punto, 𝑓𝑓(𝑥𝑥0 , 𝑦𝑦0 )
2. Movimiento exploratorio: incrementar 𝑥𝑥 y probar si mejora la función, 𝑓𝑓(𝑥𝑥0 + ∆𝑥𝑥 , 𝑦𝑦0 ) > 𝑓𝑓(𝑥𝑥0 , 𝑦𝑦0 ) sino
disminuir 𝑥𝑥 𝑓𝑓(𝑥𝑥0 − ∆𝑥𝑥 , 𝑦𝑦0 ) y pasar a examinar cambios en la dirección de la otra variable, 𝑦𝑦 probando en qué
dirección mejora la función, ya sea con 𝑦𝑦 + ∆𝑦𝑦 o con 𝑦𝑦 − ∆𝑦𝑦 . Si no mejora en ambos movimientos, entonces
reducir los incrementos y repetir el movimiento patrón. El movimiento que define el mejor cambio se define
𝑝𝑝
como 𝑏𝑏𝑖𝑖+1 = (𝑥𝑥𝑖𝑖+1 , 𝑦𝑦𝑖𝑖+1 )
3. Movimiento patrón: se calcula un nuevo punto extrapolando el punto base anterior 𝑏𝑏𝑖𝑖 con el punto del
𝑝𝑝 𝑝𝑝
movimiento patrón, 𝑏𝑏𝑖𝑖+1 con la fórmula: 𝑏𝑏𝑖𝑖+1 = 2 ∗ 𝑏𝑏𝑖𝑖+1 − 𝑏𝑏𝑖𝑖

28
4. Si la función en 𝑏𝑏𝑖𝑖+1 comparada con el mejor de los valores calculados anteriormente es mejor, tomar como
nuevo punto base al punto 𝑏𝑏𝑖𝑖+1 incrementar 𝑖𝑖 y regresar a 2. Si el punto extrapolado no mejora tomar como
𝑝𝑝
nuevo punto base al punto 𝑏𝑏𝑖𝑖+1 , incrementar 𝑖𝑖 y regresar a 2.
5. Terminar cuando el error relativo entre dos valores de la función en iteraciones sucesivas es muy pequeño, por
ejemplo menor a 10−4 o cuando la norma de los incrementos es menor que una tolerancia preestablecida.

El movimiento exploratorio en la vecindad del último punto define un nuevo punto, con estos dos se define otro por
extrapolación. Si en cualquiera de los movimientos de exploración o patrón no se produce una mejoría en la función
objetivo, entonces reducir el tamaño del incremento y continuar la búsqueda en ambos movimientos.

Ejemplo 5.3

Maximizar 𝑓𝑓(𝑥𝑥, 𝑦𝑦) = 𝑥𝑥 + 𝑦𝑦 − 0.12𝑦𝑦 3 + 2.5𝑥𝑥𝑥𝑥 − 0.12𝑥𝑥 3 con el método de Hooke y Jeeves empezar con (𝑥𝑥0, 𝑦𝑦0) =
(1.5,2.5)𝑦𝑦 ∆𝑥𝑥 = ∆𝑦𝑦 = 2.
Terminar cuando error relativo de 𝑓𝑓(𝑥𝑥, 𝑦𝑦) sea menor a 10-3 o Δ se reduzca 5 veces o se alcancen 5 iteraciones.

Con la calculadora TI nspire se resuelve el problema como se indica en las figuras 5.5, y 5.6

Figura 5.5 Primeras dos iteraciones del método Hooke y Jeeves del Ejemplo 5.3

Figura 5.6 Iteraciones tres y cuatro del método Hooke y Jeeves del Ejemplo 5.3

Converge en cuatro iteraciones y el óptimo con valores promedio es (𝑥𝑥 ∗ , 𝑦𝑦 ∗ ) = (7.3125, 7.3125), 𝑓𝑓(𝑥𝑥 ∗ , 𝑦𝑦 ∗ ) = 54.4621
y se cumple que el error es menor a 10-3.

En la Tabla 5.2 se presentan los valores de las variables y la función en cada iteración.

Tabla 5.2 Valores de las variables y la función en la resolución del Ejemplo 5.3
29
Iteración 𝑥𝑥 𝑦𝑦 𝑓𝑓(𝑥𝑥, 𝑦𝑦)
0 1.5 2.5 11.095
1 3.5 4.5 31.295
2 7.5 7.5 54.375
3 7.25 7.25 54.4475
4 7.3125 7.3125 54.4621

5.3. Método del Gradiente

El método de gradiente también conocido como método del descenso más pronunciado del inglés steepest descent, es
el método más empleado para obtener el óptimo de funciones multivariables no lineales. Básicamente se aplica en una
serie de pasos en los que a cada iteración los nuevos valores calculados se aproximan cada vez más al óptimo.

La fórmula para obtener las coordenadas de un nuevo punto en las variables es:

𝑥𝑥 𝑗𝑗+1 = 𝑥𝑥 𝑗𝑗 + 𝑎𝑎 ∙ ∇𝑓𝑓�𝑥𝑥 𝑗𝑗 �

Dónde: 𝑥𝑥 𝑗𝑗 𝑦𝑦 𝑥𝑥 𝑗𝑗+1 = 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑑𝑑𝑑𝑑 𝑙𝑙𝑙𝑙𝑙𝑙 𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜 𝑗𝑗 𝑦𝑦 𝑗𝑗 + 1

𝑎𝑎 = 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 𝑒𝑒𝑒𝑒 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 𝑑𝑑𝑑𝑑 𝑏𝑏ú𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠

∇𝑓𝑓�𝑥𝑥 𝑗𝑗 � = 𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 𝑑𝑑𝑑𝑑 𝑙𝑙𝑙𝑙 𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓ó𝑛𝑛 𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜 𝑒𝑒𝑒𝑒 𝑒𝑒𝑒𝑒 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 𝑥𝑥 𝑗𝑗

Para la maximización de la función 𝑓𝑓(𝑥𝑥, 𝑦𝑦) el método garantiza que 𝑓𝑓(𝑥𝑥 𝑗𝑗+1 , 𝑦𝑦 𝑗𝑗+1 ) > 𝑓𝑓(𝑥𝑥 𝑗𝑗 , 𝑦𝑦 𝑗𝑗 ), porque el gradiente
+∇𝑓𝑓(𝑥𝑥, 𝑦𝑦) define una dirección en que la función aumenta. Geométricamente el gradiente es ortogonal (perpendicular)
a los contornos de la función en el punto de mayor incremento de la función. Un gradiente negativo −∇𝑓𝑓(𝑥𝑥, 𝑦𝑦) apunta
en la dirección de mayor disminución de la función, ver Figura 5.7.

x2 f(x) = 5 k
-∇f(x )
f(x) = 20
k
∇f(x )

k
x

f(x) = 25
x1

30
Figura 5.7 Gráfica de los contornos de 𝑓𝑓(𝑥𝑥, 𝑦𝑦) con los gradientes en 𝑓𝑓2.

Con la condición de ortogonalidad se determina que

𝛻𝛻𝛻𝛻(𝑥𝑥, 𝑦𝑦)𝑇𝑇 �−∇𝑓𝑓(𝑥𝑥, 𝑦𝑦)� < 0

𝛻𝛻𝛻𝛻(𝑥𝑥, 𝑦𝑦)𝑇𝑇 �−∇𝑓𝑓(𝑥𝑥, 𝑦𝑦)� = �𝛻𝛻𝛻𝛻(𝑥𝑥, 𝑦𝑦) �

𝜕𝜕𝜕𝜕 2
𝜕𝜕𝜕𝜕 2 2
Que representa la magnitud del gradiente �𝛻𝛻𝛻𝛻(𝑥𝑥, 𝑦𝑦) � = �� � + � �
𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕

El procedimiento para la aplicación del método es:

1. Definir un punto de partida, 𝑥𝑥 0 , iniciar un contador de iteraciones, 𝑗𝑗 = 0 y definir el criterio de terminación.


2. Calcular el gradiente ∇𝑓𝑓(𝑥𝑥 𝑗𝑗 ) y la función 𝑓𝑓(𝑥𝑥 𝑗𝑗 )
3. Calcular la magnitud del paso de cambio en las coordenadas, 𝑎𝑎. Este valor se debe determinar maximizando o
minimizando, según sea al caso, la función 𝑓𝑓(𝑥𝑥 𝑗𝑗 − 𝑎𝑎 ∙ ∇𝑓𝑓�𝑥𝑥 𝑗𝑗 �). Esta es una función univariable y se puede usar
cualquier método de optimización univariable para encontrar 𝑎𝑎.
4. Determinar el nuevo punto aplicando la fórmula de actualización: 𝑥𝑥 𝑗𝑗+1 = 𝑥𝑥 𝑗𝑗 − 𝑎𝑎 ∙ ∇𝑓𝑓(𝑥𝑥 𝑗𝑗 )
5. Probar si converge. Si no converge incrementar el contador de iteraciones y regresar a 2.

Los pasos 3 y 4 son muy importantes en el método. Primero el cálculo de la magnitud del paso de cambio en las
coordenadas, 𝑎𝑎 que puede hacerse con una búsqueda de la sección dorada o interpolación cuadrática. Segundo la
fórmula de actualización con la cual progresivamente las coordenadas se acercan más al óptimo. En cada iteración el
error de las funciones en dos iteraciones sucesivas se hace más y más pequeño.

Como criterio de convergencia se puede usar el error relativo de la función en dos iteraciones sucesivas, el cual se puede
especificar como un valor pequeño, por ejemplo 10-4 o 10-5. También se pude usar la magnitud del gradiente o los
valores de las derivadas de la función en el gradiente cuyo valor disminuye a cada iteración, ya que la condición
necesaria para obtener el óptimo es que las derivadas sean cero en un punto estacionario.

Ejemplo 5.4 Obtener el máximo de 𝑓𝑓(𝑥𝑥, 𝑦𝑦) = 𝑥𝑥(𝑦𝑦 + 4) − 𝑥𝑥 2 − 0.5(𝑦𝑦 2 − 6𝑦𝑦 + 2) usando el método del gradiente
(ascenso más pronunciado) empezando en (𝑥𝑥 0 , 𝑦𝑦 0 ) = (2,2) y terminar cuando ��𝑓𝑓(𝑥𝑥 𝑘𝑘 ) − 𝑓𝑓(𝑥𝑥 𝑘𝑘−1 )�/𝑓𝑓(𝑥𝑥 𝑘𝑘 )� ≤ 10−4

𝑥𝑥 1 2 −2𝑥𝑥 + 𝑦𝑦 + 4 2 − 2𝑎𝑎
En la primera iteración: � 1 � = � � − 𝑎𝑎 � � =� �
𝑦𝑦 2 𝑥𝑥 − 𝑦𝑦 + 3 2 − 3𝑎𝑎

2 − 2𝑎𝑎
El máximo de 𝑓𝑓 �� � � = −2.5𝑎𝑎2 − 13𝑎𝑎 + 11 se puede obtener igualando a cero la primera derivada de 𝑓𝑓(𝑥𝑥, 𝑦𝑦)
2 − 3𝑎𝑎
en términos de 𝑎𝑎, 𝑓𝑓(1 − 2𝑎𝑎, 2 − 3𝑎𝑎) = (2 − 2𝑎𝑎)((2 − 3𝑎𝑎) + 4) − (2 − 2𝑎𝑎)2 − 0.5((2 − 3𝑎𝑎)2 − 6(2 − 3𝑎𝑎) + 2)
𝑑𝑑 −13
�𝑓𝑓(1 − 2𝑎𝑎, 2 − 3𝑎𝑎)� = −2.5𝑎𝑎2 − 13𝑎𝑎 + 11 = 0 da 𝑎𝑎 = = −2.6 , entonces:
𝑑𝑑𝑑𝑑 5

𝑥𝑥 1 2 2 7.2
� � = � � + 2.6 � � = � � con f(7.2, 9.8) = 27.9
𝑦𝑦1 2 3 9.8

𝑥𝑥 2 7.2 −0.6 6.97059


� � = � � − 0.38235 � �=� � con f(6.97059, 9.95294) = 27.9994
𝑦𝑦 2 9.8 0.4 9.95294
31
k xk yk f(xk,yk) 𝒅𝒅𝒅𝒅(𝒙𝒙𝒌𝒌 , 𝒚𝒚𝒌𝒌 )/𝒅𝒅𝒅𝒅 𝒅𝒅𝒅𝒅(𝒙𝒙𝒌𝒌 , 𝒚𝒚𝒌𝒌 )/𝒅𝒅𝒅𝒅 𝒂𝒂
0 0 0 11 4 3
1 7.2 9.8 27.9 -0.6 0.4 -2.6
2 6.97059 9.95294 27.9994 0.01176 0.01765 -0.3823
3 7.00117 9.99884 28 -0.0035 0.00233

El error en la tercera iteración se tiene: |(𝑓𝑓(𝑥𝑥 3 ) − 𝑓𝑓(𝑥𝑥 2 ))/𝑓𝑓(𝑥𝑥 3 )| = 0.000021 < 10−4
Converge en tres iteraciones.
Se calculan los determinantes de la Hessiana para determinar si es un máximo o un mínimo.
𝜕𝜕2 𝑓𝑓 𝜕𝜕2 𝑓𝑓
𝜕𝜕𝑥𝑥 2 𝜕𝜕𝜕𝜕𝜕𝜕𝜕𝜕 −2 1 −2 1
� 𝜕𝜕2 𝑓𝑓 𝜕𝜕2 𝑓𝑓
� =� � se obtiene 𝑑𝑑1 = −2 y 𝑑𝑑2 = � �=1
1 −1 1 −1
𝜕𝜕𝜕𝜕𝜕𝜕𝜕𝜕 𝜕𝜕𝑦𝑦 2

Por lo que corresponde a un máximo. La solución exacta es: 𝑥𝑥 = 7, 𝑦𝑦 = 10, 𝑐𝑐𝑐𝑐𝑐𝑐 𝑓𝑓(7, 10) = 28.
La gráfica de las curvas de contorno se muestra en Figura 5.8

Figura 5.8 Gráfica de las curvas de contorno de 𝑓𝑓(𝑥𝑥, 𝑦𝑦) = 𝑥𝑥(𝑦𝑦 + 4) − 𝑥𝑥 2 − 0.5(𝑦𝑦 2 − 6𝑦𝑦 + 2) con máximo en (7,10)

Las instrucciones en la calculadora TI nspire para resolver este problema usando una notación vectorial se muestran a
continuación:

32
33
Ejemplo 5.5

En el Ejemplo 6.2 se optimiza un sistema de extracción de dos etapas se utiliza para recuperar el soluto de una
disolución acuosa, donde resulta la función objetivo:

500 500 ∗ 0.2


max 𝑓𝑓(𝑤𝑤1 , 𝑤𝑤2 ) = 500 �0.2 − � 1000 − (𝑤𝑤1 + 𝑤𝑤2 )80
(500 + 2.2𝑤𝑤2 (500 + 1.8𝑤𝑤1 )

La fórmula de iteración del método del gradiente es:

𝑑𝑑
𝑖𝑖+1 𝑖𝑖 𝑓𝑓(𝑤𝑤1𝑖𝑖 , 𝑤𝑤2𝑖𝑖 )
𝑤𝑤1 𝑤𝑤1
� 𝑖𝑖+1 � = � 𝑖𝑖 � + 𝑎𝑎 � 𝑑𝑑𝑑𝑑1 �
𝑤𝑤2 𝑤𝑤2 𝑑𝑑
𝑓𝑓(𝑤𝑤1𝑖𝑖 , 𝑤𝑤2𝑖𝑖 )
𝑑𝑑𝑑𝑑2

El parámetro 𝑎𝑎 se determina con una búsqueda lineal que maximiza la función en la dirección del gradiente.

El procedimiento en la calculadora TI nspire se muestra en la Figura 5.9

34
Figura 5.9 Instrucciones del método del gradiente para resolver el ejemplo3.

En cuatro iteraciones converge a la solución con un error de 10-6 en la función objetivo.


𝑘𝑘𝑘𝑘 𝑘𝑘𝑘𝑘
La solución exacta es: 𝑤𝑤1 = 151.1876 𝑦𝑦 𝑤𝑤2 = 201.6258 con valor de la función de 𝑓𝑓 = 37,461.19 $/ℎ
ℎ ℎ

7.2 Método de Newton Raphson

Una aproximación al gradiente de f en un punto x0 usando el desarrollo de Taylor resulta:

∇f ( x ) ≈ ∇f ( x 0 ) + ∇ 2 f ( x 0 ) ⋅ ( x − x 0 )

X será un punto estacionario de f si ∇f(x) = 0. Podemos hacer el lado derecho de la ecuación igual a cero y re arreglar
para obtener

[
x = x 0 − ∇ 2 f (x 0 ) ]−1
⋅ ∇f ( x 0 )

Al generalizar esta ecuación para dar una expresión iterativa del Método de Newton:

[
x k +1 = x k − ∇ 2 f (x k ) ]−1 −𝟏𝟏
⋅ ∇f (x k ) o 𝒙𝒙𝒌𝒌+𝟏𝟏 = 𝒙𝒙𝒌𝒌 − 𝑯𝑯�𝒙𝒙𝒌𝒌 � 𝛁𝛁𝒇𝒇(𝒙𝒙𝒌𝒌)

[∇ 2
]
f (x k ) =H(x) es la matriz Hessiana en la fórmula de aproximación para dos variables queda:

−1
𝜕𝜕 2 𝑓𝑓 𝜕𝜕 𝜕𝜕𝜕𝜕 𝑑𝑑𝑑𝑑
⎡ ⎤ ⎡ ⎤
⎢ 𝜕𝜕𝑥𝑥 2 𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕⎥ ⎢𝑑𝑑𝑑𝑑 ⎥
𝑥𝑥 𝑘𝑘+1 = 𝑥𝑥 𝑘𝑘 − ⎢
⎢ 𝜕𝜕 𝜕𝜕𝜕𝜕 𝜕𝜕 2 𝑓𝑓 ⎥⎥ ⎢𝑑𝑑𝑑𝑑 ⎥
⎣𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕 𝜕𝜕𝑦𝑦 2 ⎦ ⎣𝑑𝑑𝑑𝑑⎦

35
−1
El cálculo de la inversa no se requiere si notamos que −𝐻𝐻�𝑥𝑥 𝑘𝑘 � ∇𝑓𝑓�𝑥𝑥 𝑘𝑘 � = 𝑝𝑝

Entonces el vector 𝒑𝒑 se puede obtener resolviendo el sistema lineal de ecuaciones: 𝐻𝐻�𝑥𝑥 𝑘𝑘 � 𝑝𝑝 = −∇𝑓𝑓�𝑥𝑥 𝑘𝑘 �.

Ejemplo 5.6
Obtener el mínimo de 𝑓𝑓(𝑥𝑥, 𝑦𝑦) = 𝑥𝑥 2 − 5𝑥𝑥𝑥𝑥 + 𝑦𝑦 4 − 25𝑥𝑥 − 8𝑦𝑦

Use el método de Newton Raphson empezando en (𝑥𝑥 0 , 𝑦𝑦 0 ) = (2,2) y terminar cuando ��𝑓𝑓(𝑥𝑥 𝑘𝑘 ) − 𝑓𝑓(𝑥𝑥 𝑘𝑘−1 )�/𝑓𝑓(𝑥𝑥 𝑘𝑘 )� ≤
10−4 .
𝑑𝑑𝑑𝑑 𝜕𝜕2 𝑓𝑓 𝜕𝜕 𝜕𝜕𝜕𝜕
𝑑𝑑𝑑𝑑 2𝑥𝑥 − 5𝑦𝑦 − 25 𝜕𝜕𝑥𝑥 2 𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕 2 −5
El Gradiente y la Hessiana: �𝑑𝑑𝑑𝑑 � =� � � 𝜕𝜕 𝜕𝜕𝜕𝜕 � =� �
−5𝑥𝑥 + 4𝑦𝑦 3 − 8 𝜕𝜕2 𝑓𝑓 −5 12𝑦𝑦 2
𝑑𝑑𝑑𝑑 𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕 𝜕𝜕𝑦𝑦 2
Iteración 1:

𝑥𝑥 1 𝑥𝑥 0 2 −5 −1 2𝑥𝑥 − 5𝑦𝑦 − 25 𝑥𝑥 1 2 2 −5 −1 −31


� 1 � = � 0 � − �−5 12𝑦𝑦 2 � � � � 1� = � � − � � � �
𝑦𝑦 𝑦𝑦 −5𝑥𝑥 + 4𝑦𝑦 3 − 8 𝑦𝑦 2 −5 48 14

𝑥𝑥 1 21.9718
� �=� � con 𝑓𝑓(21.9718,3.78873) = −307.02
𝑦𝑦1 3.78873

Iteración 2:

𝑑𝑑𝑑𝑑 𝜕𝜕2 𝑓𝑓 𝜕𝜕 𝜕𝜕𝜕𝜕


1
𝑥𝑥 21.9718 𝑑𝑑𝑑𝑑 0 𝜕𝜕𝑥𝑥 2 𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕 2 −5
𝑒𝑒𝑒𝑒 � �=� � se obtiene �𝑑𝑑𝑑𝑑 � =� � y � 𝜕𝜕 𝜕𝜕𝜕𝜕 � =� �
𝑦𝑦1 3.78873 16.7297 𝜕𝜕2 𝑓𝑓 −5 120.188
𝑑𝑑𝑑𝑑 𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕 𝜕𝜕𝑦𝑦 2
Los valores actualizados de las variables son:

𝑥𝑥 2 21.9718 2 −5 −1 0 20.4119
� 2� = � � −� � � �=� � con 𝑓𝑓(20.4119, 3.16476) = −341.649
𝑦𝑦 3.78873 −5 120.188 16.7297 3.16476

Resumen de resultados:

k 𝒙𝒙𝒌𝒌 𝒚𝒚𝒌𝒌 𝒇𝒇(𝒙𝒙𝒌𝒌 , 𝒚𝒚𝒌𝒌 ) 𝒅𝒅𝒅𝒅(𝒙𝒙𝒌𝒌 , 𝒚𝒚𝒌𝒌 )/𝒅𝒅𝒅𝒅 𝒅𝒅𝒅𝒅(𝒙𝒙𝒌𝒌 , 𝒚𝒚𝒌𝒌 )/𝒅𝒅𝒅𝒅
0 2 2 - 66 -31 14
1 21.9718 3.78873 -307.02 0 16.7297
2 20.4119 3.16476 −341.649 -0.00005 99.6819
3 20.0235 3.00941 −342.996 -0.00005 0.901971
4 20.0001 3.00003 -343 0.00005 0.00274
Se calcula el error en la cuarta iteración obteniéndose:

|(𝑓𝑓(𝑥𝑥 4 ) − 𝑓𝑓(𝑥𝑥 3 ))/𝑓𝑓(𝑥𝑥 4 )| = 1.2 ∗ 10−5 < 10−4

Por lo que los cálculos convergen en cuatro iteraciones. Se sustituye el valor de 𝑦𝑦 en la Hessiana y se obtiene que los
determinantes menores son positivos por lo que el valor encontrado corresponde a un mínimo.

36