怎么进行一位精确搜索
fminbnd 这里不会写了%用最速下降法求解问题;
eps=0.1; %给出误差线;
p=[];
syms y z lamd
f=exp(y^2+z^2-y*z)*cos(y+z);
grd=jacobian(f,);
x=;%给出起始点;
X=subs(grd,,x); %计算x点出的梯度;
XX=sqrt(X(1)^2+X(2)^2); %x的模;
if XX<=eps;
disp('所求点为x=');
disp(x);
else
for k=1:20;
p=-X./XX;
H=subs(f,,x+lamd*p);
%求解最优步长lamd是关键问题;
lamd=fminbnd(@(lamd),myfun(lamd,x),0,1);
x=x+lamd*p
X=subs(grd,,x);
XX=sqrt(X(1)^2+X(2)^2); %x的模;
if XX<=eps;
disp('所求点为x=');
disp(x);
end
end
end
页:
[1]