首页 最速下降法和共轭阶梯法

最速下降法和共轭阶梯法

举报
开通vip

最速下降法和共轭阶梯法最速下降法和共轭阶梯法 一、实验目的 二、实验原理 最速下降法 基于这样的观察:如果实值函数 么函数 因而,如果 在点 处可微且有定义,那 下降最快。 在 点沿着梯度相反的方向 对于 γ > 0 为一个够小数值时成立,那么 。 出考虑到这一点,我们可以从函数 F 的局部极小值的初始估计 发,并考虑如下序列 使得 因此可得到 如果顺利的话序列 可以改变。 收敛到期望的极值。注意每次迭代步长 γ 三、上侧的图片示例了这一过程,这里假设 F 定义在平面上,并且函数图像是一个碗形。蓝色...

最速下降法和共轭阶梯法
最速下降法和共轭阶梯法 一、实验目的 二、实验原理 最速下降法 基于这样的观察:如果实值函数 么函数 因而,如果 在点 处可微且有定义,那 下降最快。 在 点沿着梯度相反的方向 对于 γ > 0 为一个够小数值时成立,那么 。 出考虑到这一点,我们可以从函数 F 的局部极小值的初始估计 发,并考虑如下序列 使得 因此可得到 如果顺利的话序列 可以改变。 收敛到期望的极值。注意每次迭代步长 γ 三、上侧的图片示例了这一过程,这里假设 F 定义在平面上,并且函数图像是一个碗形。蓝色的曲线是等高线(水平集),即函数 F 为常数的集合构成的曲线。红色的箭头指向该点梯度的反方向。(一点处的梯度方向与通过该点的等高线垂直)。沿着梯度下降方向,将最终到达碗底,即函数 F 值最小的点。 共轭梯度法 是求解特定线性系统的数值解的方法,其中那些矩阵为对称和正定。共轭梯度法是一个迭代方法,所以它适用于稀疏矩阵系统,因为这些系统对于象乔莱斯基分解这样的直接方法太大了。这种系统在数值求解偏微分方程时相当常见。 共轭梯度法也可以用于求解无约束的最优化问题。 双共轭梯度法提供了一种处理非对称矩阵情况的推广。 设我们要求解下列线性系统 Ax = b,, 其中n-×-n矩阵A是对称的(也即,AT = A),正定的(也即,xTAx > 0对于所有非0向量x属于Rn),并且是实系数的。 将系统的唯一解记作x*。 四、实验内容 实验步骤: 1、根据最速下降法和共轭梯度法的原理编程 2、设置迭代次数n 3、取得er的不同,研究对收敛的影响 4、设置tx把每步的x的用plot()函数画出图像,研究对收敛的影响 输出结果 最速下降法 (1)取er=10^(-6)时,算出x的结果及迭代次数n x =2.0000 16.0000 -8.6667 n=12 收敛性 可以看出收敛比较好 (2)取er=10^(-13)时,算出x的结果及迭代次数n x = 2.0000 16.0000 -8.6667 n=21 收敛性 (3)取er=10^(-20)时,算出x的结果及迭代次数n x = 2.0000 16.0000 -8.6667 n=27 收敛性 共轭梯度法 (1)取er=10^(-6)时,算出x的结果及迭代次数n x = 2.0000 16.0000 -8.6667 n=3 收敛性 (2)取er=10^(-20)时,算出x的结果及迭代次数n x = 2.0000 16.0000 -8.6667 n=4 收敛性 (3)取er=10^(-30)时,算出x的结果及迭代次数n x = 2.0000 16.0000 -8.6667 n=4 收敛性 数据分析(比较两种算法的优势) 根据实验结果可以知道,在相同的精度下,最速下降法的迭代次数要比共轭梯度法的迭代次数要多,而但是它们算出来的结果是一样的,另外从收敛性行可以看出两者都是线性收敛,但总体来说共轭梯度法要比最深下降法要好。 四、实验心得 本次实验在掌握好原理的同时,我应用了n的迭代次数来比较它们的优劣,也通过改变精度来研究它们的收敛,还利用了画图的直观比较收敛性。这都是对我的一直能力的培养。让我感觉到matlab的强大。 五、实验代码 最速下降法 Fastdown文件 function [x,tx,n]= fastdown(A,b,x0,er) x=x0; n=0; tol=1; tx = x0; while(tol>er) r = b-A*x0; d = dot(r,r)/dot(A*r,r); x = x0+d*r; tol = norm(x-x0); x0 = x; tx = [tx x0]; n = n + 1; end Top文件 A=[2 1 0;1 2 0;0 0 3]; b=[20 34 -26]'; x0=[1 3 4]'; er=10^(-20); [x,tx,n]= fastdown(A,b,x0,er) 共轭梯度法 Conjgrad文件 function [x,n,tx]=conjgrad(A,b,x,er) r=b-A*x; p=r; rsold=r'*r; tx=x; n=1; for i=1:size(A) Ap=A*p; alpha=rsold/(p'*Ap); x=x+alpha*p; tx=[tx x]; n=n+1; r=r-alpha*Ap; rsnew=r'*r; if sqrt(rsnew)<er break; end p=r+rsnew/rsold*p; rsold=rsnew; end end Top文件 A=[2 1 0;1 2 0;0 0 3]; b=[20 34 -26]'; x0=[1 3 4]'; er=10^(-45); [x,n,tx]=conjgrad(A,b,x0,er) 六、如何使用程序 最速下降法 在matlab打开最速下降法文件中的top.m 输入top 然后回车 输入plot(tx') 然后回车 再top修改er=10^(-6),10^(-13),10^(-20),得出结果 共轭梯度法 在matlab打开共轭梯度法文件中的top.m 输入top 然后回车 输入plot(tx') 然后回车 再top修改er=10^(-6),10^(-20),10^(-30),得出结果
本文档为【最速下降法和共轭阶梯法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_531654
暂无简介~
格式:doc
大小:18KB
软件:Word
页数:6
分类:管理学
上传时间:2017-12-19
浏览量:34