变尺度.txt
来自「约束最优化方法--最速下降法(也叫梯度法)」· 文本 代码 · 共 40 行
TXT
40 行
syms x1 x2 gk gk2 Gk sk sk2 ak xk xk1 xk2 n i amin zhi
f=x1^2+x2^2+x1*x2; %%原函数
g=jacobian(f); %%梯度
x1=3;x2=-1;
xk=[3,-1]';
n=2;
i=0;
gk=subs(g);
gk=gk';
xk2=xk;
Hk=[1,0;0,1];
sk=(-Hk)*gk;
while(n>0.001)
i=i+1
gk2=gk;
temp=xk;
%%%%%%%%%%%%%%%%%%%%%%%%%%线性搜索步长因子
xk2=xk2+ak*sk;
x1=xk2(1);x2=xk2(2);
fk=subs(f);
fk=inline(fk);
[amin]=fminsearch(fk,0);
%%%%%%%%%%%%%%%%%%%%%%%%%求出X(k+1)
xk=xk+amin*sk;
xk2=xk;
x1=xk(1);x2=xk(2);
gk=subs(g);
gk=gk';
%%求下降方向
dk=xk-temp;
rk=gk-gk2;
Hk=Hk+(1+(rk'*Hk*rk)/(dk'*rk))*((dk*dk')/(dk'*rk))-(dk*rk'*Hk+Hk*rk*dk')/(dk'*rk);
sk=-Hk*gk;
%%Input out the MinPoin and the Norm
n=norm(gk,2);
Xk=xk
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?