用matlab实现最速下降法,牛顿法和共轭梯度法求解实例

(5页)

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

19.90 积分

实验的题目和要求 1、所属课程名称:最优化方法2、实验日期:2010 年 5 月 10 日~2010 年 5 月 15 日3、实验目的掌握最速下降法,牛顿法和共轭梯度法的算法思想,并能上机编程实现相应的算法。二、实验要求用 MATLAB 实现最速下降法,牛顿法和共轭梯度法求解实例。四、实验原理最速下降法是以负梯度方向最为下降方向的极小化算法,相邻两次的搜索方向是互相直交的。牛顿法是利用目标函数 在迭代)(xf点 处的 Taylor 展开式作为模型函数,并利用这个二次模型函数的kx极小点序列去逼近目标函数的极小点。共轭梯度法它的每一个搜索方向是互相共轭的,而这些搜索方向 仅仅是负梯度方向 与上kdkg?一次接待的搜索方向 的组合。1?kd五.运行及结果如下:最速下降法:题目:f=(x-2)^2+(y-4)^2M 文件:function [R,n]=steel(x0,y0,eps)syms x;syms y;f=(x-2)^2+(y-4)^2;v=[x,y];j=jacobian(f,v);T=[subs(j(1),x,x0),subs(j(2),y,y0)];temp=sqrt((T(1))^2+(T(2))^2);x1=x0;y1=y0;n=0;syms kk;while (temp>eps)d=-T;f1=x1+kk*d(1);f2=y1+kk*d(2);fT=[subs(j(1),x,f1),subs(j(2),y,f2)]; fun=sqrt((fT(1))^2+(fT(2))^2);Mini=Gold(fun,0,1,0.00001);x0=x1+Mini*d(1);y0=y1+Mini*d(2);T=[subs(j(1),x,x0),subs(j(2),y,y0)];temp=sqrt((T(1))^2+(T(2))^2);x1=x0;y1=y0;n=n+1;endR=[x0,y0]调用黄金分割法:M 文件:function Mini=Gold(f,a0,b0,eps)syms x;format long;syms kk;u=a0+0.382*(b0-a0);v=a0+0.618*(b0-a0);k=0;a=a0;b=b0;array(k+1,1)=a;array(k+1,2)=b;while((b-a)/(b0-a0)>=eps)Fu=subs(f,kk,u);Fv=subs(f,kk,v);if(FuFv)a=u;u=v;v=a+0.618*(b-a);k=k+1;endarray(k+1,1)=a;array(k+1,2)=b;endMini=(a+b)/2;输入:[R,n]=steel(0,1,0.0001)R = 1.99999413667642 3.99999120501463R = 1.99999413667642 3.99999120501463n = 1牛顿法:题目:f=(x-2)^2+(y-4)^2M 文件:syms x1 x2; f=(x1-2)^2+(x2-4)^2; v=[x1,x2]; df=jacobian(f,v); df=df.'; G=jacobian(df,v); epson=1e-12;x0=[0,0]';g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)});G1=subs(G,{x1,x2},{x0(1,1),x0(2,1)});k=0;mul_count=0;sum_count=0; mul_count=mul_count+12;sum_count=sum_count+6; while(norm(g1)>epson) p=-G1\g1; x0=x0+p; g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)}); G1=subs(G,{x1,x2},{x0(1,1),x0(2,1)}); k=k+1; mul_count=mul_count+16;sum_count=sum_count+11; end; k x0 mul_count sum_count结果::k = 1x0 =24mul_count = 28sum_count = 17共轭梯度法:题目:f=(x-2)^2+(y-4)^2M 文件:function f=conjugate_grad_2d(x0,t)x=x0;syms xi yi af=(xi-2)^2+(yi-4)^2;fx=diff(f,xi);fy=diff(f,yi); fx=subs(fx,{xi,yi},x0);fy=subs(fy,{xi,yi},x0);fi=[fx,fy];count=0;while double(sqrt(fx^2+fy^2))>ts=-fi;if count<=0s=-fi;elses=s1;endx=x+a*s;f=subs(f,{xi,yi},x);f1=diff(f);f1=solve(f1);if f1~=0ai=double(f1);elsebreakx,f=subs(f,{xi,yi},x),countendx=subs(x,a,ai);f=xi-xi^2+2*xi*yi+yi^2;fxi=diff(f,xi);fyi=diff(f,yi);fxi=subs(fxi,{xi,yi},x);fyi=subs(fyi,{xi,yi},x);fii=[fxi,fyi];d=(fxi^2+fyi^2)/(fx^2+fy^2);s1=-fii+d*s;count=count+1;fx=fxi;fy=fyi;endx,f=subs(f,{xi,yi},x),count输入:conjugate_grad_2d([0,0],0.0001)结果:x = 0.24998825499785 -0.24999998741273f = 0.12499999986176count = 10ans = 0.12499999986176diff 函数用于对符号表达式求导数。该函数的一般调用格式为:diff(s):没有指定变量和导数阶数,则系统按 findsym 函数指示的默认变量对符号表达式 s求一阶导数。diff(s,'v'):以 v 为自变量,对符号表达式 s 求一阶导数。diff(s,n):按 findsym 函数指示的默认变量对符号表达式 s 求 n 阶导数,n 为正整数。diff(s,'v',n):以 v 为自变量,对符号表达式 s 求 n 阶导数。6、结论如下 :最速下降法越接近极小值,步长越小,前进越慢。牛顿法要求二阶导数,计算量很大。共轭梯度法是介于最速下降和牛顿法之间的算法,克服了最速下降法的收敛速度慢的缺点,又避免了牛顿法的大计算量。 关 键 词: 用matlab实现最速下降法牛顿法和共轭梯度法求解实例

 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

本文标题:用matlab实现最速下降法,牛顿法和共轭梯度法求解实例

链接地址: https://www.wenku365.com/p-1585842.html

共轭梯度下降法matlab,用matlab实现最速下降法,牛顿法和共轭梯度法求解实例相关推荐

  1. 用共轭梯度法求极小值matlab,用MATLAB实现最速下降法_牛顿法和共轭梯度法求解实例——张小强.doc...

    机电产品优化设计 课程设计报告 姓 名 :张 小 强 学 号 :201222080633 学 院 :机械电子工程学院 实验的题目和要求 一.课程名称:最优化设计方法 二.实验日期:2013年6月27日 ...

  2. 共轭梯度法matlab实验报告,用matlab实现共轭梯度法求解实例.doc

    用matlab实现共轭梯度法求解实例.doc 用MATLAB 实现共轭梯度法求解实例 康福 201103710031 1.无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一 ...

  3. 用matlab实现共轭梯度法求解实例,用MATLAB实现共轭梯度法求解实例

    用MATLAB 实现共轭梯度法求解实例 康福 201103710031 一.无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一定的限制条件下追求某一指标为最小,它们都属于约 ...

  4. 用matlab实现共轭梯度法求解实例,用MATLAB实现共轭梯度法求解实例.doc

    实用标准文案 精彩文档 用MATLAB实现共轭梯度法求解实例 康福 201103710031 无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一定的限制条件下追求某一指标为 ...

  5. 【Machine Learning 六】梯度下降法(基于Matlab 求函数最小值)

    算法原理 梯度下降法是一个最优化算法,可以用来求一个函数的最小值,最大值等,也常用于人工神经网络中更新各个感知器之间的权值,求出cost function的最小值等,应用广泛.  其原理简单,就求函数 ...

  6. CG共轭梯度下降法【学习笔记、例题与代码】

    资料 参考视频: [详细推导][本视频还证明了收敛性]https://www.bilibili.com/video/BV16a4y1t76z?from=search&seid=35153938 ...

  7. 用MATLAB实现FR共轭梯度法求解实例

    问题:编写FR共轭梯度法用于求解min x21−x1x2+x22+2x1−4x2x_1^2-x_1x_2+x_2^2+2x_1-4x_2 初始点取为 x0=(2,2)Tx_0=(2,2)^T frcg ...

  8. 常用的优化算法:梯度下降法,牛顿法,拟牛顿法,共轭梯度法

    目录 0.几个数学概念 1. 梯度下降法(Gradient Descent) 2. 牛顿法和拟牛顿法(Newton's method & Quasi-Newton Methods) 3. 共轭 ...

  9. python实现梯度下降法_梯度下降法及其Python实现

    作者:糖甜甜甜 经管人也可以学Python. 个人公众号: 经管人学数据分析 基本介绍 梯度下降法(gradient descent),又名最速下降法(steepest descent)是求解无约束最 ...

最新文章

  1. POJ 2749 Building roads 2-sat+二分答案
  2. 一文读懂阿里云数据库Autoscaling是如何工作的
  3. 原生js实现一个连连看小游戏(一)
  4. Hystrix使用与分析
  5. 看美文,记单词(6)
  6. 用户生命周期运营白皮书2.0
  7. linux 3d加速驱动_实时Linux,3D打印自行车,Google的“加速的移动页面”等
  8. 力扣654. 最大二叉树(JavaScript)
  9. heartbeat+DRBD+mysql高可用集群实战
  10. 如何更改spring源码_如何看Spring源码、Java每日六道面试分享,打卡第二天
  11. (转)解决PowerDesigner 反向工程没有注释(备注)
  12. 用access建立一个试题库_access试题库_答案
  13. cocos creator麻将教程系列(十)—— 幼麟棋牌搭建和CentOS服务器部署指南
  14. 读书笔记 ---《偷影子的人》
  15. [转] SNDA 并购 MochiMedia
  16. 绝地求生缺少xinput1_3.dll怎么办?
  17. related knowledge points about protein
  18. cesium 加载模型实现动画效果
  19. python怎么编写重复程序,python重复执行怎么写
  20. IOS 公司开发者账号申请详细教程-13810208661

热门文章

  1. 熵增学院-Anders-剑走偏锋,了解Spring Boot内部Servlet容器
  2. JDBC的学习(三)——以查询新闻系统为例
  3. Linux中netfilter模块编程实践
  4. 实现DUBBO服务环境隔离
  5. Magento如何自定义404页面?
  6. 148. Sort List
  7. OpenERP Web开发
  8. Oracle 跨库 查询 复制表数据
  9. STL容器是否是线程安全的
  10. mysql处理高并发,防止库存超卖