bfs.m
来自「多变量寻优的源码」· M 代码 · 共 49 行
M
49 行
%BFS法
%允许迭代的最大次数M,变量数N,
%x0=[-3;-1;-3;-1];
x0=[-100;10;-10;20];
I=eye(4);
H1=I;
x1=x0;
M=2000;
e=0.0001;
df1=1;
M=2000;
tic
for i=1:M
df1=dfm(x1);
if norm(df1)<e
break;
end
s=-H1*dfm(x1);
a=fpart618(x1,s);
x2=x1+a*s;
g=dfm(x2)-dfm(x1);
x3=x2-x1;
x1g=x3'*g;
xg1=x3*g';
A=(x3*x3')/x1g;
B=xg1/x1g;
H2=(I-B)*H1*(I-B)'+A; %H矩阵一定时对称的
%H2=(I-xg1/x1g)*H1*(I-xg1/x1g)+xg1/x1g error
%H2=(I-xg1/x1g)*H1*(I-xg1/x1g)+(x3*x3')/x1g right
x1=x2;
H1=H2;
end
i
x1
fm(x1)
toc
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?