实验3线性方程组的数值解—迭代法1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验3线性方程组数值解-迭代法一、实验目的:掌握Jaccobi迭代法、Guass-Sidel迭代法、松弛法求解线性方程组的数值解。二、实验内容:1.1题目分别用雅格比法与高斯-赛德尔迭代法解下列方程组Ax=b,研究其收敛性,上机验证理论分析是否正确,比较它们的收敛速度,观察右端项对迭代收敛有无影响。(1)A行分别为A1=[6,2,-1],A2=[1,4,-2],A3=[-3,1,4];b1=[-3,2,4]T,b2=[100,-200,345]T,(2)A行分别为A1=[1,0.8,0.8],A2[0.8,1,0.8],A3=[0.8,0.8,1];b1=[3,2,1]T,b2=[5,0,-10]T,(3)A行分别为A1=[1,3],A2=[-7,1];b=[4,6]T,1.2原理和思路1.2.1基本原理(1)Jacobi迭代法设有n阶方程组Ax=b,若系数矩阵非奇异,且0iia(i=1,2,…,n),将方程组改写成同解方程组:11,221112323122221213132121111111nnnnnnnnnnnnnxaxaxabaxxaxaxabaxxaxaxabax然后写成迭代格式:)(11,)(22)(11)1()(2)(323)(121122)1(2)(1)(313)(212111)1(1111knnnknknnnnknknnkkkknnkkkxaxaxabaxxaxaxabaxxaxaxabax上式也可以简单地写为:),,2,1(1)(1)1(nixabaxkjnijjijiiiki对以上两式给定一组任意初值(0)(0)(0)(0)12(,,)Tnxxxx后,经反复迭代可得到一向量序列()()()1(,)kkkTnxxx,如果x(k)收敛于****12(,,)Tnxxxx,则),,2,1(*nixi就是方程组Ax=b的解,该方法称为雅克比(Jacobi)迭代法。设D=diag(a11,a22,…,ann),将Ax=b改写为:AX=(D–(D-A))x=b,DX=(D-A)x+b,X=(I–D-1A)x+D-1b。记B=I–D-1A,g=D-1b。则迭代格式的向量表示为(1)()kkJXBXgBJ=I–D-1A称为雅克比迭代矩阵。Jacobi迭代收敛的充要条件:迭代矩阵BJ的谱半径1()()1JBIDA。特别地,若系数矩阵A满足以下特征中的任意一条,则Jacobi迭代法收敛:①A为行对角占优阵,即1(1,2,,)niiijjjiaain;②A为列对角占优阵,即1(1,2,,)njjijiijaajn;③A的元素满足1||1,0(1,2,,)||nijjjiiiijaajna。(2)Gauss-Seidel迭代法在雅可比迭代中,每次迭代时只用到前一次的迭代值,而在高斯-塞德尔迭代中,每次迭代时充分利用最新的迭代值。一旦一个分量的新值被求出,就立即用于后续分量的迭代计算,而不必等到所有分量的新值被求出以后。如果迭代收敛,)1(kix应该比)(kix更接近于原方程的解*ix(i=1,2,…,n),因此在迭代过程中及时地以)1(kix代替)(kix(i=1,2,…,n-1),可得到更快的收敛效果。这样可将迭代格式写成:)1(11,)1(22)1(11)1()(2)(323)1(121222)1(2)(1)(313)(212111)1(1111knnnknknnnnknknnkkkknnkkkxaxaxabaxxaxaxabaxxaxaxabax上式可简写为:1(1)()()()11inkkkkiiiijjijjjjiiixxbaxaxa(i=1,2,…,n)该式称为Gauss-Seidel迭代格式。对于上述Gauss-Seidel迭代式,如写成矩阵形式为:(1)kx=D-1(1)()()kkLxUx+D-1b,(1)kx=1(1)1()()kDLUxDLb。其中,L和U分别为:121211,1,10000,00nnnnnnaaaLUaaa则Gauss-Seidel迭代法的迭代矩阵为1()GSBDLU。其收敛的充要条件为谱半径1()(())1GSBDLU。特别地,若系数矩阵A满足Jacobi迭代法三条特征中的任意一条,则Gauss-Seidel迭代法收敛。1.2.2实验思路(1)Jacobi迭代法的算法为:.,1,0,,2,1/)(),,()(1)1()0()0(1)0(表示迭代次数kniaxabxxxxiikjnijjijikiTnJacobi迭代法的流程图为:在以上的流程图中,先读入数据,即先输入系数矩阵A,常数向量b,初始值,停止条件和最大循环次数。图中iy是迭代公式中的)1(kix,k是循环次数,N是最大循环次数。(2)Gauss-Saidel迭代法的算法为:.,1,0,,1/)(),,()(111)1()1()0()0(1)0(kniaxaxabxxxxiikjnijijijkjijikiTnGauss-Seidel迭代法的流程图为:以上的流程图中,先读入数据,即先输入系数矩阵A,常数向量b,初始值,停止条件和最大循环次数N。流程图中的jy是高斯-塞德尔迭代公式中的()kix,iy是高斯-塞德尔迭代公式中的(1)kix,k是迭代次数,N是最大循环次数。1.3计算结果与分析(1)当621142314A,3124b时,通过两种迭代法得到的结果如下图所示:当621142314A,1002200345b时,通过两种迭代法得到的结果如下图所示:【实验现象】通过上述两组实验对比得到的结果显示:Jacobi迭代和Gauss-Seidel迭代都是收敛的。【原因分析】由矩阵A可知,A为列对角占优阵,所以Jacobi迭代法和Gauss-Seidel迭代法都是收敛的。从上述两组实验对比可以得出,Gauss-Seidel迭代法比Jacobi迭代法的收敛速度更快,而且右端项b对迭代收敛没有影响。(2)当10.80.80.810.80.80.81A,3121b时,通过两种迭代法得到结果如下图所示:当10.80.80.810.80.80.81A,52010b时,通过两种迭代法得到结果如下所示:【实验现象】通过上述两组实验对比得到的结果显示:Jacobi迭代都是发散的,而Gauss-Seidel迭代都是收敛的。【原因分析】Jacobi迭代矩阵00.80.80.800.80.80.80B,经过计算()1.61B,故Jacobi迭代是发散的。Gauss-Seidel迭代矩阵00.80.800.640.1600.1280.768B,计算()0.7151B,故Gauss-Seidel迭代是收敛的。(3)当1371A,46b时,通过两种迭代法得到计算结果如下图所示:【实验现象】通过上述实验结果显示:Jacobi迭代法和Gauss-Seidel迭代法都是发散的。【原因分析】Jacobi迭代矩阵0370B,经计算()211B,故Jacobi迭代法是发散的。Gauss-Seidel迭代矩阵03021B,经计算()211B,故Gauss-Seidel迭代是发散的。【实验结论】1、判断Jacobi迭代和Gauss-Seidel迭代是否收敛,可计算它们的迭代矩阵B的谱半径是否小于1。()1B,则收敛;()1B,则发散;2、从实验结果可以看出,Gauss-Seidel迭代法比Jacobi迭代法的收敛速度快;3、方程右端项对Jacobi迭代和Gauss-Seidel迭代的收敛性事没有影响的。

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功