x0为初始值;
A、b满足线性不等式约束 ,若没有不等式约束,则取A=[ ],b=[ ];
Aeq、beq满足等式约束 ,若没有,则取Aeq=[ ],beq=[ ];
lb、ub满足 ,若没有界,可设lb=[ ],ub=[ ];
nonlcon的作用是通过接受的向量x来计算非线性不等约束 和等式约束 分别在x处的估计C和Ceq,通过指定函数柄来使用,如:>>x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon),先建立非线性约束函数,并保存为mycon.m:function [C,Ceq] = mycon(x)
C = …
% 计算x处的非线性不等约束 的函数值。
Ceq = …
% 计算x处的非线性等式约束 的函数值。
lambda是Lagrange乘子,它体现哪一个约束有效。
output输出优化猜陪首信息;
grad表示目标函数在x处的梯度;
hessian表示目标函数在x处的Hessiab值。
注意穗数:
1. fmincon 函数提供了大型优化算法和中型优化算法。默认时,若在 fun 函数中提供了梯度(options 参数的 GeadObj 设置为 'on'),并且只有上下界存在或只有等式约束,fmincon 函数将选择大型算法。 当既有等式约束又有梯度约束时,使用中型算法。
2. fmincon 函数的中型算法一般是使用序列二次规划。乱敏在每一步迭代中求解二次规划子问题,并用 BFGS 法更新 Lagrangian 乘子和 Hessian 矩阵。
3. fmincon 函数的大型算法采用了subspace trust region 优化算法。这种算法是把目标函数在点x的邻域泰勒展开(x可以认为是人为提供的初始猜测),这个展开的邻域就是所谓的trust region,泰勒展开进行到二阶项为止。
4. fmincon 函数可能会给出局部最优解,这与初始值的选取有关。
matlab最优化程序包括无约束一维极值问题 进退法 黄金分割法 斐波那契法 牛顿法基本牛顿法 全局牛顿法 割线法 抛物线升渣销法 三次插值法 可接受搜索法 Goidstein法 Wolfe.Powell法
单纯形搜索法 Powell法 最速下降法 共轭梯度法 牛顿梁返法 修正牛顿法 拟牛顿法 信赖域法 显式最速下降法, Rosen梯度投影法 罚函数法 外点罚函数法
内点罚函数法 混合罚函数法 乘子法 G-N法 修正G-N法 L-M法 线性规划 单纯形法 修正单纯形法 大M法 变量有界单纯形法 整数规划 割平面法 分支定界法 0-1规划 二次规划
拉格朗曰法 起作用集算法 路径跟踪法 粒子群优化算法 基本粒子群算法 带压缩因子的粒子群吵游算法 权重改进的粒子群算法 线性递减权重法 自适应权重法 随机权重法
变学习因子的粒子群算法 同步变化的学习因子 异步变化的学习因子 二阶粒子群算法 二阶振荡粒子群算法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)