梯度下降法三

来源:互联网 发布:mac开机选择用户 编辑:程序博客网 时间:2024/05/01 09:00

       步长:微分法   另外还有一种方法是判断Hesses是否正定

       源码:

%梯度下降法%求步长的第二种思路(微分法)的第二种使用x=[0;3]; error=10^(-1);k=0;flag=0;syms x1 x2 t m % 目标函数 %%f=(x1-2)^2+2*(x2-1)^2;%f=x1-x2+2*x1^2+2*x1*x2+x2^2;f=(x1-2)^4+(x1-2*x2)^2;d=[diff(f,x1);diff(f,x2)];  %% 下降方向 %%while flag==0        temp=subs(d,x1,x(1));        temp=subs(temp,x2,x(2));        tt=sqrt(temp(1)^2+temp(2)^2);        tt=double(tt);                if tt>error            p=-temp;            y=x+t*p;            min=subs(f,x1,y(1));            min=subs(min,x2,y(2));            g=diff(min,t);            h=solve(g);            h=double(h);            x=x+h(1)*p;            k=k+1;            else            k            x=double(x)            flag=1;        endend    

结果:

k =     9x =    2.2680    1.1432


 

原创粉丝点击