function [x0,val,k]=lsnCG(x0,m,n,t)
s=zeros(t,m);
y=zeros(t,m);
kmax=2000;
epsilon=1e-05;
for k=1:kmax
r0=gfun(x0,n); %梯度方向
if norm(r0)<epsilon
break;
end
if k==1
p0=-r0;
elseif k<=m
H0=s(:,k-1)'*y(:,k-1)/(y(:,k-1)'*y(:,k-1))*eye(t,t);
[p0]=LM(r0,s,y,m,H0,k); %方向
p0=-p0;
else
H0=s(:,m)'*y(:,m)/(y(:,m)'*y(:,m))*eye(t,t);
[p0]=LM(r0,s,y,m,H0,k); %方向
p0=-p0;
end
alph=0.5;
rho=1/4;
sigma=0.5;
jmax=200;
f0=fun0(x0,n);
for j=1:jmax % armijo搜索步长
x1=x0+alph*p0;
if (fun0(x1,n)<=f0+sigma*r0'*alph*p0)
break;
else
alph=alph*rho;
end
end
gfun1=gfun(x1,n);
if k<=m
s(:,k)=x1-x0;
y(:,k)=gfun1-r0;
else
for i=1:min(m-1,k-1)
s(:,i)=s(:,i+1);
y(:,i)=y(:,i+1);
end
s(:,m)=x1-x0;
y(:,m)=gfun1-r0;
end
x0=x1;
end
val=fun0(x0,n);
val=double(val);
end
没有合适的资源?快使用搜索试试~ 我知道了~
有限记忆算法_用于处理大规模算法_算法原理为把不断迭代的牛顿矩阵分解并部分抵消达到减少运算量_matlab
共6个文件
m:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 7 浏览量
2022-03-31
14:21:17
上传
评论
收藏 2KB RAR 举报
温馨提示
【达摩老生出品,必属精品,亲测校正,质量保证】 资源名:有限记忆算法_用于处理大规模算法_算法原理为把不断迭代的牛顿矩阵分解并部分抵消达到减少运算量_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有一定经验的开发人员
资源推荐
资源详情
资源评论
收起资源包目录
有限记忆算法_用于处理大规模算法_算法原理为把不断迭代的牛顿矩阵分解并部分抵消达到减少运算量_matlab.rar (6个子文件)
L-BFGS
test.m 120B
hessi.m 244B
fun0.m 124B
gfun.m 199B
LM.m 744B
lsnCG.m 1KB
共 6 条
- 1
资源评论
阿里matlab建模师
- 粉丝: 3724
- 资源: 2812
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功