实验报告材料四线性方程组地求解迭代.docx
- 文档编号:1576747
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:27
- 大小:63.73KB
实验报告材料四线性方程组地求解迭代.docx
《实验报告材料四线性方程组地求解迭代.docx》由会员分享,可在线阅读,更多相关《实验报告材料四线性方程组地求解迭代.docx(27页珍藏版)》请在冰点文库上搜索。
实验报告材料四线性方程组地求解迭代
浙江大学城市学院实验报告
课程名称科学计算
实验项目名称线性方程组的求解-迭代法
实验成绩指导老师(签名)日期2012-4-6
一.实验目的和要求
1.掌握Jacobi迭代方法,Gauss-Seidel迭代方法,SOR迭代方法的编程思想,能够分别用分量形式和矩阵形式编写相关程序。
2.观察SOR迭代法中松弛因子变化情况对收敛的影响。
3.了解Hilbert矩阵的病态性和作为线性方程组系数矩阵的收敛性。
二.实验内容和原理
编程题2-1要求写出Matlab源程序(m文件),并有适当的注释语句;分析应用题2-2,2-3,2-4要求将问题的分析过程、Matlab源程序和运行结果和结果的解释、算法的分析写在实验报告上。
2-1编程注释
设
对下述求解线性方程组的Matlab程序添上注释语句,其中
和
分别为线性方程组的系数矩阵和右端向量;
为迭代初始向量
;
为容许迭代最大次数,
为迭代终止条件的精度(容许误差),终止条件为前后两次迭代解的差的向量2-范数。
1)Jacobi迭代:
2)Gauss-Seidel迭代:
GaussSeidelmethod(A,b,x0,Nmax,eps)
3)松弛迭代:
SORmethod(A,b,x0,Nmax,eps,w)
2-2分析应用题
利用2-1中的程序来分析用下列迭代法解线性方程组:
的收敛性,并求出使
的近似解及相应的迭代次数,其中取迭代初始向量
为零向量。
1)Jacobi迭代法;
2)Gauss-Seidel迭代法;
3)松弛迭代法(松弛因子依次取1.334,1.95,0.95)。
2-3分析应用题
考虑方程组
,其中系数矩阵
为Hilbert矩阵,
选择问题的维数
分别为2、3、5、10,并通过首先给定解再定出右端的办法确定问题,解的给定可以使用函数
定义,并取迭代初始向量
为零向量,迭代误差为
,编写程序:
其中n为Hilbert矩阵的维数,分别构造求解该问题的Jacobi迭代和Gauss-Seidel迭代,看它们是否收敛。
2-4分析应用题
解线性方程组
的解向量,取
,其中
为任一非零的六元向量;编写程序输出结果:
认真观察之,能发现什么有趣的现象?
【MATLAB相关函数】
⏹提取(产生)对角阵
v=diag(x)若输入向量x,则输出v是以x为对角元素的对角阵;若输入矩阵x,则输出v是x的对角元素构成的向量
v=diag(diag(x))输入矩阵x,输出v是x的对角元素构成的对角阵,可用于迭代法中从A中提取D。
⏹提取(产生)上(下)三角阵
v=triu(x)输入矩阵x,输出v是x的上三角阵;
v=tril(x)输入矩阵x,输出v是x的下三角阵;
v=triu(x,1)输入矩阵x,输出v是x的上三角阵,但对角元素为0,可用于迭代法中从A中提取U。
v=tril(x,-1)输入矩阵x,输出v是x的下三角阵,但对角元素为0,可用于迭代法中从A中提取L。
⏹矩阵特征值
b=eig(A)输入矩阵A,输出b是A的所有特征值。
⏹范数
n=norm(x)输入x为向量或矩阵,输出为x的2范数;
n=norm(x,p)输入x为向量或矩阵,当p=1,inf时分别输出为x的1,无穷范数;
⏹Hilbert矩阵
h=hilb(n)输出h为n阶Hilbert矩阵
三.操作方法与实验步骤(包括实验数据记录和处理)
2-1编程注释
设
对下述求解线性方程组的Matlab程序添上注释语句,其中
和
分别为线性方程组的系数矩阵和右端向量;
为迭代初始向量
;
为容许迭代最大次数,
为迭代终止条件的精度(容许误差),终止条件为前后两次迭代解的差的向量2-范数。
1)Jacobi迭代:
function[X]=Jacobimethod(A,b,X0,P,Nmax,eps)
%A和b分别为线性方程组的系数矩阵和右端向量;x0为迭代初始向量X0;Nmax为容许迭代最大%次数,eps为迭代终止条件的精度(容许误差),终止条件为前后两次迭代解的差的向量2-范数%P=1,2,inf或’fro.’
%输出的量:
系数矩阵
的
的值和有关雅可比迭代收敛性的相关信息及AX=b的精确解jX和近似解X
[nm]=size(A);
forj=1:
m
a(j)=sum(abs(A(:
j)))-2*(abs(A(j,j)));
end
fori=1:
n
ifa(i)>=0
disp('请注意:
系数矩阵A不是严格对角占优的,此雅可比迭代不一定收敛')
return
end
end
ifa(i)<0
disp('请注意:
系数矩阵A是严格对角占优的,此方程组由唯一解,且雅可比迭代收敛')
end
fork=1:
Nmax
k
forj=1:
m
X(j)=(b(j)-A(j,[1:
j-1,j+1:
m])*X0([1:
j-1,j+1:
m]))/A(j,j);
end
X,djwcX=norm(X'-X0,P);
xdwcX=djwcX/(norm(X',P)+eps);
X0=X';
X1=A\b;
if(djwcX disp('请注意: 雅可比迭代收敛,此方程的精确解jX和近似解X如下: ') return end end if(djwcX>eps)&&(xdwcX>eps) disp('请注意: 雅可比迭代次数已经超过最大迭代次数Nmax') end a,X=X;jX=X1', end 2)Gauss-Seidel迭代: GaussSeidelmethod(A,b,x0,Nmax,eps) function[x]=GaussSeidelmethod(A,b,x0,P,Nmax,wucha) %输入的量: 线性方程组AX=b的系数矩阵A和b,初始向量x0,范数的名称P=1,2,inf或'fro.',%近似解x的误差(精度)wucha和迭代的最大次数Nmax。 %输出的量: 以系数矩阵 的对角元构成对角矩阵D、A的上三角形矩阵U,但对角 %元为0、A的下三角矩阵L,但对角元为0和有关高斯-赛德尔迭代收敛性的相关信息及其AX=b %的精确解jx和近似解x。 D=diag(diag(A)); U=-triu(A,1); L=-tril(A,-1); dD=det(D); ifdD==0 disp('请注意: 因为对角矩阵D奇异,所以此方程组无解.') else disp('请注意: 因为对角矩阵D非奇异,所以此方程组有解.') iD=inv(D-L);B2=iD*U;f2=iD*b;jx=A\b; x=x0;[nm]=size(A); fork=1: Nmax x1=B2*x+f2;djwcx=norm(x1-x,P); xdwcx=djwcx/(norm(x,P)+eps); if(djwcx return else k;x1';k=k+1;x=x1; end end if(djwcx disp('请注意: 高斯-赛德尔迭代收敛,此A的分解矩阵D,U,L和方程组的精确解jx和近似解如下: ') else disp('请注意: 高斯-赛德尔迭代的结果没有达到给定的精度,并且迭代次数已经超过最大迭代次数Nmax,方程组的精确解jx和迭代向量x如下: ') x=x';jx=jx' end end x=x';D,U,L,jx=jx' 3)松弛迭代: SORmethod(A,b,x0,Nmax,eps,w) function[x]=SORmethod(A,b,x,Nmax,wucha,w) %输入的量: 线性方程组AX=b的系数矩阵A和b,初始向量x,范数名称P=1,2,inf,或'fro.',%松弛因子w,近似解x的误差(精度)wucha和迭代的最大次数Nmax。 %输出的量: 谱半径mH,以系数矩阵A的对角元构成的对角矩阵D、A的上三角矩阵U,但对角%元为0、A的下三角矩阵L,但对角元为0,迭代次数i,有关超松弛迭代收敛性的相关信息 %及其AX=b的精确解jx和近似解x。 D=diag(diag(A));U=-triu(A,1); L=-tril(A,-1);jx=A\b;[nm]=size(A); iD=inv(D-w*L);B2=iD*(w*U+(1-w)*D); H=eig(B2);mH=norm(H,inf); fork=1: Nmax iD=inv(D-w*L);B2=iD*(w*U+(1-w)*D); f2=w*iD*b;x1=B2*x+f2; x=x1;djwcx=norm(x1-jx,inf);xdwcx=djwcx/(norm(x,inf)+eps); if(djwcx disp('谱半径mH,A的分解矩阵D,U,L和方程组的精确解jx,迭代次数i如下: ') mH,D,U,L,jx=jx',i=k-1, return ifi>Nmax disp('迭代次数已经超过最大迭代次数Nmax,谱半径mH,方程组的精确解jx,迭代次数i如下: ') mH,D,U,L,jx=jx',i=k-1, end end end ifmH>=1 disp('请注意: 因为谱半径不小于1,所以超松弛迭代序列发散.') disp('谱半径mH,A的分解矩阵D,U,L和方程组的精确解jx,迭代次数i和迭代序列x如下: ') i=k-1,mH,D,U,L,jx, else disp('因为谱半径小于1,所以超松弛迭代序列收敛,近似解x如下: ') end 2-2分析应用题 利用2-1中的程序来分析用下列迭代法解线性方程组: 的收敛性,并求出使 的近似解及相应的迭代次数,其中取迭代初始向量 为零向量。 1)Jacobi迭代法; 2)Gauss-Seidel迭代法; 3)松弛迭代法(松弛因子依次取1.334,1.95,0.95)。 解: 1)>>A=[4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14]; b=[0;5;-2;5;-2;6]; X0=[000000]'; X=Jacobimethod(A,b,X0,inf,0.0001,100) 请注意: 系数矩阵A是严格对角占优的,此方程组有唯一解,且雅可比迭代收敛 k= 1 X= 01.2500-0.50001.2500-0.50001.5000 k= 2 X= 0.62501.00000.50001.00000.50001.2500 k= 3 X= 0.50001.65630.31251.65630.31251.7500 k= 4 X= 0.82811.53130.76561.53130.76561.6563 k= 5 X= 0.76561.83980.67971.83980.67971.8828 k= 6 X= 0.91991.78130.89061.78130.89061.8398 k= 7 X= 0.89061.92530.85061.92530.85061.9453 k= 8 X= 0.96261.89790.94901.89790.94901.9253 k= 9 X= 0.94901.96510.93031.96510.93031.9745 k= 10 X= 0.98261.95240.97621.95240.97621.9651 k= 11 X= 0.97621.98370.96751.98370.96751.9881 k= 12 X= 0.99191.97780.98891.97780.98891.9837 k= 13 X= 0.98891.99240.98481.99240.98481.9944 k= 14 X= 0.99621.98960.99481.98960.99481.9924 k= 15 X= 0.99481.99650.99291.99650.99291.9974 k= 16 X= 0.99821.99520.99761.99520.99761.9965 k= 17 X= 0.99761.99830.99671.99830.99671.9988 k= 18 X= 0.99921.99770.99891.99770.99891.9983 k= 19 X= 0.99891.99920.99851.99920.99851.9994 k= 20 X= 0.99961.99890.99951.99890.99951.9992 k= 21 X= 0.99951.99960.99931.99960.99931.9997 k= 22 X= 0.99981.99950.99981.99950.99981.9996 k= 23 X= 0.99981.99980.99971.99980.99971.9999 k= 24 X= 0.99991.99980.99991.99980.99991.9998 k= 25 X= 0.99991.99990.99981.99990.99981.9999 k= 26 X= 1.00001.99990.99991.99990.99991.9999 k= 27 X= 0.99992.00000.99992.00000.99992.0000 请注意: 雅可比迭代收敛,此方程组的精确解jx和近似解x如下: X= 0.99992.00000.99992.00000.99992.0000 2) >>A=[4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14]; b=[0;5;-2;5;-2;6]; x0=[000000]'; x=GaussSeidelmethod(A,b,x0,inf,100,0.0001) 请注意: 因为对角矩阵D非奇异,所以此方程组有解. k= 1 ans= 01.2500-0.18751.20310.11331.4814 k= 2 ans= 0.61331.38480.51731.56100.60681.7810 k= 3 ans= 0.73641.71510.76431.77690.81831.8956 k= 4 ans= 0.87301.86390.88411.89380.91331.9494 k= 5 ans= 0.93941.93420.94441.94930.95821.9756 k= 6 ans= 0.97091.96840.97331.97560.97991.9883 k= 7 ans= 0.98601.98480.98721.98830.99031.9944 k= 8 ans= 0.99331.99270.99381.99440.99541.9973 k= 9 ans= 0.99681.99650.99701.99730.99781.9987 k= 10 ans= 0.99841.99830.99861.99870.99891.9994 k= 11 ans= 0.99931.99920.99931.99940.99951.9997 k= 12 ans= 0.99961.99960.99971.99970.99981.9999 k= 13 ans= 0.99981.99980.99981.99990.99991.9999 x= 0.9998 1.9998 0.9998 1.9999 0.9999 1.9999 3) 当w=1.334: A=[4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14]; b=[0;5;-2;5;-2;6]; x0=[000000]'; x=SORmethod(A,b,x,100,0.0001,1.334) 谱半径mH,A的分解矩阵D,U,L和方程组的精确解jx,迭代次数i如下: mH= 0.4305 D= 400000 040000 004000 000400 000040 000004 U= 010100 001010 000101 000010 000001 000000 L= 000000 100000 010000 101000 010100 001010 jx= 1.00002.00001.00002.00001.00002.0000 i= 0 x= 0.9999 2.0000 1.0000 2.0000 1.0000 2.0000 当w=1.95: >>A=[4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14]; b=[0;5;-2;5;-2;6]; x0=[000000]'; x=SORmethod(A,b,x,100,0.0001,1.95) 谱半径mH,A的分解矩阵D,U,L和方程组的精确解jx,迭代次数i如下: mH= 0.9589 D= 400000 040000 004000 000400 000040 000004 U= 010100 001010 000101 000010 000001 000000 L= 000000 100000 010000 101000 010100 001010 jx= 1.00002.00001.00002.00001.00002.0000 i= 0 x= 1.0000 2.0000 1.0000 2.0000 1.0000 2.0000 当w=0.95: >>A=[4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14]; b=[0;5;-2;5;-2;6]; x0=[000000]'; x=SORmethod(A,b,x,100,0.0001,0.95) 谱半径mH,A的分解矩阵D,U,L和方程组的精确解jx,迭代次数i如下: mH= 0.5260 D= 400000 040000 004000 000400 000040 000004 U= 010100 001010 000101 000010 000001 000000 L= 000000 100000 010000 101000 010100 001010 jx= 1.00002.00001.00002.00001.00002.0000 i= 0 x= 1.0000 2.0000 1.0000 2.0000 1.0000 2.0000 2-3分析应用题 考虑方程组 ,其中系数矩阵 为Hilbert矩阵, 选择问题的维数 分别为2、3、5、10,并通过首先给定解再定出右端的办法确定问题,解的给定可以使用函数 定义,并取迭代初始向量 为零向量,迭代误差为 ,编写程序: 其中n为Hilbert矩阵的维数,分别构造求解该问题的Jacobi迭代和Gauss-Seidel迭代,看它们是否收敛。 2-4分析应用题 解线性方程组 的解向量,取 ,其中 为任一非零的六元向量;编写程序输出结果: 认真观察之,能发现什么有趣的现象? 四.实验结果与分析
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 材料 线性方程组 求解
![提示](https://static.bingdoc.com/images/bang_tan.gif)