Optimizar una función usando simulannealbnd, basado en problemas
Este ejemplo muestra cómo minimizar una función utilizando recocido simulado en el enfoque basado en problemas cuando el objetivo es un archivo de función, posiblemente de contenido desconocido (una función de "caja negra"). La función para minimizar, dejong5fcn(x), está disponible cuando ejecuta este ejemplo. Represente la función.
dejong5fcn

Cree una variable de optimización x en 2D. La función dejong5fcn espera que la variable sea un vector de fila, así que especifique x como un vector de fila de 2 elementos.
x = optimvar("x",1,2);Para utilizar dejong5fcn como función objetivo, convierta la función en una expresión de optimización utilizando fcn2optimexpr.
fun = fcn2optimexpr(@dejong5fcn,x);
Cree un problema de optimización con la función objetivo fun.
prob = optimproblem("Objective",fun);Establezca límites variables de –50 a 50 en todos los componentes. Cuando se especifican límites escalares, el software expande los límites a todas las variables.
x.LowerBound = -50; x.UpperBound = 50;
Establezca un punto inicial pseudoaleatorio dentro de los límites. El punto inicial es una estructura con el campo x.
rng default % For reproducibility x0.x = x.LowerBound + rand(size(x.LowerBound)).*x.UpperBound;
Resuelva el problema, especificando el solucionador simulannealbnd.
[sol,fval] = solve(prob,x0,"Solver","simulannealbnd")
Solving problem using simulannealbnd. simulannealbnd stopped because the change in best function value is less than options.FunctionTolerance.
sol = struct with fields:
x: [-32.0371 -31.8792]
fval = 0.9980
Consulte también
simulannealbnd | fcn2optimexpr | solve