种迭代法雅克比高斯赛贝尔超松弛求解方程组试验报告_第1页
种迭代法雅克比高斯赛贝尔超松弛求解方程组试验报告_第2页
种迭代法雅克比高斯赛贝尔超松弛求解方程组试验报告_第3页
种迭代法雅克比高斯赛贝尔超松弛求解方程组试验报告_第4页
种迭代法雅克比高斯赛贝尔超松弛求解方程组试验报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大连民族学院数学实验报告课程:数值分析与软件实验题目: 分别用 Jacobh Gauss-Seidel SOR迭代法求解线性方程组系别:理学院专业:数学与应用数学姓名:赵英翠班级:数学101指导教师:牛大田完成学期:2012 年 4 月 14 日实验目的:1,熟悉matlab上机环境,掌握 matlab相关知识;2.掌握求解线性方程组的三种迭代法:Jacobk Gauss-Seidel SOR迭代法;3,比较三种迭代法的差异;实验内容:(问题、数学模型、要求、关键词)1 .分别运用Jacobk Gauss-Seidel SOR迭代法求解如下线性方程组4100Xi5.841410x25.501

2、41x37.330014x43.35取初始点X(0) (0,0,0,0) T,精度要求 106; SOR迭代法中松弛因子1.052 .求解上述方程组准确解,与上述三种方法的结果进行比较。关键词:Jacobk Gauss-Seidel SOR迭代法 线性方程组实验方法和步骤(包括数值公式、算法步骤、程序):1 .利用Jacobi迭代法求解:编制名为 majacobi.m的文件,内容如下:function x=majacobi(A,b,x0,ep,N)n=length(b);if nargin>5,Warning('传递的参数个数错误');endif nargin<5,

3、N=500;endif nargin<4,ep=1e-6;endif nargin<3,x0=zeros(n,1);endx=zeros(n,1);k=0;while k<Nfor i=1:nx(i)=(b(i)-A(i,1:i-1,i+1:n)*x0(1:i-1,i+1:n)/A(i,i);endif norm(x-x0,inf)<ep,break;endx0=x;k=k+1;endif k=N,Warning('已达到迭代次数上限');enddisp('迭代次数 k=',num2str(k)2 .利用Gauss-Seide迭代法求解:

4、编制名为 maseidel.m的文件,内容如下:function x=maseidel(A,b,x0,ep,N) n=length(b);if nargin<5,N=500;endif nargin<4,ep=1e-6;endif nargin<3,x0=zeros(n,1);endx=zeros(n,1);k=0;while k<Nfor i=1:nif i=1x(1)=(b(1)-A(1,2:n)*x0(2:n)/A(1,1);else if i=nx(n)=(b(n)-A(n,1:n-1)*x(1:n-1)/A(n,n);elsex(i)=(b(i)-A(i,1:

5、i-1)*x(1:i-1)-A(i,i+1:n)*x0(i+1:n)/A(i,i);endendendif norm(x-x0,inf)<ep,break;endx0=x;k=k+1;endif k=N,Warning('已达到迭代次数上限');enddisp('迭代次数 k=',num2str(k)3 .利用SOR迭代法求解:编制名为masor.m的文件,内容如下:function x=masor(A,b,omega,x0,ep,N)n=length(b);if nargin<6,N=500;endif nargin<5,ep=1e-6;en

6、dif nargin<4,x0=zeros(n,1);endif nargin<3,omega=1.5;endx=zeros(n,1);k=0;while k<Nfor i=1:nif i=1x1(1)=(b(1)-A(1,2:n)*x0(2:n)/A(1,1);else if i=nx1(n)=(b(n)-A(n,1:n-1)*x(1:n-1)/A(n,n);elsex1(i)=(b(i)-A(i,1:i-1)*x(1:i-1)-A(i,i+1:n)*x0(i+1:n)/A(i,i);endendx(i)=(1-omega)*x0(i)+omega*x1(i);endif

7、norm(x0-x,inf)<ep,break;endk=k+1; x0=x;endif k=N,Warning('已达到迭代次数上限');enddisp('迭代次数 k=',num2str(k)4 .利用matlab求解方程组的准确解在matlab指令窗口中输入:> > A=4,-1,0,0;-1 4 -1 0;0 -1 4 -1;0 0 -1 4;> > B=5.84 -5.5 7.33 3.35'> > X=AB实验数据和分析:1 .利用Jacobi迭代法求解:在MATLA蹄令窗口执行程序 masorm.m

8、:>>clear;clc> > A=4,-1,0,0;-1 4 -1 0;0 -1 4 -1;0 0 -1 4;> > B=5.84 -5.5 7.33 3.35'> > x=majacobi(A,B)得到计算结果:迭代次数k=17x =1.3264-0.53452.03551.34642 .利用Gauss-Seide迭代法求解: 在MATLAB命令窗口执行程序maseidel.m:>>clear;clc>> A=4,-1,0,0;-1 4 -1 0;0 -1 4 -1;0 0 -1 4;>> B=5.

9、84 -5.5 7.33 3.35'>> x=maseidel(A,B)得到计算结果:迭代次数k=9x =1.3264-0.53452.03551.34643 .利用SOR迭代法求解:在MATLAB命令窗口执行程序:>>clear;clc>> A=4,-1,0,0;-1 4 -1 0;0 -1 4 -1;0 0 -1 4;>> B=5.84 -5.5 7.33 3.35'>>x=masor(A,B,1.05)得到计算结果:迭代次数k=61.3264-0.53452.03551.34644 .利用matlab求解方程组的准确解得到计算结构X =1.3264-0.53452.03551.3464通过以上数据测试可以分析出以下几点:1 . Jacobi、Gauss-Seidel SOR三种迭代法对应的迭代次数是逐渐减少的,也就是说三种方法在迭代的速度上是逐个增加的;2 .三种迭代法计算得到的解与严格计算方程组后的精确解在结果所示精度下是相同的,说明三种迭代法的求解精度是不低的。实验的启示:1,通过本次试验,我掌握了用 Jacobk Gauss-Seidel SOR迭代法求解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论