1 / 7
文档名称:

最优化算法Matlab程序.pdf

格式:pdf   大小:211KB   页数:7页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

最优化算法Matlab程序.pdf

上传人:3144187108 2022/7/23 文件大小:211 KB

下载得到文件列表

最优化算法Matlab程序.pdf

文档介绍

文档介绍:CG 程序代码
function [x,y] = cg(A,b,x0)
%%%%%%%%%%%%%%%%%CG 算法%%%%%%%%%%%%
r0 = A*x0-b;
p0 = -r0;
k = 0;
y = g - gold;
hy = H*y;
sy = s'*y;
yhy = y'*hy;if sy<*yhy
theta = *yhy/(yhy-sy);
s = theta*s + (1 - theta)*hy;
sy = *yhy;
end
v = sqrt(yhy)*(s/sy - hy/yhy);
H = H + s*s'/sy - hy*hy'/yhy + v*v';
end
k = k + 1;
end

= f;
= k;
= funcN;
= norm(g);Newton-CG 程序代码
function [x,output] = newton_cg(fun,dfun,ddfun,x0)
%%%%%%%%%%%%%%优化 算法程序%%%%%%%%%%%%%%%%%
n = length(x0);
x = x0;
k = 1;
d(1,1:n) = zeros(1,n);
%%%%%%%%%循环开始,直至满足条件结束%%%%%%%%%%
while (norm(feval(dfun,x))>=10^-5)&&(k<20000)
epsi(k) = min(,sqrt(norm(feval(dfun,x))))*norm(feval(dfun,x));
z(1,1:n) = zeros(1,n);
B = feval(ddfun,x);
r(1,1:n) = feval(dfun,x)';
d(1,1:n) = -r(1,1:n);
p = zeros(1,n)';
for j=1:k %%%%%%%%寻找最优下降方向%%%%%%%%%
if d(j,1:n)*B*d(j,1:n)'<=0
if j==1
p = -r(k,1:n)';
break;
else
p = z(j,1:n)';
break;
end
end
alpha = r(j,1:n)*r(j,1:n)'/(d(j,1:n)*B*d(j,1:n)');
z(j+1,1:n) = z(j,1: