1、 毕业论文文献综述 信息与计算科学 矩阵方程的数值解法 一 前言部分 在科学、工程计算中,求解矩阵方程的任务占相当大的份额。这是因为,矩阵方程不仅能以完整的形式作为许许多多实际问题的模型之一,而且还能作为不少其他数值方法处理过程中转化而成的组成部分。例如,在电路网络、弹性力学、潮流计算、热传导、振动等领域,其基本模型就是矩阵方程,而求微分方程边值问题的差分法和有限元法等数值计算本身,也导致求解某些矩阵方程。 在系统控制等工程研究领域经常遇到矩阵方程的求解问题。自动控制系统最重要的一个特征是稳定性问题 ,它表示系统能妥 善地保持预定工作状态 ,耐受各种不利因素的影响 ,因此矩阵方程在系统的稳定性
2、理论 ,极点配置等方面具有重要的意义。在常微分方程的定性研究以及数值求解常微分方程的隐式 Rung-kwtta 方法和块方法中 ,也需要求解矩阵方程。此外 ,在广义特征值问题的摄动研究中及隐式常微分方程的数值解中 ,经常遇到矩阵方程的求解问题。 随着科学技术的迅速发展,矩阵方程越来越多地出现在科学与工程计算领域,关于这类问题的研究也日益受到人们的高度重视对矩阵方程的研究具有很重要的理论意义和应用价值。 本文主要考虑形如 BAX 的矩阵方程的数值解法,其中 nnRA ., mnRBX 由于线性方程组 bAx , 其中 nnRA , nRb 是矩阵方程 BAX 的一个特例,所以本文试图将解线性 方
3、程组的一些经典方法,如 高斯消元法、 Jacobi迭代法、 Gauss-Seidcl迭代法和 SOR 迭代方法,推广用来解矩阵方程。在这些方法的基础上,利用 matlab软件编程快速求出矩阵方程的解,并比较各种方法的优劣。 解上述线性方程组数值的数值方法主要有如下两类 : (1)直接法 : 就是在没有舍入误差的情况下 , 通过有限步的代数运算可以求得方程组准确解的方法 , 但由于实际计算中舍入误差是客观存在的 , 因而使用此类方法也只能得到近似解。 (2)迭代法 : 就是先给出解的一个初始近似值 , 然后按一定的法则逐步求各个更准 确的近似解的方法 , 因此是用某种极限过程逐步逼近准确解的方法
4、。 传统的直接法方法有高斯消去法和它的一些变形在这些方法中,我们可以通过有限步计算来求得线性方程组的准确解但对于大型系数矩阵 A,在利用高斯消去法求解时就会破坏 A的稀疏性,从而增加计算难度和存储空间,因此需要探究 A的一些结构性质,减少或避免同零元素的乘积,从而节省计算机的存储空问。 随着科技的发展,线性方程组的规模越来越大,以至于用直接法很难来求解, 因此,人们越来越重视迭代方法的应用迭代方法主要有两大类;一类为古典迭代法,常见的方法有 Jacobi迭代法、 Gauss-Seidcl迭代法和 SOR迭代方法;另一 类为投影方法,即 Krylov子空间方法 MATLAB是一种数值计算环境和编
5、程语言,主要包括 MATLAB和 Simulink两大部分。 MATLAB基于矩阵运算,具有强大的数值分析、矩阵计算、信号处理和图形显示功能,其强大的数据处理能力和丰富的工具箱使得它的编程极为简单。 二、 主题部分 2.1 矩阵方程 AX=B有解的判定 定理 矩阵方程 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
6、X A X A X B B B, AX=B有解 A的列向量组与( A,B)得列向量组等价于 ( , ) (0 )r A B r r n 。 推论 若 AX=B有解 , 则 ( 1) ()r A n 时, 方程 有唯一解 ; ( 2) ()r A n 时 ,方程 有无穷解 。 本文主要讨论矩阵方程 AX=B有唯一解时的几种数值算法。 2.2 线性方程 组的一些常用数值算法 2.2.1 顺序 Guass消去法 3、 10 Gauss消去法主要包括两个过程 : 消元过程和回代过程。具体如下 : 化一般方程为三角方程 (消元过程 ) 记线性方程组为 nnnnnnnnnnbxaxaxabxaxaxabx
7、axaxa22112222212111212111( 1) 这里 ija ( nji ,2,1, )为方程组的系数, ib ( ni ,2,1 )为方程组自由项。方程组( 1)的矩阵形式为 bAx 其中nnnnnnaaaaaaaaaA212222111211,n21xxxx ,n21bbbb , 设 011a ,令 ,/1 111 a ,),( 121111 Tnaaaa ,),0( 1211 Tnaaa Te )0,0,1(1 。构造 Gauss矩阵 TeaIG 1111 , 用 1G 左乘 1a 得 TTn aaaaGaG )0,0,(),( 1112111111 , 从而 ),(1 bA
8、G 具有下列形式: )2()2()2(2)2(2)2(2)2(221112111)2()2(00),(),(nnnnnnbaabaabaaabAGbA, 其中 .,2,111111)2(1)2(njiaalblbbalaaiiiiijijijij 一般地,如果已经利用 Gauss矩阵 11 , kGG 得到 , )()()()()()()2(2)2(2)2(2211121111)()( ),(),(knknnknkkkkknkkknnkkkbaabaabaabaaabAGGbA则当 0)( kkka 时,取 Tkkkk eaIG , ,/1,),0,0( )()()( ,1 kkkkTknkk
9、 kkK aaaa 就有 ,)1()1()1(1,)1(1)1(,1)1(1,1)()(,)(1,)()2(2)2(2)2(1,2)2(2)2(22111,1111)()()1()1( ),(),(knknnkknkkknkkkkkkknkkkkkkknkknkkkkkkkbaabaabaaabaaaabaaaabAGbA其中 ,.,1,/)()()1()()()1()()(kkjikkijkijkkikkikikkkkikikalaankjiblbbaal 如此继续下去。最后,当 0)1( 1,1 n nna 时得到 ,),(),(),( )1()1(1)()( bUbAGbA nnnnn
10、其中 )( nbb , ,nnnnnuuuuuuUA 22211211)( 而 )(1111 , kkkkk auau 。称这一过程为消元过程。 解上三角方程组 (回代过程 ) 给定三角形方程组 nnnnnnnnbxubxuxubxuxuxu2212211212111其 矩阵形式为 bUx 其中 , 2122211211nnnnnbbbbuuuuuuU 当 U非奇异,即 0iiu ( ni ,2,1 )时,给定三角形方程组容易求解。可以首先求出 nx ,然后依 次求出 11 , xxn 。在消元法中这种依次把后一方程结果代入前一方程,从而将解逐个求出的方程,称为回代过程。回代过程可用下面的递推
11、形式实现: nijiijijiinnnnniuxubxubx1.1,1,/)(,/ Gauss消元过程和回代过程两者合起来组成解方程组的 Guass消去法。但需要注意的是,以上 Gauss消去过程是在假定 0)( kkka ( 1,2,1 nk )的条件下,才得以按顺序完成消元计算。因此,上述消元过程准确称为顺序 Guass消去法。 2.2.2 迭代法 令 A=M K (2. 1) 是系数矩阵 A的一个分裂且 M是非奇异的,则由分裂可以得到 即 则我们可以得到下面的迭代序列 (2.2) 其中 称为( 2.2)的迭代矩阵, 是任意给定的 n维列向量,称为初始向量如果 向量序列 收敛,即 ,则 就
12、是线性方程组( 1.1)的唯一解 由于迭代序列 (2.2)中的 线性依赖于 (就其分量而言 ),而不明显依赖于且迭代矩阵兄保持不变,所以称迭代格式 (2.2)为一阶线性定常迭代格式对系数矩阵 A给出不同的分裂就可以得到不同的迭代格式,下面就来介绍几种基本的迭代格式 在下面的迭代格式中要用到矩阵 A的一个分裂,假设 A的对角线上的元素都 不为零,则 (2 3) 其中 D是 A的对角矩阵, 是 A的严格下三角矩阵部分, 是 A的严格上三 角部分 (1)简单迭代格式 给出下面的矩 阵分裂 A=I一 (I A),则线性方程组 (1 1)等价于 ( ) ,x I A X b (2.4) 令 R=I A,
13、 f =b,即其相应的格式 (2 2)称为简单迭代格式 (2)Jacobi迭代格式 利用 (2 3)的表达式,关于 Jaucobi迭代方法的分裂为 则线性方程组(1.1)等价于 (2 5) 若取 则其相应的格式 (2.2)称为 Jacobi迭代格式 (3)GS(Gauss-Seidel)迭代格式: 由 (2.3)我们可以给出关于 Gs迭代格式的矩阵分裂 : 则线性方程组(1.1)可以写为 (2 6) 令 则其相应的格式 (2.2)称为 GS迭代格式 GS迭代格式可以改写为 (2 7) (4)SOR迭代格式 为了改善 GS迭代格式的效率,我们对 1kx 和 +1和 kx 进行算术平均: 11(1
14、 ) ,k k kx w x w x 把 GS迭代格式代入我们可以得到 111(1 ) ( )k k k kx w x w L x U x D b 111( 1 ) ( ( 1 ) ) ( )kw L x w I w U I w L w D b 1 1 11 ( ) ( ( 1 ) ) ( )kx I w L w I w U I w L w D b 三 .总结部分 本文首先介绍矩阵方程的应用背景和来源,由于线性方程组是矩阵方程的一个特例,本文打算将解线性代数方程组的一些常用数值算法推广用来解矩阵方程。所以,接着本文介绍了解线性代数方程组的两类常用方法:( 1)直接法,主要是 Gauss消元法;
15、( 2) 迭代法 ,主要是简单迭代法、 Jacobi迭代法、 Gauss-Seidel迭代法、 SOR迭代法。 本文首 先探讨矩阵方程有解的条件和解的结构,并在有唯一解的前提下试图将解线性方程组的一些经典方法,如 高斯消元法、 Jacobi迭代法、 Gauss-Seidcl迭代法和 SOR迭代方法,推广用来解矩阵方程。 借鉴线性方程组的 Jacobi 迭代法、 Gauss-Seidcl迭代法和 SOR迭代方法的收敛性分析结论和方法,对矩阵方程的 Jacobi迭代法、 Gauss-Seidcl 迭代法和SOR迭代方法的收敛性。在这些方法的基础上,利用 matlab软件编程快速求出矩阵方程的解,并
16、比较各种方法的优劣。 四、参考文献 1胡家赣,线性代 数方程组的迭代解法,北京:科学出版社, 1991 2陈垚光 ,毛涛涛等 .精通 MATLAB GUI设计 M.北京 :电子工业出版社 ,2008 3蔡大用,自峰杉,高等数值分析,北京:清华大学出版社, 1997 4孙祥 ,徐流美 ,吴清 .MATLAB 7.0基础教程 M.北京 :清华大学出版社 ,2005 5陆金甫,关治译,数值线性代数,北京,人民邮电出版社, 2006 65张凯院,徐仲,数值代数,北京:科学出版社, 2006 7叶兴德 ,程晓良 ,陈明飞等 .数值分析基础 M.杭州 :浙江大学出版社 ,2008.8:13 23 8拉克唐
17、瓦尔德 .数值方法和 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:1 20 11周小阳 .数学软件与 MATLABM.武汉 :华中科技大学出版社 ,2002 12施晓 ,周佳 .精通 MATLAB图形界面编程 M.北京 :电子
18、工业出版社 ,2008 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