• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: Matlab
  • 标签:

资源简介

无约束最优化:主要是共轭梯度法和拟牛顿法中DFP方法,很简单的程序。清晰易懂。初学者使用。

资源截图

代码片段和文件信息

function alpha=conjugate(fa1b1xkdkepsM)
%alpha 为单峰函数g(x)=f(xk+x*dk)在[a1b1]的最小值点,eps为精度要求,M为迭代次数控制.
%用于求精确步长的黄金分割法,参数传递有改动
if nargin==5
    eps= 1.0e-10;
    M  = 200;
elseif nargin<5
    error
    return
elseif nargin==6
    M=200;
end

xsize=size(xk);
if xsize(1)==1
    xk=xk‘
end
xsize=size(dk);
if xsize(1)==1
    dk=dk‘
end


tau=(sqrt(5)-1)/2;
tau1=1-tau;
a=a1;
b=b1;
lambda=a+tau1*(b-a);
mu=a+tau*(b-a);
flambda=feval(fxk+lambda*dk);
fmu=feval(fxk+mu*dk);

for k=1:1:M
    if flambda>fmu
        if abs(b-a)<=eps
            alpha=mu;
            return;
        else
            a=lambda;
            b=b;
            lambda=mu;
            flambda=fmu;
            mu=a+tau*(b-a);
            fmu=feval(fxk+mu*dk);
        end
    else
        if abs(mu-a)<=eps
            alpha=lambda;
            return;
        else
            a=a;
            b=mu;
            mu=lambda;
            fmu=flambda;
            lambda=a+tau1*(b-a);
            flambda=feval(fxk+lambda*dk);
        end
    end
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1128  2008-05-20 10:46  conjugate.m

     文件        913  2005-10-31 20:28  conjugategrad.m

     文件        964  2005-10-31 20:44  DFP.m

----------- ---------  ---------- -----  ----

                 3005                    3


评论

共有 条评论

相关资源