Matlab优化方法
一、求无约束多变量(多元)极小值非线性优化问题有fminsearch和fminunc
fminsearch利用了单纯形法的原理
fminunc利用了拟牛顿法的原理
这两个函数都容易陷入局部优化,并且结果的正确与否还要取决 于初值点x0的选取。
1 fminsearch
[x,fval,exitflag,output] = fminsearch(…)
结构输出output,包含最优化函数的信息:output.algorithm 使用的优化算法,output.funcCount 函式计算(评价)次数,output.iterations 迭代次数,output.message 退出信息
exitflag值来表示fminsearch退出的条件:1–函数找到结果x,0–函数最大评价次数达到,或者是迭代次数达到(评价次数=迭代次数*参数个数),-1–算法由外部函数结束
fval:在结果x处的目标函数的函数值
x:解(可以为向量或者矩阵)
2 fminunc
[x,fval,exitflag,output,grad,hessian] = fminunc(… )
hessian:解x的海森(Hessian)矩阵
grad:解x处的梯度
exitflag:退出标志:大于0时表