




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安徽建筑大学数值分析 设计报告书题 目 松弛迭代法中松弛因子 院 系 数理系 专 业 信息与计算科学 班 级 信息班 学 号 12207210220 姓 名 穆海山 时 间 2013-12-102013-12-23 指导教师 刘华勇 题目:选用Jacobi迭代法、Gauss-Seidel迭代法和超松弛迭代法求解下面的方程组(考虑等于150)=考虑初值的变化和松弛因子的变化收敛效果的影响;对上述方程组还可以采用哪些方法求解?选择其中一些方法编程上机求解上述方程组,说明最适合的是什么方法;将计算结果进行比较分析,谈谈你对这些方法的看法。一、摘要本课程设计用matlab就线性方程组数值方法,Jacobi迭代法,Gauss-Seidel迭代法,超松弛法对所设计的问题进行求解,并编写程序在Matlab中实现,在文章中对各种迭代法进行了收敛性分析。接着用几种不同方法对线性方程组进行求解及结果分析,最后对此次课程设计进行了总结。关键词:线性方程组,迭代,Matlab,结果分析二、设计目的用熟悉的计算机语言编程上机求解线性方程组。三、理论基础对方程组 做等价变换 如:令 ,则 则,我们可以构造序列 若 同时:所以,序列收敛,与初值的选取无关则转化为矩阵形式 (1)令 或者 故迭代过程(1)化为 (2) 等价线性方程组为 称(2)式为解线性方程组(1)的Jacobi迭代法(J法)迭代矩阵 考虑迭代式(2) 即 将上式改为 (3) (4)超松弛迭代记 则 可以看作在前一步上加一个修正量。若在修正量前乘以一个因子有 对GaussSeidel迭代格式 迭代矩阵四、 程序代码及运算结果1.利用Jacobi迭代法求解:编制名为majacobifun.m的文件,内容如下:function x,n=jacobifun(A,b,x0,eps)%jacobifun为编写在雅可比迭代函数%A为线性方程组的系数矩阵%b为线性方程组的常数向量%x0为迭代初始向量%eps为解的精度%x为线性方程组的解%n为求出所需精度的解实际的迭代步数D=diag(diag(A);B=D(D-A);f=Db;x=B*x0+f;n=0;if max(abs(eig(B)=1 disp(Warning:不收敛!); return;endwhile norm(x-x0)=eps x0=x; x=B*x0+f; n=n+1;end2.利用Gauss-Seidel迭代法求解:编制名为G_Seidelifun.m的文件,内容如下:nction x,n=G_Seidelifun(A,b,x0,eps)%G_Seidelifun为编写在高斯-赛德尔迭代函数%A为线性方程组的系数矩阵%b为线性方程组的常数向量%x0为迭代初始向量%eps为解的精度%x为线性方程组的解%n为求出所需精度的解实际的迭代步数D=diag(diag(A);L=-tril(A,-1);U=-triu(A,1);G=(D-L)U;f=(D-L)b;x=G*x0+f;n=0;if max(abs(eig(G)=1 disp(Warning:不收敛!); return;endwhile norm(x-x0)=eps x0=x; x=G*x0+f; n=n+1;end3.利用SOR迭代法求解:编制名为SORfun.m的文件,内容如下:function x,n=SORfun(A,b,x0,w,eps)%SORfun为编写在松弛迭代函数%A为线性方程组的系数矩阵%b为线性方程组的常数向量%x0为迭代初始向量%w为松弛因子%eps为解的精度%x为线性方程组的解%n为求出所需精度的解实际的迭代步数if(w=2) error return;endD=diag(diag(A);L=-tril(A,-1);U=-triu(A,1);S=(D-w*L)(1-w)*D+w*U);f=w*(D-w*L)b);x=S*x0+f;n=0;if max(abs(eig(S)=1 disp(Warning:不收敛!); return;end while norm(x-x0)=eps x0=x; x=S*x0+f; n=n+1; end在Matlab命令窗口输入: clearw=1.5;eps=1e-6;n=150;A=diag(8*ones(1,n-1),-1)+diag(6*ones(1,n)+diag(ones(1,n-1),1);b(1)=10.5;b(n)=21;for i=2:n-1 b(i)=22.5;endb=b;x0=zeros(n,1);x1,n=jacobifun(A,b,x0,eps);x2,n=G_Seidelifun(A,b,x0,eps);x3,n=SORfun(A,b,x0,w,eps);plot(x1);hold onplot(x2,r);hold onplot(x3,g*)表1 Jacobi、Guass_seidel、SOR迭代结果表x0=zeros(n,1)x0=ones(n,1)w=1.5w=1.1w=1.5w=1.1雅可比高斯-赛德尔超松弛雅可比高斯-赛德尔超松弛不收敛!不收敛!n =n =n =n =n =n =n =n =084355663083353655x =x =x =x =x =x =x =x =1.0e+028 *1.0e+029 *1.0e+028 *1.0e+029 *1.7501.501.583301.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.502.2501.503.7501.37502.2501.37503.750202.250203.7500.502.2500.503.750302.250303.750002.250003.750402.250403.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.750002.250003.75-0.0001002.25-0.0001003.750.0002002.250.0002003.75-0.000300.00012.25-0.000300.00013.750.00060-0.00022.250.00060-0.00023.75-0.001200.00042.25-0.001200.00043.750.00240-0.00072.250.00240-0.00073.75-0.004900.00142.25-0.004900.00143.750.00970-0.00282.250.00970-0.00283.75-0.019500.00572.25-0.019500.00573.750.03890-0.01132.250.03890-0.01133.75-0.077600.02262.25-0.077600.02263.750.15460-0.0452.250.15460-0.0453.75-0.306800.08932.25-0.306800.08933.750.60390-0.17572.250.60390-0.17573.75-1.168700.342.25-1.168700.343.752.18170-0.63472.252.18170-0.63473.75-3.7401.0882.25-3.7401.0883.54.98660-1.45072.16674.98660-1.4507以下为方程组的解的图:图1 初值x0=0;.;0 松弛因子=1.5时图图2 初值x0=1;.;1 松弛因子=1.5时图图3 初值x0=1;.;1 松弛因子=1.1时图五、结果分析 通过以上数据测试可以分析出以下几点:1. 系数矩阵为150阶时,经判断Jacobi迭代是发散的、Gauss-Seidel、SOR两种迭代是收敛的,当初值一定时,Gauss-Seidel、SOR对应的迭代次数是逐渐减少的,也就是说SOR迭代比Gauss-Seidel迭代收敛更快。2. 当初值变大时,Gauss-Seidel、SOR对应的迭代次数是逐渐减少的,当初值相同,松弛因子 变小时,SOR对应的迭代次数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西安地质调查中心实习合同3篇
- 灯箱维修合同10篇
- 瓶装气企业安全培训课件
- DB14T 1953-2025 地面无机磨石材料应用技术规范
- 安全文明出行培训会议课件
- 分洪工程总体方案(3篇)
- 房屋工程方案小学作业(3篇)
- 广西嘉禾盛德金太阳再生资源有限公司汽车零部件再制造件表面处理工艺项目环境影响报告表
- 猫咪家族课件
- 猎人海力课件
- 某门店财务管理手册
- 中小学生欺凌防治工作主题班会 课件
- 某某有限公司监控系统维保投标书
- 货物运输应急预案
- 三方商铺二次转租协议书范文
- 卡西欧手表SGW-100(3157)中文说明书
- 南京尚勤新材料科技有限公司药用表面活性剂研发项目环评报告表
- 【核心素养目标】人教版《劳动教育》六上 劳动项目一 《使用洗衣机》 课件
- 医院培训课件:《输血相关法规及输血知识培训》
- 眼科操作并发症及处理
- 药理学教案资料
评论
0/150
提交评论