通常在使用Matlab优化工具箱中的函数时,需要根据不同要求修改优化选项,例如最大迭代次数、x处的终止容限等等。可通过 optimset 语句来修改优化选项参数:
options=optimset(‘optionName’,’optionValue’);如:
options=optimset('tolx',1e-100);
options=optimset(options,'tolfun',1e-100);
后面还可以依此法添加很多选项信息。
下面举一个完整例子:求取f=4*x(1)^2+5*x(1)*x(2)+2*x(2)^2的最小值
----------------------------------------function [f,g]=ff3(x)
f=4*x(1)^2+5*x(1)*x(2)+2*x(2)^2;
if nargut >1
g(1)=8*x(1)+5*x(2);
g(2)=5*x(1)+4*x(2);
end
通过下面将优化选项结构options.GradObj设置为’on’来得到梯度值。
options=optimset(‘Gradobj’,’on’);
x0=[1,1];
[x,fval,exitflag]=fminunc(@ff3,x0,options)
---------------------------------------------------------------------------------------------
Options的参数描述(OPTIMSET):