• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-10
  • 语言: Matlab
  • 标签: 乘子法  

资源简介

我的这个程序是基于MATLAB的乘子法程序,大家可以相互学习一下

资源截图

代码片段和文件信息

function [xmulambdaoutput]=multphr(funhfgfdfundhfdgfx0)
maxk=500;
sigma=2.0;
eta=2.0;theta=0.8;
k=0;ink=0;
epsilon=1e-5;
x=x0;
he=feval(hfx);
gi=feval(gfx);
n=length(x);
l=length(he);
m=length(gi);
mu=0.1*ones(11);
lambda=0.1*ones(m1);
btak=10;
btaold=10;
while(btak>epsilon & k    [xvik]=bfgs(‘mpsi‘‘dmpsi‘x0funhfgfdfundhfdgfmulambdasigma);
    ink=ink+ik;
    he=feval(hfx);
    gi=feval(gfx);
    btak=0.0;
    for(i=1:1)btak=btak+he(i)^2;
    end
    for(i=1:m)
        temp=min(gi(i)lambda(i)/sigma);
        btak=btak+temp^2;
    end
    btak=sqrt(btak);
    if btak>epsilon
        if(k>=2&btak>theta*btaold)
            sigma=eta*sigma;
        end
        for(i=1:1)mu(i)=mu(i)-sigma*he(i);
        end
        for(i=1

评论

共有 条评论

相关资源