数值计算线性方程迭代法实验.docx
《数值计算线性方程迭代法实验.docx》由会员分享,可在线阅读,更多相关《数值计算线性方程迭代法实验.docx(18页珍藏版)》请在冰豆网上搜索。
![数值计算线性方程迭代法实验.docx](https://file1.bdocx.com/fileroot1/2023-1/24/28aa4f71-19a2-4229-891c-7f3fbebad911/28aa4f71-19a2-4229-891c-7f3fbebad9111.gif)
数值计算线性方程迭代法实验
实验报告一
一、实验目的
理解线性方程组直接法与迭代法思想,掌握常用算法的设计,掌握用MATLAB实现的数值解法。
二、实验题目
实验一线性方程组迭代法实验
1、迭代法的收敛速度
用迭代法分别对n=20,n=200解方程组
其中
(1)选取不同的初值
和不同的右端向量b,给定迭代误差,用两种迭代法计算,观测得到的迭代向量并分析计算结果给出结论;
(2)取定初值
和右端向量b,给定迭代误差,将A的主对角元成倍放大,其余元素不变,用Jacobi迭代法计算多次,比较收敛速度,分析计算结果并给出结论。
2、SOR迭代法松弛因子的选取
用逐次超松弛(SOR)迭代法求解方程组
其中
(1)给定迭代误差,选取不同的超松弛因子
进行计算,观测得到的近似值向量并分析计算结果,给出你的结论;
(2)给定迭代误差,选取不同的低松弛因子
进行计算,观测得到的近似值向量并分析计算结果,给出你的结论。
三、实验原理
Jacobi迭代法算法:
步1取初始点
,精度要求
,最大迭代次数
,置
;
步2由
或
计算
;
步3若
,则停算,输出
作为方程组的近似解;
步4若
,则停算,输出迭代失败信息;否则置
,转布2。
Gauss-Seidel迭代法算法:
步1输入矩阵A,右端向量b,初始点
,精度要求
,最大迭代次数
,置
;
步2计算
步3若
,则停算,输出x作为方程组的近似解;否则,转步4。
步4若k=N,则停算,输出迭代失败信息;否则置
转步2
SOR迭代法算法:
步1输入矩阵A,右端向量b,初始点
,精度要求
,最大迭代次数
,置
;
步2计算
步3若
,则停算,输出x作为方程组的近似解;否则,转步4。
步4若k=N,则停算,输出迭代失败信息;否则置
转步2
4、实验内容、
1、迭代法的收敛速度
实验题目:
用迭代法分别对n=20,n=200解方程组Ax=b,其中
1、
(1)第一种:
选取初值为0,右端向量b=2。
function[A,b]=matlab1(n)
clc;
A=zeros(n,n);b=zeros(n,1);
fori=1:
n
A(i,i)=4;
b(i)=2;
end
fori=1:
n-1
A(i,i+1)=-1./3;
A(i+1,i)=-1./3;
end
fori=1:
n-2
A(i,i+2)=-1./5;
A(i+2,i)=-1./5;
end
n=20;
[A,b]=matlab1(n);
x1=majacobi(A,b);
x2=maseidel(A,b);
x1'
x2'
n=200;
[A,b]=matlab1(n);
x1=majacobi(A,b);
x2=maseidel(A,b);
x1'
x2'
第二种:
选取初值为(10000000000000000000),右端向量b=1。
function[A,b]=matlab1(n)
clc;
A=zeros(n,n);b=zeros(n,1);
fori=1:
n
A(i,i)=4;
b(i)=1;
end
fori=1:
n-1
A(i,i+1)=-1./3;
A(i+1,i)=-1./3;
end
fori=1:
n-2
A(i,i+2)=-1./5;
A(i+2,i)=-1./5;
end
n=20;
[A,b]=matlab1(n);
x0=eye(n,1);
x1=majacobi(A,b,xo);
x2=maseidel(A,b,xo);
x1'
x2'x2'
n=200;
[A,b]=matlab1(n);
x0=eye(n,1);
x1=majacobi(A,b,xo);
x2=maseidel(A,b,xo);
x1'
x2'
1、
(2)
第一种:
取A的主对角元为4,则
function[A,b]=matlab1(n)
clc;
A=zeros(n,n);b=zeros(n,1);
fori=1:
n
A(i,i)=4;
b(i)=2;
end
fori=1:
n-1
A(i,i+1)=-1./3;
A(i+1,i)=-1./3;
end
fori=1:
n-2
A(i,i+2)=-1./5;
A(i+2,i)=-1./5;
end
n=20;
[A,b]=matlab1(n);
x=majacobi(A,b);
x';
n=200;
[A,b]=matlab1(n);
x=majacobi(A,b);
x';
第二种:
取A的主对角元为8,则、
function[A,b]=matlab1(n)
clc;
A=zeros(n,n);b=zeros(n,1);
fori=1:
n
A(i,i)=8;
b(i)=2;
end
fori=1:
n-1
A(i,i+1)=-1./3;
A(i+1,i)=-1./3;
end
fori=1:
n-2
A(i,i+2)=-1./5;
A(i+2,i)=-1./5;
end
n=20;
[A,b]=matlab1(n);
x=majacobi(A,b);
x';
n=200;
[A,b]=matlab1(n);
x=majacobi(A,b);
x';
第三种:
取A的主对角元为12,则、
function[A,b]=matlab1(n)
clc;
A=zeros(n,n);b=zeros(n,1);
fori=1:
n
A(i,i)=12;
b(i)=2;
end
fori=1:
n-1
A(i,i+1)=-1./3;
A(i+1,i)=-1./3;
end
fori=1:
n-2
A(i,i+2)=-1./5;
A(i+2,i)=-1./5;
end
n=20;
[A,b]=matlab1(n);
x=majacobi(A,b);
x';
n=200;
[A,b]=matlab1(n);
x=majacobi(A,b);
x';
2、
(1)第一种
取
=1.01
function[A,b]=matlab1(n)
clc;
A=zeros(n,n);b=zeros(n,1);
fori=1:
n
A(i,i)=12;
b(i)=5;
end
fori=1:
n-1
A(i,i+1)=-2;
A(i+1,i)=-2;
end
fori=1:
n-2
A(i,i+2)=1;
A(i+2,i)=1;
end
n=200;
[A,b]=matlab1(n);
omega=1.01;
x=masor(A,b,omega);
x';
第二种方法:
取
=1.30
n=200;
[A,b]=matlab1(n);
omega=1.30;
x=masor(A,b,omega);
x';
第三种方法:
取
=1.91
n=200;
[A,b]=matlab1(n);
omega=1.91;
x=masor(A,b,omega);
x';
第四种方法
取
=1.20
n=200;
[A,b]=matlab1(n);
omega=1.20;
x=masor(A,b,omega);
x';
2、
(2)
第一种方法:
取
=0.10
n=200;
[A,b]=matlab1(n);
omega=0.10;
x=masor(A,b,omega);
x';
第二种方法:
取
=0.89
n=200;
[A,b]=matlab1(n);
omega=0.89;
x=masor(A,b,omega)
x';
第三种方法:
取
=0.35
n=200;
[A,b]=matlab1(n);
omega=0.35;
x=masor(A,b,omega)
x';
第四种方法:
取
=0.20
n=200;
[A,b]=matlab1(n);
omega=0.20;
x=masor(A,b,omega);
x';
5、实验结果
1、详细结果见附录一:
得出这两种迭代法对于不同的初值和右端向量,他们得出的答案都是一致的。
且高斯-赛德尔迭代法会比雅可比快,迭代次数与矩阵的阶数无关。
1、
(2)
第一种:
n=20:
k=10
n=200:
k=10
第二种:
n=20:
k=7
n=200
k=7
第三种:
n=20
k=5
n=200
k=5
得出,将A的主对角元成倍放大时,用Jacobi迭代法计算多次,收敛速度快。
2、
(1)第一种方法:
k=8
第二种是方法:
k=16
第三种方法:
k=198
第四种方法:
k=12
得出的结论是算出的迭代次数随着
的增大迭代次数增加。
2、
(2)
第一种方法:
k=126
第二种方法:
k=9
第三种方法:
k=35
第四种方法:
k=64
得出的结论是算出的迭代次数随着
的增大迭代次数减少。
六、实验结果分析
可出Jacobi迭代法,Gauss-Seidel迭代法,SOR迭代法,对于
=0的情况无法实现,还有就是当数值比较特殊时,计算机无法得出答案。
附录一
1、
(1)第一种:
n=20:
k=10
k=8
ans=
Columns1through16
0.58690.63900.67320.67890.68110.68160.68180.68180.68180.68180.68180.68180.68180.68180.68160.6811
Columns17through20
0.67890.67320.63900.5869
ans=
Columns1through16
0.58690.63900.67320.67890.68110.68160.68180.68180.68180.68180.68180.68180.68180.68180.68160.6811
Columns17through20
0.67890.67320.63900.5869
n=200:
k=10
k=8
ans=
Columns1through16
0.58690.63900.67320.67890.68110.68160.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns17through32
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns33through48
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns49through64
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns65through80
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns81through96
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns97through112
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns113through128
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns129through144
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns145through160
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns161through176
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns177through192
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns193through200
0.68180.68180.68160.68110.67890.67320.63900.5869
ans=
Columns1through16
0.58690.63900.67320.67890.68110.68160.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns17through32
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns33through48
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns49through64
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns65through80
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns81through96
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns97through112
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns113through128
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns129through144
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns145through160
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns161through176
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns177through192
0.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.68180.6818
Columns193through200
0.68180.68180.68160.68110.67890.67320.63900.5869
第二种:
n=20:
k=10
k=7
ans=
Columns1through17
0.29350.31950.33660.33940.34060.34080.34090.34090.34090.34090.34090.34090.34090.34090.34080.34060.3394
Columns18through20
0.33660.31950.2935
ans=
Columns1through17
0.29350.31950.33660.33940.34060.34080.34090.34090.34090.34090.34090.34090.34090.34090.34080.34060.3394
Columns18through20
0.33660.31950.2935
n=200:
k=10
k=7
ans=
Columns1through17
0.29350.31950.33660.33940.34060.34080.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.3409
Columns18through34
0.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.3409
Columns35through51
0.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.3409
Columns52through68
0.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.3409
Columns69through85
0.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.3409
Columns86through102
0.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.3409
Columns103through119
0.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.3409
Columns120through136
0.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.3409
Columns137through153
0.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.3409
Columns154through170
0.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.34090.3409