矩阵 - 维基百科,自由的百科全书

线性代数
向量 · 向量空间 · 基底  · 行列式  · 矩阵
m-by-n matrix」的各地常用名稱
中国大陸列矩阵
臺灣行矩陣
「横排(row)」的各地常用名稱
中国大陸
臺灣
「纵排(column)」的各地常用名稱
中国大陸
臺灣

數學上,一個矩陣(英語:matrix)是一个有行(row)列(column)元素的矩形阵列。矩陣裡的元素可以是数字符号甚至是函数

大小相同(行数列数都相同)的矩阵之间可以相互加减,具体是对每个位置上的元素做加减法。矩阵乘法则较为复杂。两个矩阵可以相乘,当且仅当第一个矩阵的列数等于第二个矩阵的行数。矩阵乘法满足结合律分配律,但不满足交换律

矩阵的一个重要用途是解线性方程组。线性方程组中未知量的系数可以排成一个矩阵,加上常数项,则称为增广矩阵。另一个重要用途是表示线性变换,即是诸如之类的線性函數的推广。设定基底后,某个向量可以表示为的矩阵,而线性变换可以表示为列数为的矩阵,使得经过变换后得到的向量可以表示成的形式。矩阵的特征值特征向量可以揭示线性变换的深层特性。

矩陣是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。在物理学中,矩阵在力学电路学光学量子物理等領域中都有应用;计算机科学中,三维动画制作也需要用到矩阵。矩阵的运算是数值分析领域的重要问题。将矩阵分解为简单矩阵的组合可以在理论和实际应用上简化矩阵的运算。对一些应用广泛而形式特殊的矩阵,例如稀疏矩阵准对角矩阵,有特定的快速运算算法。关于矩阵相关理论的发展和应用,請參考矩陣理論。在天体物理量子力学等领域,也会出现无穷维的矩阵,是矩阵的一种推广。

词源

[编辑]

中文中矩阵的概念最早见于1922年。1922年,北京师范大学附属中学數學老師程廷熙在一篇介绍文章中将矩阵译为“纵横阵”。1925年,在科学名词审查会算学名词审查组刊登於《科学》第十卷第四期的审定名词表中,矩阵被翻译为“矩阵式”,方块矩阵翻译为“方阵式”,而各类矩阵如“正交矩阵”、“伴随矩阵”中的“矩阵”则被翻译为“方阵”。1935年,中国数学会审查后,中华民国教育部审定的《数学名词》(并“通令全国各院校一律遵用,以昭划一”)中,“矩阵”作为译名首次出现。1938年,曹惠群在接受科学名词审查会委托就数学名词加以校订的《算学名词汇编》中,认为应当的译名是“长方阵”。1949年中华人民共和国成立后编订的《数学名词》中,则将译名定为“(矩)阵”。1993年,中国自然科学名词审定委员会公布的《数学名词》中,“矩阵”被定为正式译名,并沿用至今[1]

發展

[编辑]

作為解決線性方程的工具,矩陣也有不短的歷史。成书最迟在东汉前期的《九章算术》中,已经出现过以矩阵形式表示线性方程组系数以解方程的图例,可視為矩阵的雏形[2]。矩阵正式作为数学中的研究对象出现,则是在行列式的研究发展起来后。逻辑上,矩阵的概念先于行列式,但在历史上则恰好相反。日本数学家关孝和(1683年)与微積分的發現者之一戈特弗里德·威廉·萊布尼茨(1693年)近乎同时独立建立了行列式論。其后行列式作为解线性方程组的工具逐步发展。1750年,加布里尔·克拉默发现了克莱姆法则[3]

阿瑟·凯莱被认为是矩阵论的奠基人

进入十九世纪后,行列式的研究进一步发展,矩阵的概念也应运而生。奧古斯丁·路易·柯西是最早将行列式排成方阵并将其元素用双重下标表示的数学家。他还在1829年就在行列式的框架中证明了实对称矩阵特征根为实数的结论[4]。其后,詹姆斯·約瑟夫·西爾維斯特注意到,在作为行列式的计算形式以外,将数以行和列的形式作出的矩形排列本身也是值得研究的。在他希望引用数的矩形阵列而又不能用行列式来形容的时候,就用“matrix”一词来形容[3]。而在此之前,数学家已经开始将增广矩阵作为独立的对象引用了。西尔维斯特使用“matrix”一词是因为他希望讨论行列式的子式,即将矩阵的某几行和某几列的共同元素取出来排成的矩阵的行列式,所以实际上“matrix”被他看做是生成各种子式的“母体”:

我在先前的文章中将矩形排布的序列称为“Matrix”,盖因从中可以产生出各种不同的行列式,就如由同一个母体的子宫中孕育出来一样。[5]

阿瑟·凯莱被公认为矩阵论的奠基人[3]。他开始将矩阵作为独立的数学对象研究时,许多与矩阵有关的性质已经在行列式的研究中被发现,这也使得凯莱认为矩阵的引进是十分自然的。他说:“我决然不是通过四元数而获得矩阵概念的;它或是直接从行列式的概念而来,或是作为一个表达线性方程组的方便方法而来的。[3]”他从1858年开始,发表了《矩阵论的研究报告》等一系列关于矩阵的专门论文[6][7],研究了矩阵的运算律、矩阵的逆以及转置和特征多项式方程。凯莱还提出了凯莱-哈密尔顿定理,并验证了3×3矩阵的情况,又说进一步的证明是不必要的。哈密尔顿证明了4×4矩阵的情况,而一般情况下的证明是弗罗贝尼乌斯于1898年给出的[3]

此后更多数学家开始对矩阵进行研究。埃尔米特证明了如果矩阵等于其复共轭转置,则特征根为实数。这种矩阵后来被称为埃尔米特矩阵[3]。弗罗贝尼乌斯对矩阵的特征方程、特征根、矩阵的秩、正交矩阵、矩阵方程等方面做了大量工作。1878年,在引进了不变因子、初等因子等概念的同时,弗罗贝尼乌斯给出了正交矩阵、相似矩阵合同矩阵的概念。同年,他探讨了矩阵的最小多项式(最小方程)问题。1894年的论文中,他讨论了矩阵理论和四元数理论的关系。1896年,他给出了凯莱-哈密尔顿定理的完整证明[1]。矩阵理论在19世纪沿着两个方向发展,分别是作为抽象代数结构和作为代数工具描述几何空间的线性变换。矩阵理论为群论和不变量理论的发展。

无限维矩阵的研究始于1884年。庞加莱在两篇不严谨地使用了无限维矩阵和行列式理论的文章后开始了对这一方面的专门研究[1]。1906年,希尔伯特引入无限二次型(相当于无限维矩阵)对积分方程进行研究,极大地促进了无限维矩阵的研究。在此基础上,施密茨、赫林格和特普利茨发展出算子理论,而无限维矩阵成为了研究函数空间算子的有力工具[1]

正式定义

[编辑]

矩陣的定義 —  是一個集合,那函数 就會被稱為定義在 上的 矩阵

直觀上就是用兩個數碼去標記一堆數學實體(如數字、函數),實際上是有限序列的一種推廣。

被暱稱為矩陣 裡的元素,通常簡記為。除此之外也會用小寫字母 表示元素,來跟矩陣 本身做區別。但不知 的具體形式卻想強調 的元素的話,可以 表示。

如果表達式 (嚴格來說是合式公式,其中 為一個包含變數 )可以唯一決定一個矩陣 ,那会将它记成 。如:

就可以表達為

根據公理化集合论,可以定義一個函數的集合 ,它囊括所有定義在 上的 矩阵,也就是說:

行與列

[编辑]

以下的 矩陣:

一般會如下排列成為矩形來表示:

英文將橫向的元素组統称為「row」,縱向統称為「column」;但兩岸對此卻以不同的稱呼;在中國大陸,橫向的元素组称為「行」,縱向称為「列」,而在臺灣則相反,橫向称為「列」,縱向称為「行」[8]

行数是1或列数是1的矩阵又可分别称为行向量列向量,在有限的情況下,向量可用其分量表示成行数或列数是1的矩阵。

範例

[编辑]

是矩阵

的简写。要注意的是,计算机编程中,由于数组的首项是第0项,故编程者可能会将第1行/列称为第0行/列,从而对矩阵的写法产生影响,比如矩阵就要改写成

矩阵的元素可以是数字、符号或数学表达式。一般为了支援矩阵的运算,矩阵的元素之间应当能做加减法和乘法,所以是某个裡的元素。最常见的是元素属于实数域或复数域的矩阵,简称为实矩阵和复矩阵。更一般的情况下,矩阵的元素可以是由一个环中的元素排成。给定一个环,所有由中元素排成的矩陣的集合写作。若,則通常記以,称其为维矩阵或方阵


矩陣的基本運算

[编辑]

矩阵的最基本运算包括矩阵加(减)法,数乘和转置运算。被称为“矩阵加法”、“数乘”和“转置”的运算不止一种[9],其中最基本最常用的定义如下:

运算 定义 例子
加(减)法 矩陣的和(差):為一个矩陣,其中每个元素是相应元素的和(差),
其中

数乘 标量与矩陣的数乘:的每个元素是的相应元素与的乘积,
转置 矩阵的转置是一个的矩阵,记为(有些书中也记为),其中的第个行向量是原矩阵的第个列向量;或者说,转置矩阵行第列的元素是原矩阵行第列的元素,

矩阵的加法运算满足交换律:[10]。矩阵的转置和数乘运算对加法满足分配律:

矩阵加法和数乘兩種運算使得成為一个维的實數線性空間。而转置和数乘运算满足类似于结合律的规律:

矩阵也有类似行列式的初等变换,即对矩阵的某些行和某些列进行三类操作:交换两行/列,将一行/列的每个元素都乘以一个固定的量,以及将一行/列的每个元素乘以一个固定的量之后加到另一行/列的相应元素上。这些操作在求其逆矩阵时有用。

矩阵乘法

[编辑]
矩阵AB相乘得到AB的示意图

两个矩阵的乘法仅当第一个矩陣的列數(column)和另一个矩阵的行數(row)相等时才能定义。如矩陣和矩陣,它們的乘積是一個矩陣,它的一个元素

其中'[11]

例如

矩阵的乘法满足结合律和对矩阵加法的分配律(左分配律和右分配律):

  • 结合律:
  • 左分配律:
  • 右分配律:

矩阵的乘法与数乘运算之间也满足类似结合律的规律;与转置之间则满足倒置的分配律。

矩阵乘法不满足交换律。一般来说,矩陣的乘积存在,但不一定存在,即使存在,大多数时候。比如下面的例子:

这一特性使得矩阵代数与常见的一些数域(有理数、实数、复数)以及环(多项式环、整数环)都不同。给定一个维的方块矩阵,与交换的所有方块矩阵构成一个环,称为的交换子环。这些矩阵也构成的一个子空间,称为的可交换空间[12]。与中所有矩阵交换的矩阵只有形如的矩阵(称为数乘矩阵)。其中的单位矩阵,也就是主对角线上的元素为1,其它元素为0的矩阵。任意矩阵乘以单位矩阵都得到自身:

除了最常见的矩阵乘法定义以外,也有一些较不常见的矩阵乘法,比如阿达马乘积克罗内克乘积[13]

线性方程组

[编辑]

矩阵乘法的一个基本应用是在线性方程组上。线性方程组是方程组的一种,它符合以下的形式:

其中的以及等等是已知的常数,而等等则是要求的未知数。运用矩阵的方式,可以将线性方程组写成一个向量方程:

其中,是由方程组里未知量的系数排成的矩陣是含有个元素的行向量,是含有个元素的行向量[14]

这个写法下,将原来的多个方程转化成一个向量方程,在已知矩阵和向量的情况下,求未知向量

线性变换

[编辑]

矩陣是线性变换的便利表達法。矩陣乘法的本质在联系到线性变换的时候最能体现,因为矩阵乘法和线性变换的合成有以下的联系: 以表示所有長度為的行向量的集合。每个的矩阵都代表了一个从射到的线性变换。反过来,对每個线性变换,都存在唯一m×n矩陣使得对所有中的元素。这个矩阵行第列上的元素是正则基向量(第j个元素是1,其余元素是0的向量)在映射后的向量的第个元素。

也就是说,从射到的线性变换构成的向量空间上存在一个到一一映射

以下是一些典型的2维实平面上的线性变换对平面向量(图形)造成的效果,以及它们对应的2维矩阵。其中每个线性变换将蓝色图形映射成绿色图形;平面的原点(0, 0)用黑点表示。

推移
幅度m=1.25.
水平鏡射变换 挤压”变换,
压缩程度r=3/2
伸縮,3/2倍 旋轉,左转30°

设有的矩陣代表线性變換,則矩陣積代表了綫性變換的复合[15],因为

矩阵的秩是指矩阵中线性无关的行/列向量的最大个数[16],同时也是矩阵对应的线性变换的像空间的维度[17]秩-零化度定理说明矩阵的列数量等于矩阵的秩与零空间维度之和[18]

方块矩阵

[编辑]

行数与列数相同的矩阵称为方块矩阵,简称方阵。所有维的方块矩阵构成一个线性空间,这个空间对矩阵乘法也是封闭的,因此也是一个代数。方阵称为可逆或非奇异的,如果存在另一个方阵,使得

成立。这时候可以证明也有成立[19],可将矩阵称为的逆矩阵[20]。一个矩阵的逆矩阵如果存在的话,就是唯一的,通常记作

矩阵的元素称为其主对角线上的元素。方块矩阵的所有主对角线元素之和称为它的,写作。尽管矩阵的乘法不满足交换律,方阵相乘时交换顺序会导致乘积变化,但它们的迹不会变,即[21]。除此以外,矩阵转置的迹等于其自身的迹,

如果一个方阵只有主对角线上的元素不是0,其它都是0,那么称其为对角矩阵。如果主对角线上方的元素都是0,那么称为下三角矩阵;反之如果主对角线下方的元素都是0,那么称为上三角矩阵。例如的时候,这些矩阵分别写作:

(对角矩阵),(下三角矩阵)和(上三角矩阵)。

行列式

[编辑]
R2裡的一个线性变换f将蓝色图形变成绿色图形,面积不变,而顺时针排布的向量x1和x2的变成了逆时针排布。对应的矩阵行列式是-1.

方块矩阵的行列式是一个将其映射到标量的函数,记作,反映了矩阵自身的一定特性。一个方阵的行列式等于0当且仅当该方阵不可逆。系数是实数的时候,二维(三维)方阵的行列式的绝对值表示单位面积(体积)的图形经过对应的线性变换后得到的图形的面积(体积),而它的正负则代表了对应的线性变换是否改变空间的定向:行列式为正说明它保持空间定向,行列式为负则说明它逆转空间定向。

2×2矩阵的行列式是

3×3矩阵的行列式由6项组成。更高维矩阵的行列式则可以使用莱布尼兹公式写出[22],或使用拉普拉斯展开由低一维的矩阵行列式递推得出[23]

两个矩阵相乘,乘积的行列式等于它们的行列式的乘积:[24]。将矩阵的一行/列乘以某个系数加到另一行/列上不改变矩阵的行列式,将矩阵的两行/列互换则使得其行列式变号[25]。用这两种操作可以将矩阵变成一个上三角矩阵或下三角矩阵,而后两种矩阵的行列式就是主对角线上元素的乘积,因此能方便地计算。运用行列式可以计算线性方程组的解(见克萊姆法則[26]

特征值与特征向量

[编辑]

的方块矩阵的一个特征值和对应特征向量是满足

[27]的标量以及非零向量。特征值和特征向量的概念对研究线性变换很有帮助。一个线性变换可以通过它对应的矩阵在向量上的作用来可视化。一般来说,一个向量在经过映射之后可以变为任何可能的向量,而特征向量具有更好的性质[28]。假设在给定的基底下,一个线性变换对应着某个矩阵,如果一个向量可以写成矩阵的几个特征向量的线性组合:

其中的表示此向量对应的特征值是,那么向量经过线性变换后会变成:

可以清楚地知道变换后向量的结构。

另一个等价的特征值定义是:标量为特征值,如果矩阵是不可逆矩阵。根据不可逆矩阵的性质,这个定义也可以用行列式方程描述:为特征值,如果

[29]这个定义中的行列式可以展开成一个关于n多项式,叫做矩阵A特征多项式,记为。特征多项式是一个首一多项式(最高次项系数是1的多项式)。它的根就是矩阵特征值[30]哈密尔顿-凯莱定理说明,如果用矩阵本身代替多项式中的不定元,那么多项式的值是零矩阵[31]

对称

[编辑]

转置等于自己的矩阵,即满足的方块矩阵叫做对称矩阵。满足的矩阵称为反对称矩阵。在复系数矩阵中,则有埃尔米特矩阵的概念:满足的方块矩阵称为埃尔米特矩阵,其中的表示共轭转置矩阵。

根据谱定理,实对称矩阵和复埃尔米特矩阵拥有特征基,即由矩阵的特征向量组成的基底。因此任何向量都能表示成矩阵特征向量的线性组合。此外,这两类矩阵的特征值都是实数[32]

正定性

[编辑]
矩阵表达式
正定性 不定矩阵 正定矩阵
对应二次型
取值图像
说明 正定矩阵对应的二次型的取值范围永远是正的,
不定矩阵对应的二次型取值则可正可负

的实对称矩阵如果满足对所有非零向量,对应的二次型

函数值都是正数,就称为正定矩阵。类似地还有半正定矩阵、负定矩阵、不定矩阵等概念[33]。对称矩阵的正定性与其特征值密切相关。矩阵是正定的当且仅当其特征值都是正数[34]

矩阵的计算

[编辑]

矩阵在许多学科领域中都有应用,在很多时候,除了需要知道矩阵的理论性质以外,还需要计算矩阵的数值。为了矩阵的计算能够足够精确与快捷,数值线性代数中专门有研究矩阵的数值计算方法[35]。与其它的数值计算一样,矩阵的数值计算注重的主要也是算法复杂度数值稳定性。矩阵的数值计算可以使用直接计算,也可以用迭代算法,例如在计算方块矩阵的特征值时,可以从一个非零向量开始,通过特定迭代方法得到一个逼近某个特征向量的向量序列[36]

测量一个算法的复杂度是指估计此算法需要的基本运算如数字的加法和乘法的次数,或者找出它的一个上界。例如按照定义计算的话,两个阶方阵的乘法需要次数字乘法计算,因为其乘积是一个阶方阵,有个元素,计算每个元素需要次数字乘法。如果使用施特拉森算法的话,可以将数字乘法的次数减低到大约[37]。此外,编程语言或环境本身对算法的复杂度也会有影响。

某些特殊类型的矩阵携带的数据量比一般矩阵要少,同时带来的信息量比一般矩阵多。一个重要的例子是稀疏矩阵,这类矩阵中绝大部分的元素是零。有关稀疏矩阵的计算,如计算稀疏矩阵的线性方程组时,可以使用一些专用于稀疏矩阵的特殊算法(比如共轭梯度法[38]),减低计算复杂度。

算法的数值稳定性是指输入值的小变化不会让计算结果产生很大偏差。例如计算矩阵的逆时,可以用以下的算法(其中表示伴随矩阵表示行列式

这个算法在的行列式接近0的时候会引起很大的舍入误差[39]。而如果使用全选主元的高斯消去法求逆,则在复杂度降低的同时能够避免舍入误差,保证数值稳定性。

矩阵分解

[编辑]

矩阵研究的一大方向是将一般的矩阵用一些比较“简单”的矩阵来表示。这种表示方式称为矩阵的变换与分解。矩阵变换与分解的方法有很多,它们的目的都是希望化简后的矩阵保持原矩阵的某些性质,比如行列式、秩或逆矩阵,而形式相对简单,因而能用容易地进行讨论和计算,或者能使得某些算法更易执行。

LU分解将矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积[40]。分解后的矩阵可以方便某些问题的解决。例如解线性方程组时,如果将系数矩阵分解成的形式,那么方程的求解可以分解为求解两步,而后两个方程可以十分简洁地求解(详见三角矩阵中“向前与向后替换”一节)。又例如在求矩阵的行列式时,如果直接计算一个矩阵的行列式,需要计算大约次加法和乘法;而如果先对矩阵做分解,再求行列式,就只需要大约次加法和乘法,大大降低了计算次数。这是因为做分解的复杂度大约是次,而后注意到是三角矩阵,所以求它们的行列式只需要将主对角线上元素相乘即可。

若尔当矩阵,其中灰色框内的是若尔当块

高斯消去法也是一种矩阵分解方法。通过初等变换操作,可以将任何矩阵变为阶梯形矩阵,而每个操作可以看做是将矩阵乘上一个特定的初等矩阵[41]奇异值分解则是另一种分解方法,将一个矩阵表示成3个矩阵的乘积:。其中酉矩阵对角矩阵

特征分解是将一个矩阵写成的形式,其中是一个可逆矩阵,是对角矩阵[42]。如果的特征分解存在,就称它是可对角化的矩阵。不能对角化的矩阵,也有类似的分解方式。任意的矩阵都可以写成的形式,其中的矩阵若尔当标准型。若尔当标准型是矩阵的一种,它与对角矩阵类似,只不过主对角线上的元素不是数值,而是若尔当块:主对角线上为同一元素,主对角线右上一行的次对角线上都是1,其它元素都是0的矩阵(见右图)[43]。特征分解可以方便计算矩阵的幂次和多项式,如要计算

而其中对角矩阵的幂次要比容易计算得多。同理还可计算矩阵指数(在线性微分方程中有应用)、矩阵对数矩阵的平方根[44]。为了提高算法的数值稳定性,还有舒尔分解等矩阵分解方法[45]

矩阵的推广

[编辑]

矩阵的元素除了可以是实数和复数以外,也可以任意环或中元素。在线性代数中,矩阵的性质可以经由有限维的线性空间中的线性变换定义。更广泛的,无限维空间中的线性算子,则可以定义更广泛的无穷维矩阵。矩阵的另一种推广是张量。标量可以看成零维方式排列的数据(只有一个“点”),向量可以看成是一维方式排列的数据(若干个“点”排成的“线段”),矩阵可以看成是二维方式排列的数据(若干个“线段”排成的“矩形”),而张量的概念则包括了这几种排列方式。在张量的概念中,标量是零维张量,向量是一维张量,矩阵是二维張量,而更高维方式排列的数据方式就是高维张量[46]

一般域和环上的矩阵

[编辑]

矩阵的元素除了可以是实数和复数以外,还可以是任何能够使得矩阵的运算律成立的元素。首先,矩阵的元素可以是任意一个域(即能够进行“加减乘除”运算的集合)中元素。例如编码理论中会出现系数为有限域中元素的矩阵,以及有理数系数的矩阵。如果矩阵的系数所在域不是代数闭域,那么在求矩阵的特征值时,由于特征值是相应的特征多项式的根,可能不在系数域中,而是在系数域的某个扩域L中。反过来,如果考虑扩域,以及中的一个元素,以及中线性变换,那么由于也是一个-线性变换,它可以表示成一个系数矩阵,其中的是扩域的阶数。是这个矩阵的特征值,这个矩阵的特征多项式中的最小多项式的幂次:

。其中的是扩域 的阶数[47]

更一般的情况是矩阵的元素属于某个环[48]。环是比域更广泛的概念,只要求其中元素能够进行加减法和乘法运算(不一定能定义除法)。给定一个环中的矩阵之间可以相互加减以及相乘,所以关于矩阵的加法和乘法也构成一个环,称为矩阵环维方阵的环與左-自同態同構[49]

交换环,則是一个帶單位元-代數,满足结合律,但不满足交换律。其中的矩阵仍然可以用莱布尼兹公式定義行列式。一个矩阵可逆当且仅当其行列式为环中的可逆元(域上的矩阵可逆只需行列式不等于0)[50]

矩阵与线性变换

[编辑]

前面已经提到,所有的线性变换都对应着一个中的矩阵。更一般地,给定了基底后,任意两个有限维线性空间之间的线性映射也对应着一个矩阵。设空间的基底分别是,那么

对任意

矩阵实际上“记录”了中每个基底向量经过变换后得到的中的像在基底下的形式。要注意矩阵的内容取决于基底的选择。可以说,矩阵是线性变换f在特定“角度”(基底)下的“素描”。不同的“角度”下,描述的矩阵是不同的,但这些矩阵都是相似矩阵[51]。与矩阵有关的基本概念都可以用线性变换的层面来解释,比如一个矩阵的转置可以用f对偶变换来表示[52]

当矩阵的元素是带单位元的环中的元素时,-矩阵对应的则是-自由模