Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

fminunc minimización sin restricciones

Considere el problema de encontrar un conjunto de valores [x1,x2] que resuelve

minxf(x)=ex1(4x12+2x22+4x1x2+2x2+1).(1)

Para resolver este problema bidimensional, escriba un archivo que devuelva el valor de la función. A continuación, invoque la rutina de minimización sin restricciones.fminunc

Paso 1: escribe un archivo objfun. m.

Este código se suministra con la caja de herramientas. Para ver, escriba:type objfun

function f = objfun(x) f = exp(x(1)) * (4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) + 2*x(2) + 1);

Paso 2: establecer opciones.

Configure las opciones para utilizar el algoritmo.'quasi-newton' Configure las opciones porque el algoritmo requiere que la función objetiva incluya un degradado.'trust-region' Si no establece las opciones, entonces, dependiendo de su versión, puede emitir una advertencia.MATLAB®fminunc

options = optimoptions(@fminunc,'Algorithm','quasi-newton');

Paso 3: invocar fminunc utilizando las opciones.

x0 = [-1,1]; % Starting guess [x,fval,exitflag,output] = fminunc(@objfun,x0,options);

Esto produce la siguiente salida:

Local minimum found.  Optimization completed because the size of the gradient is less than the default value of the optimality tolerance.

Vea los resultados, incluida la medida de optimalidad de primer orden en la estructura.output

x,fval,exitflag,output.firstorderopt
x =      0.5000   -1.0000   fval =     3.6609e-16   exitflag =       1   ans =     7.3704e-08

El indica si el algoritmo convergió. significa que se encontró un mínimo local.exitflagexitflag = 1 Los significados de exitflags se dan en las páginas de referencia de función.

La estructura proporciona más detalles sobre la optimización.output Para, incluye el número de iteraciones en, el número de evaluaciones de función en, el tamaño de paso final en, una medida de optimalidad de primer orden (que en este caso sin restricciones es la norma de infinito del degradado en la solución) en, el tipo de algoritmo utilizado i n, y el mensaje de salida (la razón por la que el algoritmo se detuvo).fminunciterationsfuncCountstepsizefirstorderoptalgorithm

Ejemplos relacionados

Más acerca de