资源描述:
《Ch08:数值计算方法之线性方程组求解ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章:线性方程组求解许多工程问题的求解都归结于解一个线性方程组:比如在一个电网中计算各区段的电压和电流,用多级水库进行跨流域调水问题,等等.计算方法课后面的许多问题也涉及求解线性方程组:比如下一章的曲线拟合需要解一个正规方程;再下一章的三次样条插值需要解一个三对角线性方程组,等等.线性方程组求解的方法可以分为三大类:直接方法,也可以称为代数方法,是我们中学里学习的方法的伸延;迭代方法,实际也是不动点方法的应用,也可以理解为几何的方法或拓扑的方法;再就是近代方法,人们还在为之奋斗.其中的一个分支与下一章的最小二乘法类似.对于大部分应用问题来说,目前的主流还是直
2、接方法:主要是高斯消去法和它的各种变化形式.8.1线性方程组概述由n个变元,m个线性方程组成的线性方程组的一般形式为:为了得到有效的数值解方法,我们需要回顾一下它的解的征.1.术语和记号对于上面给出的一般形式有线性方程组,我们可以用矩阵和向量的记号把它简写为Ax=b,其中它们分别称为系数矩阵、未知向量、以及常数向量.2.基本结论为了简化我们的讨论,对于一般形式的线性方程组而言,我们总可以假定它的系数矩阵或者满行秩,或者满列秩.实际情况也大都是这样的.在上面的假定下,我们有:如果m3、就是专门研究这个问题;如果m>n;那么方程组无解,此时作为实际问题还是有意义的,我们可以转向求它的最小二乘解,这是下一章中讨论的问题.如果A是满秩的n阶方阵,那么方程有唯一解.注释:在这一章中,我们主要研究上面第三种情形的问题3.线性方程组增广矩阵用直接方法解线性方程组,我们用到的只是它的增广矩阵,仍然记为A,从而有:其中最后一列就是常数向量.提示:每个人在程序设计时,应形成良好的下标使用习惯.我个人总喜欢把A定义为M×N矩阵,此时可以约定N=M+1.4.线性方程组的解按照定义,如果向量x*满足条件Ax*=b,则x*称为问题的解.但是如果用计算机求解,而计算机
4、内只有问题的增广矩阵,所以现在的问题成为在什么条件下可以停止进一步的计算,如何得到所需要的结果.结论:如果存储在计算机内的增广矩阵的形式为则xj=ajN,j=1,2,…,M即为问题的解.结论:如果增广矩阵的左边是一个单位矩阵,我们认为问题已经解决5.构造线性方程组这个问题也许有些荒唐,但很有意义.我们学习线性方程组的解法,当然要通过解具体的线性方程组来验证方法的有效性.利用计算机随机地生成线性方程可以免去大量的手工劳动.任何一门高级语言都会提供随机数生成函数,也称为随机数发生器.利用随机数发生器来生成线性方程组很方便.C语言的随机数发生器的相关说明在头文件“s
5、tdlib.h”中:函数原型intrand(void)功能:返回一个0—RAND_MAX=32767之间的伪随机数.函数原型voidsrand(unsignedintseed)功能:设置随机数种子,设置相同的种子可以产生相同的随机数序列.6.构造线性方程组源代码#include#defineSN188intM=4,N=5,SEED=29*SN;doubleA[4][5],x;voidFormProblem(){inti,j,k;srand(SEED);for(i=0;i6、double)k/RAND_MAX;A[i][j]=20.0*x-10;}return;}注意:数学中数组的下标值从1开始,而c语言是从0开始.8.2高斯消去法学会了利用计算机随机生成线性方程组,接下来就可以进一步研究如何利用计算机求解线性方程组.高斯消去法解线性方程组其实就是中学里学过的加减消元法.它包括两个过程:首先把线性方程组化为上三角形线性方程组,接下来再用一个回代过程求这个上三角形线性方程组的解.在所有的算法中,高斯消去法的计算量最小,所以是手工求解或利用计算器求解的首选方法.事实上也是求解一般问题的主流方法.1.上三角形线性方程组定义:设A是一个M
7、×M矩阵,如果对任意1≤j
8、,M-1:将第K个方程两边同时除以xK