?? randsearch.m
字號:
%HJ模式搜索的改進版
%主要改進在于對好點的搜索,模式移動不變
%改進,即使記錄變化的量
%采用隨機產生點來,搜索‘好點’
x0=[-3;-1;-3;-1]; %初始點
n=4; %參數個數n
%E=eye(n); %搜索方向
x=zeros(n,2*n); %搜索點
y=zeros(1,2*n); %d對應搜索點的值
h=1; %初始步長
l=1; %作為點間距離
yc=1; %初始值,
as=1.618; %步長放大因子
af=0.618;
a=1;
m=0;
x1=x0;
e=0.00000001; %截至精度
M=200; %最大迭代次數
%best=0
%better=0
tic
for k=1:M
d=rand(n,1)-0.5; %隨機產生1個點
x1=x0+a*d;
y1=fm(x1);
y0=fm(x0);
if y1<y0
y=x0+a*(x1-x0);
yy=fm(y);
if yy<y0
a=a*as;
l=norm(y-x0);
yc=abs(yy-y0);
x0=y;
end
else
m=m+1;
if m>3*n
a=a*af;
m=0;
end
end
if (l<e|yc<e)
break;
end
end
tic
ybest
xbest
k
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -