最速下降法和共轭阶梯法.docx
- 文档编号:14347034
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:10
- 大小:145.95KB
最速下降法和共轭阶梯法.docx
《最速下降法和共轭阶梯法.docx》由会员分享,可在线阅读,更多相关《最速下降法和共轭阶梯法.docx(10页珍藏版)》请在冰点文库上搜索。
最速下降法和共轭阶梯法
最速下降法和共轭阶梯法
1、实验目的
对矩阵A=[210;120;003];b=[2034-26]';对方程A*X=b,分别用最速下降法和共轭阶梯法,求x的值,并判断是否收敛和比较两种算法的优势
2、实验原理
最速下降法
基于这样的观察:
如果实值函数
在点
处可微且有定义,那么函数
在
点沿着梯度相反的方向
下降最快。
因而,如果
对于γ>0为一个够小数值时成立,那么
。
考虑到这一点,我们可以从函数F的局部极小值的初始估计
出发,并考虑如下序列
使得
因此可得到
如果顺利的话序列
收敛到期望的极值。
注意每次迭代步长γ可以改变。
3、上侧的图片示例了这一过程,这里假设F定义在平面上,并且函数图像是一个碗形。
蓝色的曲线是等高线(水平集),即函数F为常数的集合构成的曲线。
红色的箭头指向该点梯度的反方向。
(一点处的梯度方向与通过该点的等高线垂直)。
沿着梯度下降方向,将最终到达碗底,即函数F值最小的点。
共轭梯度法
是求解特定线性系统的数值解的方法,其中那些矩阵为对称和正定。
共轭梯度法是一个迭代方法,所以它适用于稀疏矩阵系统,因为这些系统对于象乔莱斯基分解这样的直接方法太大了。
这种系统在数值求解偏微分方程时相当常见。
共轭梯度法也可以用于求解无约束的最优化问题。
双共轭梯度法提供了一种处理非对称矩阵情况的推广。
设我们要求解下列线性系统
Ax=b,,
其中n-×-n矩阵A是对称的(也即,AT=A),正定的(也即,xTAx>0对于所有非0向量x属于Rn),并且是实系数的。
将系统的唯一解记作x*。
4、实验内容
实验步骤:
1、根据最速下降法和共轭梯度法的原理编程
2、设置迭代次数n
3、取得er的不同,研究对收敛的影响
4、设置tx把每步的x的用plot()函数画出图像,研究对收敛的影响
输出结果
最速下降法
(1)取er=10^(-6)时,算出x的结果及迭代次数n
x=2.000016.0000-8.6667
n=12
收敛性
可以看出收敛比较好
(2)取er=10^(-13)时,算出x的结果及迭代次数n
x=2.000016.0000-8.6667
n=21
收敛性
(3)取er=10^(-20)时,算出x的结果及迭代次数n
x=2.000016.0000-8.6667
n=27
收敛性
共轭梯度法
(1)取er=10^(-6)时,算出x的结果及迭代次数n
x=2.000016.0000-8.6667
n=3
收敛性
(2)取er=10^(-20)时,算出x的结果及迭代次数n
x=2.000016.0000-8.6667
n=4
收敛性
(3)取er=10^(-30)时,算出x的结果及迭代次数n
x=2.000016.0000-8.6667
n=4
收敛性
数据分析(比较两种算法的优势)
根据实验结果可以知道,在相同的精度下,最速下降法的迭代次数要比共轭梯度法的迭代次数要多,而但是它们算出来的结果是一样的,另外从收敛性行可以看出两者都是线性收敛,但总体来说共轭梯度法要比最深下降法要好。
四、实验心得
本次实验在掌握好原理的同时,我应用了n的迭代次数来比较它们的优劣,也通过改变精度来研究它们的收敛,还利用了画图的直观比较收敛性。
这都是对我的一直能力的培养。
让我感觉到matlab的强大。
5、实验代码
最速下降法
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=[txx0];
n=n+1;
end
Top文件
A=[210;120;003];
b=[2034-26]';
x0=[134]';
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;
fori=1:
size(A)
Ap=A*p;
alpha=rsold/(p'*Ap);
x=x+alpha*p;
tx=[txx];
n=n+1;
r=r-alpha*Ap;
rsnew=r'*r;
ifsqrt(rsnew) break; end p=r+rsnew/rsold*p; rsold=rsnew; end end Top文件 A=[210;120;003]; b=[2034-26]'; x0=[134]'; er=10^(-45); [x,n,tx]=conjgrad(A,b,x0,er) 6、如何使用程序 最速下降法 在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),得出结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 下降 共轭 阶梯
![提示](https://static.bingdoc.com/images/bang_tan.gif)