Page 442 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 442
418 OPTIMIZACIÓN RESTRINGIDA
EJEMPLO 15.5 Uso de MATLAB para la optimización unidimensional
Planteamiento del problema. Utilice la función fminbnd de MATLAB para encontrar
el máximo de
fx() = 2 sen x − x 2
2
en el intervalo x = 0 y x = 4. Recuerde que en el capítulo 13 empleamos varios métodos
l u
para resolver este problema para x = 1.7757 y f(x) = 1.4276.
Solución. Primero, necesitamos crear un archivo M para la función.
function f=fx(x)
f = –(2*sin(x)–x^2/10)
Como lo que nos interesa es la maximización, introducimos el negativo de la función.
A continuación llamamos a la función fminbnd con
>> x=fminbnd(‘fx’,0,4)
El resultado es
f =
–1.7757
x =
1.4275
Observe que se pueden incluir más argumentos. Una adición útil es establecer op-
ciones de optimización, tales como tolerancia de error o máximo de iteraciones. Esto se
hace con la función optimset, que se utilizó previamente en el ejemplo 7.6 y que tiene el
formato general
optimset(‘param ’,value ,’param ’,value ,...)
1 1 2 2
donde param es un parámetro que especifica el tipo de opción y value es el valor asig-
i i
–2
nado a esa opción. En el ejemplo si se quiere establecer la tolerancia de 1 × 10 ,
optimset(‘TolX’,le–2)
De esta manera la solución del presente problema con una tolerancia de 1 × 10 se ge-
–2
nera con
>> fminbnd(‘fx’,0,4,optimset(‘TolX’,le–2))
cuyo resultado es
f =
–1.7757
ans =
1.4270
6/12/06 13:56:06
Chapra-15.indd 418 6/12/06 13:56:06
Chapra-15.indd 418

