第3章线性方程组的解优秀课件.ppt
第3章线性方程组的解第1页,本讲稿共33页第第3章章 线性方程组的解线性方程组的解w3.1问题的提出问题的提出w3.2简单迭代简单迭代w3.3 紧凑迭代紧凑迭代w3.4 松弛迭代松弛迭代w3.5 高斯消去法高斯消去法目录目录第2页,本讲稿共33页3.1问题的提出问题的提出在化工设计和计算中常常要用到线性方程组,尽管线性方程组不是解决问题的关键,但不通过线性方程组的求解,整个化工设计和计算问题就无法得到解决。下面我们来看一个有关精馏塔计算中碰到的线行方程组求解问题。在精馏塔计算中,根据物料平衡、能量平衡、相平衡等建立了MESH方程后,首先要解决的是根据ME方程,计算出各塔板上的各组分的浓度。根据建立的ME方程,经过处理,我们可以得到以下线性方程组:Bi,1 xi,1+Ci,1 xi,2=D1 Ai,2 xi,1+Bi,2 xi,2+C2 xi,3=D2 Ai,3 xi,2+Bi,3xi3+Ci,3xi,4=D3 Ai,jxi,j-1+Bi,jxij+Ci,jxi,j+1=Dj Ai,N-1 xi,N-2+Bi,N-1 xi,N-1 +Ci,N-1 xi,N=DN-1 AiN xi,N-1+Bi,N xiN =DN3.13.23.33.43.5第3页,本讲稿共33页3.1问题的提出问题的提出用迭代法求解线性方程组AX=t时,首先对方程组AX=t 进行等价变换,构造同解方程组X=MX+y,以此构造迭代关系式:任取初始向量,代入迭代式中,经计算得到迭代序列X(1),X(2),。若迭代序列X(k+1)收敛,设X(k)的极限为X*,对迭代两边取极限即X*=MX*+y,X*是方程组AX=t的解,此时称迭代法收敛,否则称迭代法发散。线性方程组迭代收敛的充分必要条件是迭代谱半经:其中X是矩阵M的特征根。事实上,若X为方程组AX=t的解,则由迭代式X(k+1)=MX(k)+t,可得到:由线性代数定理,的充分必要条件为(M)1。3.13.23.33.43.5第4页,本讲稿共33页3.1问题的提出问题的提出通过计算矩阵的范数等方法判断收敛工作的方法。首先设若|M|P为矩阵M的范数,其中:只要迭代矩阵M满足 或 ,就可以判断迭代序列是收敛的。但这个条件是充分条件,也就是说,当 或 ,不能判断迭代序发散。在计算中当相邻两次的误差向量的某种范数|X(k+1)X(k)|P小于给定的精度时,在计算机计算中通常利用前后两次计算中各分量的绝对偏差或其相对值小于计算精度,就停止迭代计算,视X(k+1)为方程组AX=t的近似解。3.13.23.33.43.5第5页,本讲稿共33页3.2简单迭代简单迭代 w3.2.1 简单迭代公式简单迭代公式设有N元线性方程组:写成矩阵形式为AX=t。若aii0,i=1,2,.n,将(3-1)中的每个方程的aiixi留在方程的左边,其余各项都移到方程的右边;方程两边除以aii,则得到下面同解方程组:3.13.23.33.43.5第6页,本讲稿共33页3.2简单迭代简单迭代 w3.2.1 简单迭代公式简单迭代公式记 ,构造迭代公式:当迭代矩阵B的谱半径 时,迭代收敛,这是收敛的充分必要条件。迭代矩阵的某范数 时,迭代收敛。要注意的是范数小于1只是判断迭代矩阵收敛的充分条件.3.13.23.33.43.5第7页,本讲稿共33页3.2简单迭代简单迭代 w3.2.1 简单迭代公式简单迭代公式当方程组的系数矩阵具有某些性质时,可直接判定由它生成的简单迭代矩阵是收敛的。其条件如下:(1)为行对角优阵,即,。(2)为列对角优阵,即,。以上两个条件只要满足一个,简单迭代过程就收敛。3.13.23.33.43.5第8页,本讲稿共33页3.2简单迭代简单迭代w3.2.2简单迭代计算机算法简单迭代计算机算法 为了简单起见,在算法中假定矩阵满足简单迭代要求,即 ,设系数矩阵A满足迭代收敛条件1、进行变量定义工作,一般需要系数矩阵变量a、迭代计算变量x1、初值变量x0、方程数n、收敛精度及其它一些可能要用到的中间变量,注意这一工作一定要细心,否则在进行VB计算的时候程序常常会出一些莫名其妙的错误,希望读者引起注意。2、利用循环语句和Inputbox()语句输入方程数、系数矩阵与常数项向量的元素及收敛精度要求。精度要求也可直接在程序中体现而不进行输入。3、根据公式(3-2)计算bij和yi,并置 4、利用DOLoop Until 语句进行迭代循环计算及偏差计算,当偏差符合要求时,停止计算,若偏差不符合要求则将向量X0和X1互换,继续进行迭代循环计算。5、输出方程组的解,3.13.23.33.43.5第9页,本讲稿共33页3.2简单迭代简单迭代w3.2.2简单迭代计算机算法简单迭代计算机算法例例 3.1:用简单迭代格式解下列方程组:解:方程的迭代格式:或,简单迭代收敛。3.13.23.33.43.5第10页,本讲稿共33页3.2简单迭代简单迭代w3.2.2简单迭代计算机算法简单迭代计算机算法取初始值 ,计算结果由表3.1所示。表表3.1方程组的准确解是-1,2,1012345671-1.5-1.25-0.915-0.9575-1.01445-1.00722-0.99754311.62.082.0681.98641.988442.002312.0019710.91.091.0170.98470.997111.00261.000490.60.480.3550.04250.056950.007230.0013.13.23.33.43.5第11页,本讲稿共33页3.2简单迭代简单迭代w3.2.3 程序实例程序实例(1)求解方程组启动上面的VB程序依次输入2,2,1,5,3,7,10,就可以得到方程的解。方程的解为:3.13.23.33.43.5VB调用第12页,本讲稿共33页3.2简单迭代简单迭代w3.2.3 程序实例程序实例(2 2)求解方程组)求解方程组 启启动动上上面面的的VBVB程程序序依依次次输输入入3 3,5 5,1 1,3 3,5 5,2 2,7 7,-1-1,1010,1 1,3 3,1010,9 9,就就可可以得到方程的解。以得到方程的解。方程的解为:方程的解为:3.13.23.33.43.5VB调用第13页,本讲稿共33页3.3 3.3 紧凑迭代紧凑迭代 w3.3.1紧凑迭代计算公式紧凑迭代计算公式在简单迭代中,我们用的值代入方程(5.2)中计算出,的值,的计算公式是事实上,在计算前,已经得到值,不妨将已算出的分量直接代入迭代式中,及时使用最新计算出的分量值.因此的计算公式可改为:3.13.23.33.43.5第14页,本讲稿共33页3.3 3.3 紧凑迭代紧凑迭代 w3.3.1紧凑迭代计算公式紧凑迭代计算公式即用向量计算出的值,用向量计算出的值,用向量计算出的值,这种迭代格式称为紧凑迭代。构造方程组的紧凑迭代格式的步骤与简单迭代类似,设将式(3.1)中每个方程的留在方程的左边,其余各项都移到方程的右边;方程两边除以,得到下面同解方程组:3.13.23.33.43.5第15页,本讲稿共33页3.3 3.3 紧凑迭代紧凑迭代 w3.3.1紧凑迭代计算公式紧凑迭代计算公式记,对方程组对角线以上的取第步迭代的数值,对角线以下的取第步迭代的数值,构造紧凑迭代形式:3.13.23.33.43.5第16页,本讲稿共33页3.3 3.3 紧凑迭代紧凑迭代 w例例3.23.2:用紧凑迭代格式解方程组:用紧凑迭代格式解方程组 解:方程的迭代格式:取初始值,有时,时,3.13.23.33.43.5第17页,本讲稿共33页3.3 3.3 紧凑迭代紧凑迭代 计算结果由表3.2所示。012340-2.5-0.93-1.0062-0.99970802.11.9941.99962.000701.040.99360.9999640.9999641.50.570.070.0063.13.23.33.43.5第18页,本讲稿共33页3.3 3.3 紧凑迭代紧凑迭代 w3.3.2 紧凑迭代计算机算法紧凑迭代计算机算法比较两者的程序,可以发现,紧凑迭代格式程序上所作的修改:1、是在进行第一轮计算时,需将变量x1(i)赋值为x0(i),在第一次迭代计算的时候认为前后两次计算值相同,通过迭代计算不断修改x1(I)的值,这种结构安排可以减少计算机内存。2、在迭代计算公式中直接用了x1(j),而不是x0(j),这样可以保证在同一轮计算中不断用新计算得到的值代入到迭代公式中,而保证此项工作有效的前提是必须首先作第一项修改工作。对于紧凑迭代方法收敛的条件有:1:若方程组系数矩阵为列或行对角优阵时,则迭代收敛。2:若方程组系数矩阵为正定阵,则迭代收敛。请读者自己比较前面两种方法的收敛条件,并通过计算机模拟实验来验证这些条件的正确性。3.13.23.33.43.5第19页,本讲稿共33页3.3 3.3 紧凑迭代紧凑迭代 w3.3.2 紧凑迭代计算机算法紧凑迭代计算机算法利用上面的程序,我们进行下面两组方程的计算,并和直接迭代法进行比较(精度和初值均相同):由上面的计算结果可以知道,在方程组收敛的情况下,紧凑格式比直接迭代格式所需的迭代次数少,但情况并不一定如此。方程组方法迭代次数X1X21直接120.999810.999811紧凑70。999520。999812直接40.2828000.1717002紧凑30.282830.171723.13.23.33.43.5VB调用第20页,本讲稿共33页3.4 松弛迭代松弛迭代w3.3.1 松弛迭代公式松弛迭代公式方程组的简单迭代形式,记,其中是下三角矩阵,是上三角矩阵。得紧凑的迭代形式:记,有这样可视为的修正量,而恰是由加修正量而得,如果将改为乘一个因子,迭代格式为:3.13.23.33.43.5第21页,本讲稿共33页3.4 松弛迭代松弛迭代w.3.1 松弛迭代公式松弛迭代公式整理得(3-4)这里为修正因子,称为松弛因子,而式(5.4)称为松弛迭代。迭代的分量形式为(3-5)式(5.5)称为松弛迭代的计算格式。3.13.23.33.43.5第22页,本讲稿共33页3.4 松弛迭代松弛迭代例例3.3:请用松弛迭代法求解下面线性方程组,松弛因子为1.1解:方程的迭代格式:取初始值,有时,k=2,3,4的迭代计算请读者仿照前面的示例,自己完成,并判断按此迭代格式,方程组的收敛趋势。3.13.23.33.43.5第23页,本讲稿共33页3.4 松弛迭代松弛迭代w3.4.2松弛迭代计算机算法松弛迭代计算机算法该法的计算机迭代算法,和紧凑格式基本相同,所不同的是在计算x1(I)时作一修改即可,即只需将紧凑格式中的:x1(i)=s+t(i)改为:s=s+t(i)x1(i)=(1-omiga)*x0(i)+omiga*s同时在初始化时增加omiga的定义及赋值工作即可。3.13.23.33.43.5第24页,本讲稿共33页3.4 松弛迭代松弛迭代w3.4.3松弛迭代松弛迭代VB程序程序VB程序只需按上面所述将紧凑格式的程序略作修改即可,不再列出,松弛迭代的收敛条件如下:1、松弛迭代收敛的必要条件 02。2、若A为正定矩阵,则当02时,松弛迭代恒收敛。以上条件给出了松弛迭代因子的范围。对于每个给定的方程组,确定究竟取多少为最佳,这是比较困难的问题,对某些特定的方程组,我们可以得到一些理论结果。通常,把01的迭代称为亚松弛迭代,=1则退化为紧凑迭代,而把12的迭代称为超松弛迭代。用松驰迭代法解紧凑格式中的两组方程组,并取不同的松弛因子,有以下结果:由上面的计算结果可知,选取不同的松弛因子,对迭代计算影响很大,在具体计算中应根据不同的方程选取不同的松弛因子。方程组松弛因子迭代次数X1X210.860.9998350.99995310.951.0000421.0000051171.000111.0000511.1131.0000881.00004920.850.2828320.17167520.940.2828600.1716972130.282830.1717173.13.23.33.43.5第25页,本讲稿共33页3 3.4三种迭代方法混合程序示三种迭代方法混合程序示例例 wVB界面界面3.13.23.33.43.5第26页,本讲稿共33页3 3.4三种迭代方法混合程序示三种迭代方法混合程序示例例w计算实例计算实例利用上面的程序,用3种方法求解下列方程组:解:解:第一种方法-简单迭代启动上面的VB程序,按照提示分别输入以下数据:经18次迭代计算,得以下解:VB调用60-1-3102-502-32440203.13.23.33.43.5第27页,本讲稿共33页3 3.4三种迭代方法混合程序示三种迭代方法混合程序示例例 第二种方法紧凑迭代,经10次迭代,得以下解:第三种方法松弛迭代,取松弛因子等于0.5,经51次迭代,可 得以下解:比较上面的计算过程,在相同精度的要求下,紧凑迭代所迭代计算的次数最小,而松弛迭代由于松弛因子取得不是十分理想,其迭代次数最多,如果修改松弛因子,松弛迭代方法可获得比直接迭代少的计算次数。而紧凑迭代的收敛速度一般比简单迭代快,但并非绝对如此,希望读者利用上面的程序,自己进行验证练习。3.13.23.33.43.5第28页,本讲稿共33页3.5 3.5 高斯消去法高斯消去法w3.5.13.5.1高斯消去法原理高斯消去法原理 高斯消去法和前面介绍的3种方法有很大的不同,它不需要方程组解的初值,也不需要重复迭代计算,它通过消去和回代两个过程就可以直接求出方程组的解。和前面的迭代法一样,在计算过程中,也有可能发散而得不到方程组的解,但可以通过一些其它方法解决。下面以一个3元方程为例,说明高斯消去法的计算步骤。设一个3元方程组,以矩阵形式表示为:(3-6)高斯消去法的步骤为:1、用除(3-6)方程组的第一个方程组,(3-6)变为:2、用 乘以方程组(3-7)的第一个方程,并从其第二个方程中减去,得:(3-8)3.13.23.33.43.5第29页,本讲稿共33页3.5 3.5 高斯消去法高斯消去法同法将(3-8)的第一个方程乘 ,再从第三个方程中减去,得:(3-9)再进行上述1、2两步运算时,称第一行为枢轴行,称为主元。3、相继以第二行和第三行为枢轴行,分别以 为主元,进行同样的计算,最后得到:(3-10)其系数矩阵是一个上三角阵(为简单起见,虽然系数矩阵已改变,仍用“”表示。3.13.23.33.43.5第30页,本讲稿共33页3.5 3.5 高斯消去法高斯消去法4、回代求出最后解方程组(3-10)即为下列线性方程组:(3-11)(3-12)(3-13)则由方程(3-13)直接得出x3,将此值代入方程(3-12),可得x2,同理可得x1,这一过程称为回代。3.13.23.33.43.5第31页,本讲稿共33页3.5 3.5 高斯消去法高斯消去法w3.5.2 3.5.2 高斯消去法程序及实例高斯消去法程序及实例利用上面得程序依次输入3,6,-1,-3,10,2,-5,2,-3,2,4,4,20得到方程得解为:高斯程序3.13.23.33.43.5VB调用第32页,本讲稿共33页3.5 3.5 高斯消去法高斯消去法w3.5.3完全主元消去法第33页,本讲稿共33页