//阻尼牛顿法
function [k,x,val] = dampnm(fun,gfun,hess,x0,epsilon)
maxk = 5000;
beta = 0.5;
sigma = 0.4;
k = 0;
while(k<maxk)
gk = feval(gfun,x0);
Gk = feval(Hesse,x0);
dk = -Gk\gk;%解方程组,计算搜索方向
if(norm(gk)<epsion)
break;
end
while(m<20)
if(feval(fun,x0+beta^m*k)<=feval(fun,x0)x0+sigma*beta^m*gk'*dk)
mk = m;
break;
end
m=m+1;
end
x0 = x0+beta^m*dk;
k=k+1;
end
x=x0;
val = feval(fun,x);
最优化方法 阻尼牛顿法
最新推荐文章于 2022-07-11 22:08:25 发布