大连民族学院
数 学 实 验 报 告
课程: 数值
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
与软件
实验题目: 分别用Jacobi、Gauss-Seidel、SOR迭代法求解线性方程组
系别: 理学院
专业: 数学与应用数学
姓名: 赵英翠
班级: 数学101
指导教师:牛大田
完成学期: 2012 年 4 月 14 日
实验目的:
1. 熟悉matlab上机环境,掌握matlab相关知识;
2. 掌握求解线性方程组的三种迭代法:Jacobi、Gauss-Seidel、SOR迭代法;
3. 比较三种迭代法的差异;
实验内容:(问题、数学模型、要求、关键词)
1.分别运用Jacobi、Gauss-Seidel、SOR迭代法求解如下线性方程组
取初始点
精度要求
;SOR迭代法中松弛因子
。
2.求解上述方程组准确解,与上述三种方法的结果进行比较。
关键词:Jacobi、Gauss-Seidel、SOR迭代法 线性方程组
实验方法和步骤(包括数值公式、算法步骤、程序):
1. 利用Jacobi迭代法求解:
编制名为majacobi.m的文件,内容如下:
function x=majacobi(A,b,x0,ep,N)
n=length(b);
if nargin>5,Warning('传递的参数个数错误');end
if nargin<5,N=500;end
if nargin<4,ep=1e-6;end
if nargin<3,x0=zeros(n,1);end
x=zeros(n,1);k=0;
while k
> 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=A\B
实验数据和分析:
1.利用Jacobi迭代法求解:
在MATLAB命令窗口执行程序masorm.m:
>>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=17
x =
1.3264
-0.5345
2.0355
1.3464
2.利用Gauss-Seidel迭代法求解:
在MATLAB命令窗口执行程序maseidel.m:
>>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=maseidel(A,B)
得到计算结果:
迭代次数k=9
x =
1.3264
-0.5345
2.0355
1.3464
3.利用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=6
x =
1.3264
-0.5345
2.0355
1.3464
4.利用matlab求解方程组的准确解
得到计算结构
X =
1.3264
-0.5345
2.0355
1.3464
通过以上数据测试可以分析出以下几点:
1. Jacobi、Gauss-Seidel、SOR三种迭代法对应的迭代次数是逐渐减少的,也就是说三种方法在迭代的速度上是逐个增加的;
2.三种迭代法计算得到的解与严格计算方程组后的精确解在结果所示精度下是相同的,说明三种迭代法的求解精度是不低的。
实验的启示:
1. 通过本次试验,我掌握了用Jacobi、Gauss-Seidel、SOR迭代法求解线性方程组的方法;
2. 切实了解到了三种迭代法求解线性方程组的差异所在;
3. 本来对MATLAB很生疏了,但经过本次试验,巩固了关于MATLAB的很多相关知识;
4. 深刻体会到了MATLAB功能的强大之处;
5. 在做本次实验的过程中,也学到了很多新的知识,比如MATLAB的.m文件等知识;
_1395337414.unknown
_1395337507.unknown
_1395337606.unknown
_1395337336.unknown