📄 bfs.m
字号:
%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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -