ImageVerifierCode 换一换
格式:DOC , 页数:5 ,大小:51KB ,
资源ID:906461      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-906461.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(共轭梯度法求解线性方程组.DOC)为本站会员(天***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

共轭梯度法求解线性方程组.DOC

1、共轭梯度法求解线性方程组闫凡晓3111054017(数学与统计学院,应用数学)摘要 本实验研究了用共轭梯度法求解线性方程组的思想及实现方法,并通过编写 Matlab程序对随机生成的一个线性方程组求解,通过程序的运行调试分析共轭梯度法对不同精度的实际性能,并针对误差进行分析。关键字 共轭梯度法 误差容限 对称正定矩阵1、实验题目运用共轭梯度法求解一个系数矩阵为对称正定矩阵的线性方程组 bAx.二、算法思想共轭梯度法是把求解线性方程组的问题转化为求解一个等价的严格凸二次函数的极小化问题。从任意给定的初始点 )0(x出发,沿一组关于 A 共轭的方向进行线性搜索,在不考虑舍入误差的情况下,最多迭代 n

2、 步(n 是线性方程组的阶数) ,便可求得二次函数的极小点,也即求得了线性方程组 bA的解.对于某些大型稀疏线性方程组,通常该法只经过比方程组阶数 n 小得多的迭代次数就能获得所要求精度的近似解.三、算法实现(1)共轭梯度法的简化的计算公式.,)()1()( )()(1)1( )()()()0(0)( kkkTkkkkkTkkdrdAxbrdxrAxbd(2)基于 Matlab 程序的共轭梯度算法实现步骤1)给定初始近似向量 )0(x及精度要求 1.0e-4;2)计算 ,)()0(Abr取 )0()(rd;3)For k to 1n do(i),)()(kTkAdr(ii) ,)()()1(

3、kkkdx(iii)1()(Abr(iv)若)1(k或 n,则输出近似解 )1(kx,停止;否则转(v) ,(v)2)(1kr,(vi) .)()1()( kkkddEnd do四、实验平台MATLAB 7.6.05、算法设计%用共轭 梯度法求解 对称正定线性方程组Ax=b 的解clear allA=randint(10,10,-10,10);A=A*A;A=A+A; %随机生成一个 10*10对称正定矩阵Ay=eig(A); %求A的特征值for i=1:10 %判断A的正定性if y(i)0disp(随机生成的矩阵不是正定矩阵)break;endendb=randint(10,1,-10,

4、10); %随机生成一10*1列向量x=randint(10,1,-10,10); %随机生成方程初始值iter=10; %最大迭代次数-1tol=1.0e-4; %误差容限d=b-A*x;r=b-A*x;for cnt=1:iter %开始迭代a=(norm(r)2/(d*A*d);x=x+a*d;r=b-A*x;if (norm(r)/norm(b)=tol disp(恭喜您,收敛于误差容限)break;endc=(norm(r)/norm(b-A*(x-a*d)2;d=r+c*d;cnt=cnt+1;endz=Ab; %计算方程组的精确解y=norm(x-z);y %精确解与数值解的误差

5、x %数值解cnt %迭代次数六、实验结果y =1.1417e-004x =1.0e+004 *-0.6383-0.3289-0.42850.0773-1.39880.3944-1.47841.08641.5021-0.5389cnt =11恭喜您,收敛于误差容限y =1.3975e-009x =-0.20720.7229-0.1594-0.20360.23370.38010.17830.0894-0.6825-0.4136cnt =10七、实验分析通过以上程序的编写及运行,从获得的数据来说,共轭梯度法基本成功,理论上计算中若无计算误差,则至多迭代 n 次就求得了方程组的准确解。但实际计算中存

6、在舍入误差,受舍入误差的影响,残向量 )(kr间不能精确满足正交关系,搜索方向 )(kd也不可能精确满足共轭关系,因而迭代 n 次不一定就能求得方程组的准确解.一般来说,若 0)(nr(方程组的系数矩阵越病态, )(r就偏离零越远),这时,仍继续进行迭代 ,函数 (xf的值将继续减少,总能求得一个更好的近似解.在大多数情况下,方程组的系数矩阵不是十分病态的,往往不必迭代 n 次)(kr就充分小,这时可以终止迭代,取 )(kx作为方程组的近似解.计算经验表明,对于不是十分病态的问题,共轭梯度法收敛较快,迭代次数远小于系数矩阵的阶数 n.对于病态问题,只要进行足够多次迭代(迭代次数大约为矩阵阶数

7、n 的 35 倍)后,一般也能得到满意的结果.因而共轭梯度法是求解高阶稀疏线性方程组的一个有效常用的方法.8、实验心得在本次实验中,我在理解了用共轭梯度法求解线性方程组的原理的前提下,根据共轭梯度算法流程编写了 matlab 程序,再一次深刻体会了共轭梯度法的实现方法.从变量的设定、赋值以及运算,共轭梯度法的每一步都体现在了程序中。编程中我也遇到了诸如矩阵运算等很多棘手的问题,通过多种途径得到了很好的解决;在运行调试中,通过多次试验,最终获得了较好的结果。这次实验对于我的实践能力和理解能力都是一个很大的挑战。通过这次实验,我对共轭梯度法有更深的理解,同时也使我感受到数值技术于实际应用中的魅力.

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。