admin管理员组文章数量:1794759
外点罚函数法的matlab编程与使用
一 函数使用说明
外点罚函数penalty(fun,g,h,x0),可以用来求解含有非线性不等式和等式约束的优化问题。在调用函数时首先需要用户新建三个函数即目标函数,不等式约束和等式约束,然后输入penalty(@fun,@g,@h,x)即可,fun,g,h为用户自己定义的三个函数的名称,x为初始点坐标。
二 主函数说明penalty(x)函数主要利用外点罚函数法来对目标函数进行优化,首先根据用户给出的三个函数(fun(x),g(x),h(x))构造一个新的函数TextF(x),即 TextF(x)=fun(x)+r ( ∑_(j=1)^m▒〖max[0,g_j (x)]^2 〗 + ∑_(k=1)^l▒〖[h_k (x)]^2 〗 )。 根据经验值确定罚因子r0=1,权数c=5,精度0.001。每次迭代都由本轮的r值得出一个最优点(使用鲍威尔法),当步长足够小时结束迭代,当r大于障碍数R时,令r=Inf,再进行一次迭代后结束迭代,结束迭代后返回当前x和fx。
三 子函数说明fun函数为用户输入的目标函数。 g函
版权声明:本文标题:外点罚函数法的matlab编程与使用 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686493277a73681.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论