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
   437   438   439   440   441   442   443   444   445   446   447