【Algorithm】一般约束优化问题——PHR算法及其Matlab实现

Matlab 源码,function前一行表文件名:

  1 multphr.m
  2 function [x, mu, lambda, output] = multphr(fun, hf, gf, dfun, dhf, dgf, x0)
  3 maxk=500; sigma=2; eta=2; theta=0.8; epsilon=1e-5; k=0; ink=0;
  4 x=x0; he=feval(hf, x); gi=feval(gf, x); l=length(he); m=length(gi);
  5 
  6 mu=0.1*ones(l,1); lambda=0.1*ones(m,1);
  7 btak=10; btakold=10;
  8 
  9 while btak>epsilon && k<maxk
 10     [x, ~, ik] = bfgs('mpsi', 'dmpsi', x0, fun, hf, gf, dfun, dhf, dgf, mu, lambda, sigma);
 11     ink = ink+ik;
 12     he=feval(hf, x); gi=feval(gf, x);
 13     btak=0;
 14     for i=1:l 
 15         btak=btak+he(i)^2;
 16     end
 17     for i=1:m
 18         btak=btak+min(gi(i), lambda(i)/sigma)^2;
 19     end
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值