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

15.3  OPTIMIZACIÓN CON BIBLIOTECAS Y PAQUETES DE SOFTWARE        421

                                         15.3.4 IMSL

                                         IMSL tiene varias subrutinas en Fortran para optimización (tabla 15.2). El presente
                                         análisis se concentrará en la rutina UVMID. Esta rutina localiza el punto mínimo de
                                         una función suave en una sola variable, mediante evaluaciones de la función y de las
                                         primeras derivadas.
                                            UVMID es implementado por la siguiente instrucción CALL:
                                            CALL UVMID (F, G, XGUESS, ERREL, GTOL, MAXFN, A, B, X, FX, GX)
                                         donde

                                            F =  FUNCIÓN suministrada por el usuario para calcular el valor de la función que
                                                va a minimizarse. La forma es F(X), donde X = punto donde se evalúa la fun-
                                                ción. (Entrada). X no deberá ser modificada por F. F = valor de la función
                                                calculado en el punto X. (Salida)
                                            G = FUNCIÓN suministrada por el usuario para calcular la derivada de la función,
                                                donde G = valor de la función calculado en el punto X. (Salida)
                                            F y G se deben declarar como EXTERNAL en el programa de llamado.
                                            XGUESS = Un valor inicial del punto mínimo de F. (Entrada)
                                            ERREL = Exactitud relativa requerida del valor final de X. (Entrada)
                                            GTOL = Tolerancia de la derivada usada para decidir si el punto actual es un míni-
                                                    mo. (Entrada)
                                            MAXFN = Número máximo permitido de evaluaciones de la función. (Entrada)
                                            A = Punto extremo inferior del intervalo en el cual se localizará el máximo. (Entrada)
                                            B = Punto extremo superior del intervalo en el cual se localizará el máximo. (Entrada)
                                            FX = Valor de la función en X. (Salida)
                                            GX = Valor de la derivada en X. (Salida)

                         EJEMPLO 15.7    Uso de IMSL para localizar un solo óptimo

                                         Planteamiento del problema.  Use UVMID para determinar el máximo de la función
                                         unidimensional resuelta en el capítulo 13 (recuerde los ejemplos del 13.1 al 13.3).
                                                         x  2
                                            f(x) = 2 sen x –
                                                         10
                                         Solución.  Un ejemplo de un programa principal en Fortran 90 y de una función usan-
                                         do UVMIF para resolver este problema se escribe así:

                                            PROGRAM Oned
                                            USE mimsl
                                            IMPLICIT NONE
                                            INTEGER::maxfn=50
                                            REAL::xguess=0., errel=1.E-6,gtol=1.E-6,a=–2.,b=2.
                                            REAL::x,f,g,fx,gx
                                            EXTERNAL f,g
                                            CALL UVMID(f,g,xguess,errrel,gtol,maxfn,a,b,x,fx,gx)
                                            PRINT *,x,fx,gx
                                            END PROGRAM




                                                                                                         6/12/06   13:56:07
          Chapra-15.indd   421
          Chapra-15.indd   421                                                                           6/12/06   13:56:07
   440   441   442   443   444   445   446   447   448   449   450