根据以上参考资料和已有知识,可以使用fminsearch、fminbnd、fmincon等函数来解决数值优化问题。其中,fminbnd适用于单变量无约束的最优化问题;而fminsearch适用于多变量无约束的最优化问题。对于多变量有约束的最优化问题,可以使用fmincon函数。在使用之前,需要根据具体问题选择合适的函数,并且根据函数的语法规则进行正确的调用。如果具体问题语法不太懂,可以查阅参考资料或者寻求专业的帮助。下面给出一个fminbnd的例子,用于查找单变量函数在定区间上的最小值:
function f = scalarobjective(x)
f = 0;
for k = -10:10
f = f + (k+1)^2*cos(k*x)*exp(-k^2/2);
end
end
options = optimset('Display','iter','PlotFcns',@optimplotfval);
[x,fval,exitflag,output] = fminbnd(@scalarobjective,1,3,options);
其中,scalarobjective函数表示要求解的单变量函数,options是优化函数的设置,包括打印迭代过程和画图等可视化操作。fminbnd()
函数会打印出每次搜索到的x
以及对应的函数值fval
,最终输出x
和对应的函数值的最小值fval
。