声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2277|回复: 0

[编程技巧] 最优化牛顿法求极值的问题!求助!

[复制链接]
发表于 2006-7-14 12:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
:L最优化牛顿法求极值的问题!
g为f的梯度,h为hessian阵,原理即为x(k+1)=x(k)-h^(-1)*g  用其迭代!我迭代一次的结果是对的,但再往下就不对了,迭代不出结果!还有迭代的终止条件应选什么?麻烦帮我看一看!
clear
f='100*(x2-x1^2)^2+(1-x1)^2';
x0=[-1.2 ;1];
n=2;
k=0;
ee=1e-6;
xx=sym(x0);
for i=1:1:n
    xx(i)=sprintf('x%d',i);
   df(i)=diff(f,xx(i));
end
h=[diff(df(1),xx(1))  diff(df(1),xx(2));diff(df(2),xx(1))  diff(df(2),xx(2))];
g=[df(1) ;df(2)];
%while(1)   
for j=1:10
      k=k+1;
      for i=1:1:n
        h=subs(h,xx(i),x0(i));
      end
      for i=1:1:n
        g=subs(g,xx(i),x0(i));
      end
      x1=x0-inv(h)*g;
      for i=1:2
          f=subs(f,xx(i),x1(i));
      end
      if norm(f)<ee
          break
      end
      x0(1)=x1(1);
      x0(2)=x1(2);
      disp([k,vpa(x1(1),6),vpa(x1(2),6),vpa(f,6)]);
      
end
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-25 09:29 , Processed in 0.051740 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表