conjugateg.m
来自「共轭梯度法」· M 代码 · 共 29 行
M
29 行
function [b1,k]=conjugateG(x0,y0)
esp=1*10^(-6);
k=0;
b0=zeros(2,1);
b0(1,1)=x0;
b0(2,1)=y0;
b1=zeros(2,1);
g_aim=zeros(2,1);
g_aim=gradient(x0,y0);
while(norm(g_aim)>esp&k<10)
if k==0
g_aim=gradient(x0,y0);
p0=-g_aim;
%t=(norm(g_aim))^2/(p0'*p0);
%b1=b0+t*p0;
b1=erfenfa(x0,y0,p0);
else
g_aim=gradient(b1(1,1),b1(2,1));
g_aim0=gradient(b0(1,1),b0(2,1));
betal=(norm(g_aim))^2/(norm(g_aim0))^2;
p=-g_aim+betal*p0;
% t=(norm(g_aim))^2/(p'*p);
% b0=b1;
b1=erfenfa(b1(1,1),b1(2,1),p);
b0=b1;
p0=p;
end
k=k+1;
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?