Page 443 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 443

15.3  OPTIMIZACIÓN CON BIBLIOTECAS Y PAQUETES DE SOFTWARE        419

                                         Un conjunto completo de parámetros se encuentra llamando a “Help” (Ayuda)
                                            >> Help optimset



                         EJEMPLO 15.6    Uso de MATLAB para optimización multidimensional

                                         Planteamiento del problema.  Con la función fminsearch de MATLAB encuentre el
                                         máximo de
                                            f (x, y) = 2xy + 2x – x  – 2y 2
                                                             2
                                         Utilice como valores iniciales x = –1 y y = 1. Recuerde que en el capítulo 14 se utilizaron
                                         varios métodos para resolver este problema para x = 2 y y = 1 con f(x, y) = –2.

                                         Solución.  Primero debemos crear un archivo M para retener la función:

                                            function f=fxy(x)
                                            f = –(2*x(1)*x(2)+2*x(1)–x(1)^2–2*x(2)^2)
                                         Puesto que nos interesa la maximización, introducimos el negativo de la función. Después
                                         llamamos la función fminsearch con
                                            >> x=fminsearch(‘fxy’,[–1,1])

                                         El resultado es

                                            f =
                                                –2.0000
                                            x =
                                                  1.9999     1.0000

                                            Igual que con fminbnd, se pueden agregar argumentos en orden para especificar
                                         parámetros adicionales en el proceso de optimización. Por ejemplo, la función optimset
                                         se utiliza para limitar el número máximo de iteraciones
                                            x=fminsearch(‘fxy’,[–1,1],optimset(‘MaxIter’,2))

                                         obteniéndose como resultado

                                            f =
                                                7.0025
                                            Exiting: Maximum number of iterations has been exceeded
                                                      – increase MaxIter option.
                                                     Current function value: 7.000000
                                            x =
                                                –1    1
                                         Debido a que hemos fijado límites muy estrictos a las iteraciones, la optimización ter-
                                         mina bien antes de que se alcance el máximo.





                                                                                                         6/12/06   13:56:06
          Chapra-15.indd   419
          Chapra-15.indd   419                                                                           6/12/06   13:56:06
   438   439   440   441   442   443   444   445   446   447   448