大型矩阵快速求逆算法的研究.doc
《大型矩阵快速求逆算法的研究.doc》由会员分享,可在线阅读,更多相关《大型矩阵快速求逆算法的研究.doc(112页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date大型矩阵快速求逆算法的研究丽学院团2009 号说明书矩阵是高等代数的重要组成部分,是许多数学分支研究的重要工具。并且矩阵作为数学工具之一有其重要的使用价值,它常见于很多学科中,如:线性代数、线性规划、统计分析,以及组合数学等。在实际生活中,很多问题都可以借用矩阵抽象出来进行表述并进行运算,如在各循环赛中常用的赛况表格等,矩阵的概念和性质相对矩阵的运算较容易理解和掌握。
2、在矩阵的运算和应用中,仅逆矩阵的求解方法及算法问题就值得我们去好好研究,尤其是对大型矩阵的逆矩阵的研究。近年来,随着互联网的高速发展,计算机内部的运算量也急剧增加,如何把浩瀚的数据准确地计算出结果,并且加快它的计算速度,己成为一个备受关注的研究课题。随着计算机应用领域的发展,逆矩阵运算的需求越来越大。现阶段大型逆矩阵运算都是由软件实现,如Matlab等数学软件。逆矩阵运算软件的普及,将使计算机的逆矩阵运算性能得到几何级数的提高。伴随矩阵作、初等变换等算法作为逆矩阵运算的一个重要组成部分,对其研究的意义也就很大。 我们所做的研究方向,仅是利用Matlab数学软件和我们所学到的求逆矩阵的知识编写几
3、种求逆矩阵的算法。为了使内容更完整充实,文中列举了几种基本的求逆矩阵的方法以及整理了一些特殊矩阵求逆的一些简便方法等。最后简要说明了一般矩阵的广义逆矩阵。由于考虑自身学识的不足,我们并未对广义逆矩阵做详细的展开。希望有兴趣的读者能自己探索。大型矩阵快速求逆算法的研究信息09本耀魂雨大型矩阵快速求逆算法的研究本文首先介绍了逆矩阵的定义以及逆矩阵的相关性质。其次,根据逆矩阵的相关理论主要介绍了矩阵求逆的几种常用方法。 如定义法、伴随矩阵法、初等变换法、三角分解法、分块矩阵法等,并运用软件matlab7.0对一些方法实现了程序化。且通过多次检验证明了所编程序的正确性。文章最后简要阐述了对一些特殊矩阵
4、的求逆算法(如对称正定矩阵、有理矩阵),还有针对一般矩阵的广义逆矩阵的作了浅层次的探究。本文的相关研究不仅对提高矩阵求逆的速度和准确度起着较为重要的作用。而且对逆矩阵应用的进一步发展有着深远的意义。关键词:逆矩阵 求逆算法 Matlab7.0 广义矩阵逆矩阵的定义:对于n阶方阵A,如果有一个n 阶方阵B,使AB = BA = E,则说方阵 A 是可逆的,并把方阵 B 称为 A 的逆矩阵(其中只有方阵才有逆矩阵的概念)。矩阵可逆的条件: 定理1 若方阵 A 可逆,则 A 的行列式不等于 0 。 定理2 若A的行列式不等于0 ,则A可逆,且故,求逆矩阵可以用逆矩阵的定义来求或者利用求伴随矩阵法的方
5、法,还可以用行初等变换法(本文仅以行初等变换为例)、矩阵的三角分解、矩阵分块等方法求得逆矩阵。一、 五种基本求逆矩阵的方法1.1定义法求逆矩阵用一个例子来解释定义法求逆矩阵的方法:例:求矩阵A的逆矩阵,其中解:因为,所以存在.设=,由定义知,所以.由矩阵乘法得.由矩阵相等可解得故1.2伴随矩阵求逆矩阵(附算法)用求伴随矩阵的方法求逆矩阵的原理分析如下:设A=()为n阶矩阵,为|A|中元素的代数余子式, (i,j = 1, 2, ,n),则称矩阵=nnnnnnAAAAAAAAAALLLLLLLL212221212111*为A的伴随矩阵。根据上述定理2:若A的行列式不等于0,则A可逆,且, 1.3
6、初等变换法求逆矩阵(附算法)用初等变换法的方法求逆矩阵的原理分析如下:引理1.3.1 对m x n阶矩阵A,施行一次初等行变换,相当于在A的左边乘以相应m阶初等矩阵;对A施行一次初等列变换,相当于在A的右边乘以相应的n阶初等矩阵。公理1.3.1 初等矩阵都是可逆矩阵,其逆矩阵还是初等矩阵。推论1.3.1 A可逆的充要条件为A可表为若干初等矩阵之积。即推论1.3.2 A可逆,则A 可由初等行变换化为单位矩阵。 (1)由矩阵初等变换的这些性质可知,若A可逆,构造分块矩阵(AE),其中E为与A同阶的单位矩阵,那么 (2)由(1)式 代入(2)式左边,有上式说明分块矩阵(AE)经过初等行变换,原来A的
7、位置变换为单位阵E,原来E的位置变换为我们所要求的,即1.4三角分解求逆矩阵(附算法)直接可以得到从此方法把A矩阵进行LU分解,并得到A的逆矩阵。1.5 分块矩阵法求逆此方法可将阶数较高的矩阵化为阶数较低的矩阵再求其逆,使计算简化1、 利用分块矩阵的乘法,求可逆矩阵的逆阵.设分块矩阵其中A,C均可逆,求解:令,于是有可得所以,从而2、 利用分块矩阵的初等变换,降阶求逆定理1.5.1 设A和B分别是可逆矩阵,C 是kr 矩阵,D 是rk 矩阵,“可逆”或“ 可逆”,则矩阵可逆。上例说明定理3可以应用到任何阶(奇数阶或偶数阶)可逆矩阵的求逆问题中。通常它使2n 阶可逆阵的求逆问题转化为一些n 阶可
8、逆阵的求逆问题,而使2m+1 阶可逆阵的求逆问题转化为一些m 阶和一些m+1 阶可逆阵的求逆问题,从而使计算的难度降低。因而这种求逆矩阵的方法也称之为“降阶法”。应当指出,当A,B 可逆时,相平行地,对于形如的矩阵(这里A,B 分别是k 阶和r 阶可逆矩阵,C 是kr 矩阵,D 是rk 矩阵)有着类似的结论:二、算法要求及算法分析:这里仅运用Matlab 7.0软件对求伴随矩阵、初等行变换及直接三角分解法求逆矩阵这三种方法编写了算法,并进行了适当的算法分析。2.1算法要求首先,不管是用求伴随矩阵A*还是利用初等变换求A的逆矩阵,都要先判定A矩阵是否为方阵。通过判断A矩阵的行数和列数是否相等来判
9、断A矩阵是否为方阵。其次,在确定A矩阵为方阵后还须判别A是否可逆。这里我们可以利用定理1,通过判别A的行列式是否为0,来确定A是否存在逆矩阵。最后,运用求伴随矩阵、初等行变换及直接三角分解法的计算方法来编写代码。2.2 三种求逆算法及解释分析以下是运用Matlab7.0编写的求逆矩阵的三个函数,以及对这三个函数的分析及比较:1、 利用求伴随矩阵的方法编写的求逆算法(代码如下)M函数 函数名:F=solvenif1(A)function F=solvenif1(A)n=rank(A);x,y=size(A);if x=y %判断A矩阵是否为方阵disp(请注意:因为该矩阵非方阵,所以该矩阵无逆.
10、)F=A无逆矩阵;return;else%disp(请注意:该矩阵为方阵.)d=det(A); if d=0 %判断A矩阵是否存在逆矩阵disp(请注意:因为该矩阵非满秩,所以该矩阵无逆.)F=A无逆矩阵;return; else %disp(请注意:因为该矩阵满秩,所以该矩阵逆存在.) for i=1:n for j=1:n B=A; B(i,:)=;B(:,j)=; C(j,i)=(-1)(i+j)*det(B)/d; end end F=C; disp(该矩阵的逆F= ) endend分析:利用求伴随矩阵的方法编写的求逆算法最主要的就是求元素的代数余子式。故一定要把元素所在的行和列删除,
11、且需要剩余部分组成的余子式输出。解释:B(i,:)=;B(:,j)=; %是为了选取元素的代数余子式。其中(i,j = 1,2,3n)为的代数余子式,B为(n-1)阶方阵。C(j,i)=(-1)(i+j)*det(B)/d; %是求A*与A的行列式d的比,结果即为(=/ d)。运行代码: clear;A=2 7 -1 9;-11 3 -3 7,F=solvenif1(A)A = 2 7 -1 9 -11 3 -3 7请注意:因为该矩阵非方阵,所以该矩阵无逆.F =A无逆矩阵 clear;A=2 3 -1;-1 3 -3;1 15 -11,F=solvenif1(A)A = 2 3 -1 -1
12、3 -3 1 15 -11请注意:因为该矩阵非满秩,所以该矩阵无逆.F =A无逆矩阵 clear;A=1 2 3;2 2 1;3 4 3;F=solvenif1(A)该矩阵的逆F= F = 1.0000 3.0000 -2.0000 -1.5000 -3.0000 2.5000 1.0000 1.0000 -1.0000 A*Fans = 1 0 0 0 1 0 0 0 1注:该算法对任何大型可逆方阵都适用2、 利用初等行变换求逆矩阵(代码如下)M函数 函数文件名:F=solvenif2(A)function F=solvenif2(A)n=rank(A);x,y=size(A);if x=y
13、 disp(请注意:因为该矩阵非方阵,所以该矩阵无逆.) F=A无逆矩阵;else %disp(请注意:该矩阵为方阵.) d=det(A); if d=0 disp(请注意:因为该矩阵非满秩,所以该矩阵无逆.) F=A无逆矩阵; else %disp(请注意:因为该矩阵满秩,所以该矩阵逆存在.) B=eye(x); A=A,B; %把A矩阵和单位阵B按行合并 y=2*y; for k=1:x %该for循环是在选主元 max=abs(A(k,k); r=k; for L=k+1:x if max A=unifrnd(0,100,6,6),F=solvenif2(A)%A=unifrnd(0,1
14、00,6,6) 生成0,100区间上的连续型均匀分布6行6列的随机数矩阵A = 95.0129 45.6468 92.1813 41.0270 13.8891 1.5274 23.1139 1.8504 73.8207 89.3650 20.2765 74.6786 60.6843 82.1407 17.6266 5.7891 19.8722 44.5096 48.5982 44.4703 40.5706 35.2868 60.3792 93.1815 89.1299 61.5432 93.5470 81.3166 27.2188 46.5994 76.2097 79.1937 91.6904
15、 0.9861 19.8814 41.8649该矩阵的逆F= F =0.0574 0.0275 0.0365 0.0015 -0.0622 -0.0241 -0.0442 -0.0253 -0.0147 -0.0057 0.0534 0.0156 -0.0139 -0.0061 -0.0211 -0.0009 0.0153 0.0186 -0.0169 -0.0076 -0.0061 -0.0037 0.0313 -0.0060 -0.0364 -0.0461 -0.0471 0.0253 0.0613 0.00900.0272 0.0331 0.0299 -0.0019 -0.0513 -0
16、.0065 A*Fans = 1.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000 0 1.0000 0 -0.0000 0.0000 0.0000 -0.0000 -0.0000 1.0000 -0.0000 0.0000 0.0000 -0.0000 -0.0000 -0.0000 1.0000 -0.0000 0 -0.0000 -0.0000 -0.0000 0.0000 1.0000 0.0000 -0.0000 0 0 0.0000 -0.0000 1.00003、利用三角分解的方法(LU分解)编写的求逆算法(代码如下)M函数 函数名:F=solv
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大型 矩阵 快速 算法 研究
限制150内