El método de la sección áurea es un método para encontrar el extremo de una función real de una variable en un intervalo dado. El método se basa en el principio de división en segmentos en las proporciones de la sección áurea . Es uno de los métodos computacionales más simples para resolver problemas de optimización . Presentado por primera vez por Jack Kiefer en 1953.
Sea dada una función . Entonces, para encontrar el valor indeterminado de esta función en un segmento dado que cumpla con el criterio de búsqueda (que sea un mínimo ), el segmento en consideración se divide en proporción a la sección áurea en ambas direcciones, es decir, dos puntos son seleccionados y tales que:
, donde es la proporción de la sección áurea .De este modo:
Es decir, el punto divide el segmento en relación con la proporción áurea. Del mismo modo divide el segmento en la misma proporción. Esta propiedad se utiliza para construir un proceso iterativo.
El algoritmo está tomado del libro Numerical Methods de Matthews y Fink. Usando MATLAB.
La implementación de este algoritmo en F# , en el que se reutilizan los valores de la función objetivo:
Sea phi = 0 . 5 * ( 1 . 0 + sqrt 5 . 0 ) let minimice f eps a b = let rec min_rec f eps a b fx1 fx2 = si b - a < eps entonces 0 . 5 * ( a + b ) más sea t = ( b - a ) / phi sea x1 , x2 = b - t , a + t sea fx1 = haga coincidir fx1 con Some v -> v | Ninguno -> f x1 let fx2 = hacer coincidir fx2 con Some v -> v | Ninguno -> f x2 si fx1 >= fx2 entonces min_rec f eps x1 b ( Algunos fx2 ) Ninguno más min_rec f eps a x2 Ninguno ( Algunos fx1 ) min_rec f eps ( min a b ) ( max a b ) Ninguno Ninguno // Ejemplos de llamadas: minimizar cos 1 e - 6 0 . 0 6 . 28 |> printfn "%.10g" // = 3.141592794; la función f se llama 34 veces. minimizar ( divertido x -> ( x - 1 . 0 )** 2 . 0 ) 1 e - 6 0 . 0 10 . 0 |> printfn "%.10g" // = 1.000000145; la función f se llama 35 veces.Debido a que en asintótica , el método de la sección áurea se puede transformar en el llamado método del número de Fibonacci . Sin embargo, debido a las propiedades de los números de Fibonacci, el número de iteraciones está estrictamente limitado. Esto es conveniente si el número de posibles llamadas a la función se establece inmediatamente.
de optimización | Métodos|
---|---|
unidimensional |
|
orden cero | |
Primer orden | |
segundo orden | |
estocástico | |
Métodos de programación lineal | |
Métodos de programación no lineal |
proporción áurea | ||
---|---|---|
Figuras "doradas" | ||
Otras secciones |
| |
Otro |