实验报告材料四线性方程组地求解-迭代.doc
《实验报告材料四线性方程组地求解-迭代.doc》由会员分享,可在线阅读,更多相关《实验报告材料四线性方程组地求解-迭代.doc(21页珍藏版)》请在课桌文档上搜索。
1、实验项目名称 线性方程组的求解迭代法一. 实验目的和要求1 掌握Jacobi迭代方法,Gauss-Seidel迭代方法,SOR迭代方法的编程思想,能够分别用分量形式和矩阵形式编写相关程序。2 观察SOR迭代法中松弛因子变化情况对收敛的影响。3 了解Hilbert矩阵的病态性和作为线性方程组系数矩阵的收敛性。二. 实验内容和原理编程题2-1要求写出Matlab源程序(m文件),并有适当的注释语句;分析应用题2-2,2-3,2-4要求将问题的分析过程、Matlab源程序和运行结果和结果的解释、算法的分析写在实验报告上。2-1 编程注释设 对下述求解线性方程组的Matlab程序添上注释语句,其中和分
2、别为线性方程组的系数矩阵和右端向量;为迭代初始向量;为容许迭代最大次数,为迭代终止条件的精度(容许误差),终止条件为前后两次迭代解的差的向量2-X数。1) Jacobi迭代:2) Gauss-Seidel迭代:GaussSeidelmethod(A,b,x0,Nmax,eps)3) 松弛迭代:SORmethod(A,b,x0,Nmax,eps,w)2-2 分析应用题利用2-1中的程序来分析用如下迭代法解线性方程组:的收敛性,并求出使的近似解与相应的迭代次数,其中取迭代初始向量为零向量。1Jacobi迭代法;2Gauss-Seidel迭代法;3松弛迭代法松弛因子依次取1.334,1.95,0.9
3、5。2-3 分析应用题考虑方程组,其中系数矩阵为Hilbert矩阵,选择问题的维数分别为2、3、5、10,并通过首先给定解再定出右端的方法确定问题,解的给定可以使用函数定义,并取迭代初始向量为零向量,迭代误差为,编写程序:其中n为Hilbert矩阵的维数,分别构造求解该问题的Jacobi迭代和Gauss-Seidel迭代,看它们是否收敛。2-4 分析应用题解线性方程组的解向量,取,其中为任一非零的六元向量;编写程序输出结果:认真观察之,能发现什么有趣的现象?【MATLAB相关函数】n 提取(产生)对角阵v=diag(x)假如输入向量x,如此输出v是以x为对角元素的对角阵;假如输入矩阵x,如此输
4、出v是x的对角元素构成的向量v=diag(diag(x)输入矩阵x,输出v是x的对角元素构成的对角阵,可用于迭代法中从A中提取D。n 提取(产生)上(下)三角阵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。n 矩阵特征值b=eig(A)输入矩阵A,输出b是A的所有特征值。n X数n=norm(x)输入x为向量或矩阵,输出为x的2X数;n=
5、norm(x,p)输入x为向量或矩阵,当p=1, inf时分别输出为x的1,无穷X数;n Hilbert矩阵h=hilb(n)输出h为n阶Hilbert矩阵三. 操作方法与实验步骤包括实验数据记录和处理2-1 编程注释设 对下述求解线性方程组的Matlab程序添上注释语句,其中和分别为线性方程组的系数矩阵和右端向量;为迭代初始向量;为容许迭代最大次数,为迭代终止条件的精度(容许误差),终止条件为前后两次迭代解的差的向量2-X数。1Jacobi迭代:function X = Jacobimethod( A,b,X0,P,Nmax,eps)%A和b分别为线性方程组的系数矩阵和右端向量;x0为迭代初
6、始向量X0;Nmax为容许迭代最大%次数,eps为迭代终止条件的精度(容许误差),终止条件为前后两次迭代解的差的向量2-X数%P=1,2,inf或fro.%输出的量:系数矩阵的的值和有关雅可比迭代收敛性的相关信息与AX=b的准确解jX和近似解X n m=size(A);for j=1:m a(j)=sum(abs(A(:,j)-2*(abs(A(j,j);endfor i=1:nif a(i)=0 disp(请注意:系数矩阵A不是严格对角占优的,此雅可比迭代不一定收敛)returnendendif a(i)0 disp(请注意:系数矩阵A是严格对角占优的,此方程组由唯一解,且雅可比迭代收敛)e
7、ndfor k=1:Nmax kfor j=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=Ab;if (djwcXeps)&(xdwcXeps)&(xdwcXeps) disp(请注意:雅可比迭代次数已经超过最大迭代次数Nmax)enda,X=X;jX=X1,end2Gauss-Seidel迭代:GaussSeidelmethod(A,b,x0,Nmax,eps)function x = GaussSei
8、delmethod( A,b,x0,P,Nmax,wucha )%输入的量:线性方程组AX=b的系数矩阵A和b,初始向量x0,X数的名称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);if dD=0 disp(请注意:因为对角矩阵D奇异,所以此方程组无解.)els
9、e disp(请注意:因为对角矩阵D非奇异,所以此方程组有解.) iD=inv(D-L);B2=iD*U;f2=iD*b;jx=Ab; x=x0;n m=size(A);for k=1:Nmax x1=B2*x+f2;djwcx=norm(x1-x,P); xdwcx=djwcx/(norm(x,P)+eps);if (djwcxwucha)|(xdwcxwucha)returnelse k;x1;k=k+1;x=x1;endendif (djwcxwucha)|(xdwcxwucha) disp(请注意:高斯-赛德尔迭代收敛,此A的分解矩阵D,U,L和方程组的准确解jx和近似解如下:)els
10、e disp(请注意:高斯-赛德尔迭代的结果没有达到给定的精度,并且迭代次数已经超过最大迭代次数Nmax,方程组的准确解jx和迭代向量x如下:) x=x;jx=jxendendx=x;D,U,L,jx=jx3松弛迭代:SORmethod(A,b,x0,Nmax,eps,w)function x = SORmethod( A,b,x,Nmax,wucha,w )%输入的量:线性方程组AX=b的系数矩阵A和b,初始向量x,X数名称P=1,2,inf,或fro.,% 松弛因子w,近似解x的误差精度wucha和迭代的最大次数Nmax。% 输出的量:谱半径mH,以系数矩阵A的对角元构成的对角矩阵D、A的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 材料 线性方程组 求解
链接地址:https://www.desk33.com/p-16341.html