请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

最优化作业 共轭梯度法 matlab代码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
syms f x1 x2 
f=(1/2)*x1^2+x2^2;
x=[2;1];
a=[1 0;0 2];% A
g1=diff(f,x1);
g2=diff(f,x2);
g=[g1;g2];%导数

%            x1
g11=subs(g1,{x1,x2},{x(1) x(2)});
g22=subs(g2,{x1,x2},{x(1) x(2)});
g=[g11;g22]
d=-g;
d11=subs(d(1),{x1,x2},{x(1) x(2)});
d22=subs(d(2),{x1,x2},{x(1) x(2)});
d=[d11;d22]
af=(-g\'*d)/(d\'*a*d)
x=x+af*d
g11=subs(g1,{x1,x2},{x(1) x(2)});
g22=subs(g2,{x1,x2},{x(1) x(2)});
g=[g11;g22]
%             x1

e=0.1;%精度
%共轭梯度
for i=1:2
    if g==0
        disp(\'x\')
        x
        break
    else
        
   
        b=(g\'*a*d)/(d\'*a*d)%β
        d=-g+b*d;
        
        d11=subs(d(1),{x1,x2},{x(1) x(2)});
        d22=subs(d(2),{x1,x2},{x(1) x(2)});
        d=[d11;d22]
        
        af=(-g\'*d)/(d\'*a*d)%步长α
        
        x=x+af*d
        
        g11=subs(g1,{x1,x2},{x(1) x(2)});
        g22=subs(g2,{x1,x2},{x(1) x(2)});
        g=[g11;g22]
    end
end

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi连接sql数据库怎么判断连接是否成功呢发布时间:2022-07-18
下一篇:
解决Delphi自带UTF8解码缺陷(使用API)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap