- 53
- 0
- 约3.46千字
- 约 68页
- 2019-11-28 发布于山东
- 举报
第六章 非线性规划 多维约束非线性优化 求解方法 解有约束非线性规划的方法分类 将约束合并到目标函数中,问接地加以处理,把有约束的非线性规划问题转化为一个无约束的非线性规划问题,然后再用无约束问题的方法求解,例如惩罚函数法、碰壁函数法、广义乘子法等均属于此类解法。 利用适当调整搜索方向和步长把无约束方法推广到有约束问题去,即以直接方式处理约束。但在迭代过程中时时考虑到迭代点的位置不要超出约束约束函数的允许范围(即不要越出可行域),例如可行方向法、梯度投影法、既约梯度法等均属于此类解法。 利用线性函数逼近方法,把非线性规划问题归结为解一系列线性规划问题。把非线性问题转化为线性问题是常用方法之一。 拉格朗日乘子法 等式约束下的拉格朗日乘子法 拉格朗日乘子法 拉格朗日乘子法 例1 求解非线性规划问题 拉格朗日乘子法 不等式约束下的拉格朗日乘子法 拉格朗日乘子法 拉格朗日乘子法 例2 用拉格朗日乘子法求解非线性规划问题 拉格朗日乘子法 序列无约束极小化法 概述 外点罚函数法 惩罚项定义 外点罚函数法 惩罚函数 惩罚因子的取法 关于惩罚因子的取法,根据计算经验可以选取: 外点罚函数法 计算步骤 外点罚函数法 收敛性分析 外点罚函数法 例1 外点罚函数法 外点罚函数法 内点障碍函数法 障碍项定义 内点障碍函数法 内点障碍函数法 内点障碍函数法 迭代步骤 内点障碍函数法 例1 混合惩罚函数法 外点罚函数法和内点障碍函数法的比较 由表可以看出,外点法和内点法各有优缺点并有不同的适用范围。因此,可以将两者结合起来使用,对于具有等式和不等式两种约束的非线性规划问题,在给出之后,对等式约束和不能满足的不等式约束使用惩罚函数,对可以满足的不等式约束使用障碍函数。 混合惩罚函数法 混合法的目标函数 混合惩罚函数法 混合惩罚函数法 迭代步骤 近似规划法 近似规划法 例1 近似规划法 多维约束优化的MATLAB求解 多维约束优化的MATLAB求解 调用格式 x = fmincon(fun,x0,A,b) x = fmincon(fun,x0,A,b,Aeq,beq) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) x = fmincon(problem) [x,fval] = fmincon(...) [x,fval,exitflag] = fmincon(...) [x,fval,exitflag,output] = fmincon(...) [x,fval,exitflag,output,lambda] = fmincon(...) [x,fval,exitflag,output,lambda,grad] = fmincon(...) [x,fval,exitflag,output,lambda,grad,hessian] = fmincon(...) 多维约束优化的MATLAB求解 输入参数和输出参数 多维约束优化的MATLAB求解 求解算法选择 有效集算法 并不使用用户提供的有关Hessian矩阵的信息,而是利用拟牛顿法取Hessian矩阵的近似值。 基于映射牛顿法的置信域算法 使用用户提供目标函数的Hessian矩阵的解析形式,该解析形式由目标函数的第三个输出参数给出。由于该算法的约束形式仅限于边界约束和线性约束,故其在拉格朗日乘子处的Hessian矩阵和目标函数的Hessian矩阵形式相同。通过下述命令使得fmincon在求解过程中使用Hessian矩阵的解析形式 options = optimset(Hessian,user-supplied); 如果不设置该参数,则算法采用有限差分近似。 内点算法 使用用户提供的Hessian矩阵的信息,但是方式和置信域算法不同,它不是由目标函数的第三个输出参数得到,而是需要建立单独的描述Hessian矩阵的文件,文件的形式为:hessian = hessianfcn(x, lambda) 如果最优化问题的设计变量是n维列向量,则hessian是一个n维方阵,稀疏形式或者稠密形式均可。lambda是非线性约束的拉格朗日乘子结构变量,它是与最优化问题的非线性约束相关的向量,其中包含:lambda.ineqnonlin和lambda.eqnonlin options = optimset(Hessian,user-supplied,.He
原创力文档

文档评论(0)