1、 毕业论文 开题报告 信息与计算科学 矩阵方程的数值解法 一、选题的背景、意义 1.选题的背景 在科学、工程计算中,求解矩阵方程的任务占相当大的份额。这是因为,矩阵方程不仅能以完整的形式作为许许多多实际问题的模型之一,而且还能作为不少其他数值方法处理过程中转化而成的组成部分。例如,在电路网络、弹性力学、潮流计算、热传导、振动等领域,其基本模型就是矩阵方程,而求微分方程边值问题的差分法和有限元法等数值计算本身,也导致求解某些矩阵方程。 在系统控制等工程研究领域经常遇到矩阵方程的求解问 题。自动控制系统最重要的一个特征是稳定性问题 ,它表示系统能妥善地保持预定工作状态 ,耐受各种不利因素的影响 ,
2、因此矩阵方程在系统的稳定性理论 ,极点配置等方面具有重要的意义。在常微分方程的定性研究以及数值求解常微分方程的隐式 Rung-kwtta方法和块方法中 ,也需要求解矩阵方程。此外 ,在广义特征值问题的摄动研究中及隐式常微分方程的数值解中 ,经常遇到矩阵方程的求解问题。 1.1.2 选题的意义 随着科学技术的迅速发展,矩阵方程越来越多地出现在科学与工程计算领域,关于这类问题的研究也日益受到人们的高度重视对矩阵方程的 研究具有很重要的理论意义和很高的应用价值所以,学会如何更好的解矩阵方程就显得非常重要。本文主要介绍了解矩阵方程的高斯消元法、 Jacobi迭代法、 Gauss-Seidcl迭代法和
3、SOR迭代方法。在这些方法的基础上,利用 matlab软件,快速求出矩阵方程的解。通常熟练使用这些工具或编写程序,而这通常是一项入门缓慢、熟练精通时间较长的工作。 MATLAB在提供强大的计算功能,也为我们用数值方法求解矩阵方程提供了很大的方便。 1.1.3 求解线性方程组 由于线性方程组是矩阵方程的一个特例,所以本文试图将解线性方程组的 一些经典方法推广用来解矩阵方程。 记线性方程组为 nnnnnnnnnnbxaxaxabxaxaxabxaxaxa22112222212111212111( 1) 这里 ija ( nji ,2,1, )为方程组的系数, ib ( ni ,2,1 )为方程组自
4、由项。 方程组( 1)的矩阵形式为 bAx 其中 nnnnnnaaaaaaaaaA212222111211,n21xxxx ,n21bbbb , 实际应用中,主要处理实数情形的方程组,即 nnRA , nRb 。 如果系数矩阵 A 的行列式不为 0, 则可根据 Gramer(克兰姆)法则知上述方程组存在唯一解 DDx ii ( ni ,2,1 ) 其中 nnnnaaaaaaaaaD2n1n2222111211 ,nnninninniiniiiaabaaaabaaaabaaD11-121221-22111111-111 。 由此可知利用 Gramer法则求解一个 n 阶方程组需要计算 1n 个
5、n 阶行列式 , 若 n 阶行列式通过行列式的展开定理来计算 , 则其计算量不低于 !n 次乘法 , 因此 , Gramer 法则求解一个 n 阶方程组的工作量不少于 )!1( n 次乘法运 算 . 由此可见 Gramer法则是不实用的 , 不是面向计算机的算法 , 必须研究其它数值方法 。 解上述线性方程组数值的数值方法主要有如下两类 : (1)直接法 : 就是在没有舍入误差的情况下 , 通过有限步的四次运算可以求得方程组准确解的方法 , 但由于实际计算中舍入误差是客观存在的 , 因而使用此类方法也只能得到近似解。 (2)迭代法 : 就是先给出解的一个初始近似值 , 然后按一定的法则逐步求各
6、个更准确的近似解的方法 , 因此是用某种极限过程逐步逼近准确解的方法。 1.1.4求解矩阵方程 记矩阵方程组 AX=B nnnnnnaaaaaaaaaA212222111211 1 1 1 2 12 1 2 2 212nnn n nnx x xx x xXx x x1 1 1 2 12 1 2 2 212nnn n nnb b bb b bBb b b则 1 1 1 2 12 1 2 2 212nnn n nna a aa a aa a a11 12 121 22 212nnn n nnx x xx x xx x x=11 12 121 22 212nnn n nnb b bb b bb b
7、b已知 A,B,求 X; 第一步,1 1 1 2 12 1 2 2 212nnn n nna a aa a aa a a11211nxxx=11211nbbb, 11 ii Dx D( ni ,2,1 ) 其中,nnnnaaaaaaaaaD2n1n2222111211 ,1 1 1 - 1 1 1 1 1 12 1 2 - 1 1 1 2 1 211 - 1 1 1i i ni i nin n i n n i n na a b a aa a b a aDa a b a a ; 第二步,1 1 1 2 12 1 2 2 212nnn n nna a aa a aa a a12222nxxx=12
8、222nbbb, 22 ii Dx D( ni ,2,1 ) 中,nnnnaaaaaaaaaD2n1n2222111211 ,1 1 1 - 1 1 2 1 1 12 1 2 - 1 1 2 2 1 221 - 1 2 1i i ni i nin n i n n i n na a b a aa a b a aDa a b a a ; 依次类推,可分别得到 ijij Dx D( ni ,2,1 ; nj ,2,1 ); nnnnaaaaaaaaaD2n1n2222111211 ,1 1 1 - 1 1 j 1 1 12 1 2 - 1 2 j 2 1 21 - 1 1i i ni i nijn
9、n i n j n i n na a b a aa a b a aDa a b a a 二、研究的基本内容与拟解决的主要问题 2.1 矩阵方程 AX=B有解的判定 定理 1.矩阵方程 AX=B 有解的充要条件是 : ( ) ( , ) (0 ) ; ( )nr A r A B r r n I 为 单 位 阵 证明:将矩阵 B及 X按列分块 ,于是 方程 可以写成 .: 1 2 n 1 2 n( , , ) ( , , ) ,A X X X B B B, 即 1 2 n 1 2 n( , , ) ( , , )A X A X A X B B B, AX=B有解 A的列向量组与( A,B)得列向量
10、组等价于 ( , ) (0 )r A B r r n 。 推论 1:若 AX=B有解 , 则 ( 1) ()r A n 时, 方程 有唯一解 ; ( 2) ()r A n 时 ,方程 有无穷解 。 2.2 线性方程 组的一些常用数值算法 2.2.1 Guass 消去法 Gauss消去法主要包括两个过程 : 消元过程和回代过程。具体如下 : 化一般方程为三角方程 (消元过程 ) 考虑矩阵方程方程 BAX 其中 nnij RaA , nnij RbB 。 设 011a ,令 ,/1 111 a ,),( 121111 Tnaaaa ,),0( 1211 Tnaaa Te )0,0,1(1 。构造
11、Gauss矩阵 TeaIG 1111 , 用 1G 左乘 1a 得 TTn aaaaGaG )0,0,(),( 1112111111 , 从而 ),( 11 ibAG 具有下列形式: )2()2()2(2)2(2)2(2)2(2211121111)2()2(00),(),(nnnnnnibaabaabaaabAGbA, 其中 ( 2 ) ( 2 )1 1 1 1 1 11111, , 2 , , .ij ij ij j i i iiia a l a b b l bal i j na 一般地,如果已经利用 Gauss矩阵 11 , kGG 得到 11 12 1 11( 2 ) ( 2 ) ( 2
12、 )22 2 21( ) ( )1 1 1 1 ( ) ( ) ( )1( ) ( ) ( )1( , ) ( , )nnkki k i k k kk k k n kk k knk nn na a a ba a bA b G G A ba a ba a b,则当 0)( kkka 时,取 Tkkkk eaIG , ,/1,),0,0( )()()( ,1 kkkkTknkk kkK aaaa 就有 11 1 1 , 1 1 11( 2 ) ( 2 ) ( 2 ) ( 2 ) ( 2 )22 2 2 , 1 2 21( ) ( ) ( ) ( )( 1 ) ( 1 ) ( ) ( ), 1 ,
13、111( 1 ) ( 1 ) ( 1 )1 , 1 1 , 11( 1 ) ( 1 ) ( 1 ), 1 1( , ) ( , )k k nk k nk k k kk k k kk k k k k n ki k ik k kk k k n kk k kn k nn na a a a ba a a a ba a a bA b G A ba a ba a b ,其中 ( ) ( )( 1 ) ( ) ( )1 1 1( 1 ) ( ) ( )/, , 1 , , .,kkik ik k kk k ki i ik kk k kij ij ik k jl a ab b l b i j k na a l
14、 a 如此继续 下去。最后,当 0)1( 1,1 n nna 时得到 ( ) ( ) ( 1 ) ( 1 ) 11 1 1( , ) ( , ) ( , )n n n n ii n iA b G A b U b , 其中 ()11niibb , ,nnnnnuuuuuuUA 22211211)( 而 )(1111 , kkkkk auau 。称这一过程为消元过程。 解上三角方程组 (回代过程 ) 给定三角形方程组 1 1 1 1 2 2 1 1 12 2 1 2 2 11nnnnn n n nu x u x u x bu x u x bu x b 其矩阵形式为 11iiUx b 其中 1 1
15、1 2 1 1 12 2 2 2 11,nnn n nu u u bu u bUbub 当 U非奇异,即 0iiu ( ni ,2,1 )时,给定三角形方程组容易求解。可以首先求出 nx ,然后依次求出 11 , xxn 。在消元法中这种依次把后一方程结果代入前一方程,从而将解逐个求出的方程,称为回代过程。回代过程可用下面的递推形式实现: 111 1 11/,( ) / , 1 , , 1 .n n n nni i ij j iijix b ux b u x u i n ; 11/,( ) / , 1 , , 1 ; 1 , , ;n j n j n nnij ij iq q iiqix b
16、ux b u x u i n j n Gauss消元过程和回代过程两者合起来组成解方程组的 Guass消去法。但需要注意的是,以上 Gauss消去过程是在假定 0)( kkka ( 1,2,1 nk )的条件下,才得以按顺序完成消元计算。因此,上述消元过程准确称为顺序 Guass消去法。 2.2.2 迭代法 (1)Jacobi迭代法 考虑矩阵方程 AX=B,( 1) 其中 A nnR 是非奇异的, B nnR 为已知矩阵。 第一步把 A转化为 A=D-L-U,( 2) 其中 D=diag( 11, nnaa),-L,-U分别为 A的严格上、下三角部分构成的三角形。 当 D非奇异,即 0( 1,
17、 2, )iia i n 时,利用( 2)式,可将矩阵方程写成 11()X D L U X D B (3) 于是可得迭代格式 ( 1 ) 1 ( ) 1()KKX D L U X D B (4) 称此格式为求解矩阵方程( 1)的 Jacbi迭代 法。 1( 1 ) ( ) ( )111 ( ) ,ink k kij ij ij ij ij ijj j iiix a x a x ba , ( 1, , ; 1, , );i n j n 首先取 k=0,1,2, 当 ( 1) ( )kkij ijxx ( 1, , ; 1, , )i n j n时迭代终止,得到 ijx ,即可知道矩阵 X。 (2
18、)GS(Gauss-Seidel)迭代法 Seidel迭代法:在计算过程中总是利用最新值进行计算的方法。 对 Jacobi迭代( 4)运用 Seidel技巧得到 1( 1 ) ( 1 ) ( )111 ( ) ,ink k kij ij ij ij ij ijj j iiix a x a x ba ( 1, , ; 1, , );i n j n( 5) 称( 5)式为 Gauss-Seidel迭代法。 取 k=0,1, 直到 ( 1) ( )kkij ijxx ( 1, , ; 1, , )i n j n迭代终止,得到 ijx ,即可知道矩阵 X。 (3)SOR方法 对 GS方法引进迭代参 数
19、 w ,得到迭代格式 1( 1 ) ( ) ( 1 ) ( )1( ) ,ink k k kij ij ij ij ij ij ijj j iiiwx x a x a x ba ( 1, , ; 1, , );i n j n 称为解矩阵方程 AX=B的超松弛方法,简记为 SOR方法。 首先取适当的松弛因子 w ,然后令 k=0,1, 直到 ( 1) ( )kkij ijxx ( 1, , ; 1, , )i n j n迭代终止,得 到 ijx ,即可知道矩阵 X。 2.3 拟解决的主要问题 ( 1)将解线性方程组的高斯消元推广用来直接求解矩阵方程; ( 2)将解线性方程组的 Jacobi迭代法
20、、 Gauss-Seidcl迭代法和 SOR迭代方法求解矩阵方程; ( 3)利用 matlab 软件实现求解矩阵方程的上述算法; 三、研究的方法与技术路线、研究难点,预期达到的目标 1、研究方法及技术路线 本论文主要以查找资料,以现有的知识水平,在前人的研究论述基础上,应用 MATLAB来求解矩阵方程的问题 , 如 Gauss消元法、 Jacobi 迭代法、 Gauss-Seidcl迭代法和 SOR 迭代方法。采取了从大量阅读已有的数据资料 然后对这些内容进行总结 最后运用相关知识来编程求解的技术路线。 2、研究难点 ( 1)对编程的熟练程度及对 MATLAB软件的学习和掌握程度有待加强; (
21、 2)由于论题比较深奥,很难有独创或新颖之处; ( 3)解线性代数方程组直接法的方法有很多种,本文只推广一些经典的方法。 3、预期达到的目标 通过这次论文的撰写更好的掌握 MATLAB的基本语法、基本命令, MATLAB函数程序设计,会用 MATLAB编写程 序求解矩阵方程组直接法和迭代法的问题,同时用 MATLAB来实现解线性代数方程组迭代法的经典方法,如 Gauss消元法、 Jacobi迭代法、 Gauss-Seidcl 迭代法和SOR迭代方法,最后通过 MATLAB软件帮助求解。除此之外,更进一步掌握 MATLAB 软件的各种功能,对于相关或类似的问题也能很好的处理,并且用软件来求解更多
22、的问题。 四、论文详细工作进度和安排 第一阶段( 2009年 11 月 16 日 2009年 12 月 27 日): 确定毕业论文题目, 查阅文献,收集 相关信息、资料。 完成文献检索、开题报告及外文翻译的初稿。 第二阶段( 2009年 12 月 27 日 2010年 3月 19 日): 完成毕业论文的数据收集、论文初稿。 第三阶段( 2010年 3月 21 日 2010年 5月 10 日): 进入实习单位进行毕业实习,对论文进行修改, 将完成毕业论文交给指导教师审阅 。 第四阶段( 2010年 5月 26 日 2010年 6月 31 日): 准备并进行毕业论文答辩。 五、主要参考文献: 1胡
23、家赣,线性代数方程组的迭代解法 M,北京:科学出版社, 1991 2陈垚光 ,毛涛涛等 .精通 MATLAB GUI设计 M.北京 :电子工业出版社 ,2008 3蔡 大用,自峰杉 .高等数值分析 M.北京:清华大学出版社, 1997 4孙祥 ,徐流美 ,吴清 .MATLAB 7.0基础教程 M.北京 :清华大学出版社 ,2005 5陆金甫,关治译 .数值线性代数 M.北京 :人民邮电出版社, 2006 6张凯院,徐仲 .数值代数 M.北京:科学出版社, 2006 7叶兴德 ,程晓良 ,陈明飞等 .数值分析基础 M.杭州 :浙江大学出版社 ,2008.8:13 23 8拉克唐瓦尔德 .数值方法
24、和 MATLAB实现与应用 M.北京 :机械工业出版社 ,2004.9:3 6 9John H.Mathews,Kurtis D.Fink.Numerical Methods Using MATLABM.BeiJing: Publishing House of Electronics Industry,2005 10王素立 ,高洁 .孙新德 .MATLAB混合编程与工程 M.北京 :清华大学出版社 ,2008.5:120 11周小阳 .数学软件与 MATLABM.武汉 :华中科技大学出版社 ,2002 12施晓 ,周佳 .精通 MATLAB 图形界面编程 M.北京 :电子工业出版社 ,2008
25、 13黄明游 ,刘潘 ,徐涛 .数值计算方法 M.北京 :科学出版社 ,2005:12 30 14Isaacson E,Keller H.B.Analysis of Numerical MethodsM.New York: John Wiley&Sons,1966 15王沫然 .MATLAB与科学计算 M.北京 :电子工业出版社 ,2004 16马修斯( Mathews,J.H.).数值方法( MATLAB版 )M.北京 :电子工业出版社 ,2005 17张德丰 .MATLAB数值分析与应用 M.北京 :国防工业出版社 :2007.1:1 3 18李显宏 .MATLAB7.X界面设计与编译技巧 M.北京 :电子工业出版社 ,2006 110