什么叫作矩阵
矩阵乘法是线性代数中最常见的运算之一,它在数值计算中有广泛的应用。若A和B是2个nn的矩阵,则它们的乘积C=AB同样是一个nn的矩阵。A和B的乘积矩阵C中的元素C[i,j]定义为:
若依此定义来计算A和B的乘积矩阵C,则每计算C的一个元素C[i,j],需要做n个乘法和n-1次加法。因此,求出矩阵C的n2个元素所需的计算时间为0(n3)。
60年代末,Strassen采用了类似于在大整数乘法中用过的分治技术,将计算2个n阶矩阵乘积所需的计算时间改进到O(nlog7)=O(n218)。
首先,我们还是需要假设n是2的幂。将矩阵A,B和C中每一矩阵都分块成为4个大小相等的子矩阵,每个子矩阵都是n/2n/2的方阵。由此可将方程C=AB重写为:
(1)
由此可得:
C11=A11B11 A12B21(2)
C12=A11B12 A12B22(3)
C21=A21B11 A22B21(4)
C22=A21B12 A22B22(5)
如果n=2,则2个2阶方阵的乘积可以直接用(2)-(3)式计算出来,共需8次乘法和4次加法。当子矩阵的阶大于2时,为求2个子矩阵的积,可以继续将子矩阵分块,直到子矩阵的阶降为2。这样,就产生了一个分治降阶的递归算法。依此算法,计算2个n阶方阵的乘积转化为计算8个n/2阶方阵的乘积和4个n/2阶方阵的加法。2个n/2n/2矩阵的加法显然可以在cn2/4时间内完成,这里c是一个常数。因此,上述分治法的计算时间耗费T(n)应该满足:
这个递归方程的解仍然是T(n)=O(n3)。因此,该方法并不比用原始定义直接计算更有效。究其原因,乃是由于式(2)-(5)并没有减少矩阵的乘法次数。而矩阵乘法耗费的时间要比矩阵加减法耗费的时间多得多。要想改进矩阵乘法的计算时间复杂性,必须减少子矩阵乘法运算的次数。按照上述分治法的思想可以看出,要想减少乘法运算次数,关键在于计算2个2阶方阵的乘积时,能否用少于8次的乘法运算。Strassen提出了一种新的算法来计算2个2阶方阵的乘积。他的算法只用了7次乘法运算,但增加了加、减法的运算次数。这7次乘法是:
M1=A11(B12-B22)
M2=(A11 A12)B22
M3=(A21 A22)B11
M4=A22(B21-B11)
M5=(A11 A22)(B11 B22)
M6=(A12-A22)(B21 B22)
M7=(A11-A21)(B11 B12)
做了这7次乘法后,再做若干次加、减法就可以得到:
C11=M5 M4-M2 M6
C12=M1 M2
C21=M3 M4
C22=M5 M1-M3-M7
以上计算的正确性很容易验证。例如:
C22=M5 M1-M3-M7
=(A11 A22)(B11 B22) A11(B12-B22)-(A21 A22)B11-(A11-A21)(B11 B12)
=A11B11 A11B22 A22B11 A22B22 A11B12
-A11B22-A21B11-A22B11-A11B11-A11B12 A21B11 A21B12
=A21B12 A22B22
由(2)式便知其正确性。
至此,我们可以得到完整的Strassen算法如下:
procedureSTRASSEN(n,A,B,C);beginifn=2thenMATRIX-MULTIPLY(A,B,C)elsebegin将矩阵A和B依(1)式分块;STRASSEN(n/2,A11,B12-B22,M1);STRASSEN(n/2,A11 A12,B22,M2);STRASSEN(n/2,A21 A22,B11,M3);STRASSEN(n/2,A22,B21-B11,M4);STRASSEN(n/2,A11 A22,B11 B22,M5);STRASSEN(n/2,A12-A22,B21 B22,M6);STRASSEN(n/2,A11-A21,B11 B12,M7);
;
end;
end;
其中MATRIX-MULTIPLY(A,B,C)是按通常的矩阵乘法计算C=AB的子算法。
Strassen矩阵乘积分治算法中,用了7次对于n/2阶矩阵乘积的递归调用和18次n/2阶矩阵的加减运算。由此可知,该算法的所需的计算时间T(n)满足如下的递归方程:
按照解递归方程的套用公式法,其解为T(n)=O(nlog7)≈O(n281)。由此可见,Strassen矩阵乘法的计算时间复杂性比普通矩阵乘法有阶的改进。
有人曾列举了计算2个2阶矩阵乘法的36种不同方法。但所有的方法都要做7次乘法。除非能找到一种计算2阶方阵乘积的算法,使乘法的计算次数少于7次,按上述思路才有可能进一步改进矩阵乘积的计算时间的上界。但是Hopcroft和Kerr(197l)已经证明,计算2个22矩阵的乘积,7次乘法是必要的。因此,要想进一步改进矩阵乘法的时间复杂性,就不能再寄希望于计算22矩阵的乘法次数的减少。或许应当研究33或55矩阵的更好算法。在Strassen之后又有许多算法改进了矩阵乘法的计算时间复杂性。目前最好的计算时间上界是O(n2367)。而目前所知道的矩阵乘法的最好下界仍是它的平凡下界Ω(n2)。因此到目前为止还无法确切知道矩阵乘法的时间复杂性。关于这一研究课题还有许多工作可做。
关于应用
简单一点的
表格,像考试分数求和
复杂一点的
魔方的解决方法,用矩阵代换方法
高等数学中的玩意儿最早来自于方程组的系数及常数所构成的方阵
一、矩阵的基本概念
矩阵,是由 个数组成的一个
行
列的矩形表格,通常用大写字母
表示,组成矩阵的每一个数,均称为矩阵的元素,通常用小写字母其元素 表示,其中下标
都是正整数,他们表示该元素在矩阵中的位置比如,或
表示一个 矩阵,下标
表示元素
位于该矩阵的第
行、第
列元素全为零的矩阵称为零矩阵
特别地,一个
矩阵
,也称为一个
维列向量;而一个
矩阵
,也称为一个
维行向量
当一个矩阵的行数
与烈数
相等时,该矩阵称为一个
阶方阵对于方阵,从左上角到右下角的连线,称为主对角线;而从左下角到右上角的连线称为付对角线若一个
阶方阵的主对角线上的元素都是
,而其余元素都是零,则称为单位矩阵,记为 ,即:
如一个 阶方阵的主对角线上(下)方的元素都是零,则称为下(上)三角矩阵,例如,是一个
阶下三角矩阵,而
则是一个
阶上三角矩阵今后我们用
表示数域
上的 矩阵构成的集合,而用
或者
表示数域 上的
阶方阵构成的集合
矩阵是指纵横排列的二维数据表格。最早来自于方程组的系数及常数所构成的方阵。元素以直行及横行,整齐排列成矩形的结构。如数学中常将多个方程式的系数排成矩阵,利用矩阵的运算求解未知数。
矩阵的由来
矩阵的研究历史悠久,拉丁方阵和幻方在史前时代就已经被研究过了。作为解答线性方程的工具,队列也没有短的历史。
成立于后汉前期的《九章算术》中,用分离系数法表示线性方程,得到了扩展矩阵。在消去过程中使用的计算技术,例如乘以某一行中的非零实数,从某一行减去另一行,相当于矩阵的初等变换。
1、在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。
2、矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。在物理学中,矩阵于电路学、力学、光学和量子物理中都有应用;计算机科学中,三维动画制作也需要用到矩阵。矩阵的运算是数值分析领域的重要问题。将矩阵分解为简单矩阵的组合可以在理论和实际应用上简化矩阵的运算。对一些应用广泛而形式特殊的矩阵,例如稀疏矩阵和准对角矩阵,有特定的快速运算算法。关于矩阵相关理论的发展和应用,请参考《矩阵理论》。在天体物理、量子力学等领域,也会出现无穷维的矩阵,是矩阵的一种推广。
3、数值分析的主要分支致力于开发矩阵计算的有效算法,这是一个已持续几个世纪以来的课题,是一个不断扩大的研究领域。矩阵分解方法简化了理论和实际的计算。针对特定矩阵结构(如稀疏矩阵和近角矩阵)定制的算法在有限元方法和其他计算中加快了计算。无限矩阵发生在行星理论和原子理论中。无限矩阵的一个简单例子是代表一个函数的泰勒级数的导数算子的矩阵。
数学中最重要的基本概念之一,是代数学的一个主要研究对象,也是数学研究及应用的一个重要工具。由mn个数排成的m行n列的矩形表
称为m×n矩阵,记作
A
或,也可记作(α
ij
)或。数称为矩阵的第i行第j列的元素。当矩阵的元素都是某一数域F中的数时,就称它为数域F上的矩阵,简称F上的矩阵。当m=n时,矩阵
A
称为n阶矩阵或n阶方阵,此时α
11
,α
22
,…,α
nn
称为n阶矩阵的对角线元素,当所有的非对角线元素α
ij
(i≠j)均为零时,
A
就称为n阶对角矩阵,简称对角矩阵。当对角线下面(或上面)的所有元素均为0时,
A
就称为上(或下)三角矩阵。
在m×n矩阵
A
中取k个行和k个列,k≤m,n;由这些行与列相交处的元素按原来的位置构成的k阶行列式,称为矩阵
A
的k阶子式。一个n阶矩阵
A
只有一个n阶子式,它称为矩阵
A
的行列式,记作│
A
│或det
A
。
>
以上就是关于什么是矩阵,研究它有什么意义,它在生活用有什么应用全部的内容,包括:什么是矩阵,研究它有什么意义,它在生活用有什么应用、数学中的矩阵是什么是干什么用的矩阵的意义是什么怎么用、矩阵的含义是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!