共轭梯度下降法matlab,用matlab实现最速下降法,牛顿法和共轭梯度法求解实例
用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实现最速下降法,牛顿法和共轭梯度法求解实例相关推荐
- 用共轭梯度法求极小值matlab,用MATLAB实现最速下降法_牛顿法和共轭梯度法求解实例——张小强.doc...
机电产品优化设计 课程设计报告 姓 名 :张 小 强 学 号 :201222080633 学 院 :机械电子工程学院 实验的题目和要求 一.课程名称:最优化设计方法 二.实验日期:2013年6月27日 ...
- 共轭梯度法matlab实验报告,用matlab实现共轭梯度法求解实例.doc
用matlab实现共轭梯度法求解实例.doc 用MATLAB 实现共轭梯度法求解实例 康福 201103710031 1.无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一 ...
- 用matlab实现共轭梯度法求解实例,用MATLAB实现共轭梯度法求解实例
用MATLAB 实现共轭梯度法求解实例 康福 201103710031 一.无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一定的限制条件下追求某一指标为最小,它们都属于约 ...
- 用matlab实现共轭梯度法求解实例,用MATLAB实现共轭梯度法求解实例.doc
实用标准文案 精彩文档 用MATLAB实现共轭梯度法求解实例 康福 201103710031 无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一定的限制条件下追求某一指标为 ...
- 【Machine Learning 六】梯度下降法(基于Matlab 求函数最小值)
算法原理 梯度下降法是一个最优化算法,可以用来求一个函数的最小值,最大值等,也常用于人工神经网络中更新各个感知器之间的权值,求出cost function的最小值等,应用广泛. 其原理简单,就求函数 ...
- CG共轭梯度下降法【学习笔记、例题与代码】
资料 参考视频: [详细推导][本视频还证明了收敛性]https://www.bilibili.com/video/BV16a4y1t76z?from=search&seid=35153938 ...
- 用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 ...
- 常用的优化算法:梯度下降法,牛顿法,拟牛顿法,共轭梯度法
目录 0.几个数学概念 1. 梯度下降法(Gradient Descent) 2. 牛顿法和拟牛顿法(Newton's method & Quasi-Newton Methods) 3. 共轭 ...
- python实现梯度下降法_梯度下降法及其Python实现
作者:糖甜甜甜 经管人也可以学Python. 个人公众号: 经管人学数据分析 基本介绍 梯度下降法(gradient descent),又名最速下降法(steepest descent)是求解无约束最 ...
最新文章
- POJ 2749 Building roads 2-sat+二分答案
- 一文读懂阿里云数据库Autoscaling是如何工作的
- 原生js实现一个连连看小游戏(一)
- Hystrix使用与分析
- 看美文,记单词(6)
- 用户生命周期运营白皮书2.0
- linux 3d加速驱动_实时Linux,3D打印自行车,Google的“加速的移动页面”等
- 力扣654. 最大二叉树(JavaScript)
- heartbeat+DRBD+mysql高可用集群实战
- 如何更改spring源码_如何看Spring源码、Java每日六道面试分享,打卡第二天
- (转)解决PowerDesigner 反向工程没有注释(备注)
- 用access建立一个试题库_access试题库_答案
- cocos creator麻将教程系列(十)—— 幼麟棋牌搭建和CentOS服务器部署指南
- 读书笔记 ---《偷影子的人》
- [转] SNDA 并购 MochiMedia
- 绝地求生缺少xinput1_3.dll怎么办?
- related knowledge points about protein
- cesium 加载模型实现动画效果
- python怎么编写重复程序,python重复执行怎么写
- IOS 公司开发者账号申请详细教程-13810208661