矩阵

来源:互联网 发布:家具下料软件 编辑:程序博客网 时间:2024/04/28 12:29

矩阵

维基百科,自由的百科全书
线性代数
\mathbf{A} = \begin{bmatrix}1 & 2 \\3 & 4 \end{bmatrix}
向量 · 矩阵  · 行列式  · 线性空间显示▼向量显示▼矩阵与行列式显示▼线性空间与线性变换
···
矩陣

數學上,一個m×n矩陣是一个由mn列元素排列成的矩形陣列。矩陣里的元素可以是数字、符号或数学式。以下是一个由6个数字元素构成的2行3列的矩阵:

\begin{bmatrix}1 & 9 & -13 \\20 & 5 & -6 \end{bmatrix}.

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

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

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

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

[编辑]定义

将一些元素排列成若干行,每行放上相同数量的元素,就是一个矩阵。这里说的元素可以是数字,例如以下的矩阵:

\mathbf{A} = \begin{bmatrix}9 & 13 & 5 \\1 & 11 & 7 \\3 & 9 & 2 \\6 & 0 & 7 \end{bmatrix}

排列成的形状是矩形,所以称为矩阵。在中國大陸,橫向的元素组称為「行」,縱向称為「列」,而在台灣則相反,橫向称為「列」,縱向称為「行」。矩阵一般用大写拉丁字母表示,需要具体写出其中元素时,一般用方括号或圆括号括起。以上的矩阵A是一个4行3列的矩阵。

行数和列数是1的矩阵分别称为行向量和列向量。这是因为一个向量可以表示成行数或列数是1的矩阵形式。矩阵的任一行(列)都是一个行(列)向量,例如矩阵A的第一行  \begin{bmatrix}9 & 13 & 5 \end{bmatrix} 就是一个行向量。行(列)向量可以看成一个向量,因此可以称矩阵的两行(列)相等,或者某一行等于某一列,表示其对应的向量相等。

[编辑]标记

一个矩阵A從左上角數起的第i 行第j 列上的元素称为第i,j項,通常记为\scriptstyle \mathbf{A}_{i,j} \scriptstyle  \mathbf{a}_{ij} \scriptstyle  \mathbf{a}_{i,j} \scriptstyle \mathbf{A}[i,j]。在上述例子中 \scriptstyle \mathbf{A}[4,3] = 7 。如果不知道矩阵A的具体元素,通常也会将它记成\scriptstyle \mathbf{A} = \left[ \mathbf{a}_{ij} \right]_{m \times n}\scriptstyle \mathbf{A} = \left[ \mathbf{a}_{i,j} \right]_{m \times n}。反之,如果A的元素可以写成只与其行数i和列数j有关的统一函数f,那么也可以用\scriptstyle \mathbf{A} = \left[ f(i,j) \right]_{m \times n}作为A的简写。例如\scriptstyle \mathbf{B} = \left[ i+2j \right]_{2 \times 3}是矩阵

\mathbf{B} = \begin{bmatrix}3 & 5 & 7 \\4 & 6 & 8 \end{bmatrix}

的简写。要注意的是,一些计算机编程语言中,会将第1行(列)称为第0行(列),从而对矩阵的写法产生影响,比如矩阵B就要改写成\scriptstyle \mathbf{B} = \left[ i+2j+3 \right]_{2  \times 3}

矩阵的元素可以是数字、符号或数学表达式。一般为了支持矩阵的运算,矩阵的元素之间应当能做加减法和乘法,所以是某个环里的元素。最常见的是元素属于实数域或复数域的矩阵,简称为实矩阵和复矩阵。更一般的情况下,矩阵的元素可以是由一个环中的元素排成。 给定一个环R,所有由R中元素排成的m×n矩陣的集合写作\mathcal{M}(m,n,\mathbf{R})\mathcal{M}_{m \times n}(\mathbf{R})。若m = n,則通常記以 \mathcal{M}(m,\mathbf{R})\mathcal{M}_m (\mathbf{R}),称其为n维矩阵或方阵。

[编辑]矩陣的基本運算

主条目:矩阵加法、转置矩阵和初等矩阵

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

运算定义例子加(减)法m×n 矩陣AB的和(差):A±B為一个m×n矩陣,其中每个元素是AB相应元素的和(差),
(A ± B)i,j = Ai,j ± Bi,j
其中 1 ≤ i ≤ m , 1 ≤ j ≤ n.

\begin{bmatrix}1 & 3 & 1 \\1 & 0 & 0\end{bmatrix}+\begin{bmatrix}0 & 0 & 5  \\7 & 5 & 0\end{bmatrix}=\begin{bmatrix}1+0 & 3+0 & 1+5 \\1+7 & 0+5 & 0+0\end{bmatrix}=\begin{bmatrix}1 & 3 & 6 \\8 & 5 & 0\end{bmatrix}

数乘标量c与矩陣A的数乘:cA的每个元素是A的相应元素与c的乘积,
(cA)i,j = c · Ai,j.
2 \cdot\begin{bmatrix}1 & 8 & -3 \\4 & -2 & 5\end{bmatrix}=\begin{bmatrix}2 \cdot 1 & 2\cdot 8 & 2\cdot (-3) \\2\cdot 4 & 2\cdot (-2) & 2\cdot 5\end{bmatrix}=\begin{bmatrix}2 & 16 & -6 \\8 & -4 & 10\end{bmatrix}转置m×n 矩阵A的转置是一个n×m的矩阵,记为AT(有些书中也记为Atr 或tAA'),其中的第i个行向量是原矩阵A的第i个列向量;或者说,转置矩阵ATi行第j列的元素是原矩阵Aj行第i列的元素,
(AT)i,j = Aj,i.
\begin{bmatrix}1 & 2 & 3 \\0 & -6 & 7\end{bmatrix}^T =\begin{bmatrix}1 & 0 \\2 & -6 \\3 & 7\end{bmatrix}

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

(A + B)T = AT + BT
c(A + B) = cA + cB

矩阵加法和数乘兩種運算使得\mathcal{M}(m,n,\mathbb{R})成為一个mn维的實數線性空間。而转置和数乘运算满足类似于结合律的规律:

c(AT) = (cA)T

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

[编辑]矩阵乘法

主条目:矩阵乘法
矩阵AB相乘得到AB的示意图

两个矩阵的乘法仅当第一个矩陣A的列數和另一个矩阵B的行數相等时才能定义。如Am×n矩陣和Bn×p矩陣,它們的乘積AB是一個m×p矩陣,它的一个元素

 [\mathbf{AB}]_{i,j} = A_{i,1}B_{1,j} + A_{i,2}B_{2,j} + \cdots + A_{i,n}B_{n,j} = \sum_{r=1}^n A_{i,r}B_{r,j}

其中 1 ≤ i ≤ m, 1 ≤ j ≤ p[4]

例如

  \begin{bmatrix}    1 & 0 & 2 \\    -1 & 3 & 1 \\  \end{bmatrix}\times  \begin{bmatrix}    3 & 1 \\    2 & 1 \\    1 & 0  \end{bmatrix}=  \begin{bmatrix}     (1 \times 3  +  0 \times 2  +  2 \times 1) & (1 \times 1   +   0 \times 1   +   2 \times 0) \\    (-1 \times 3  +  3 \times 2  +  1 \times 1) & (-1 \times 1   +   3 \times 1   +   1 \times 0) \\  \end{bmatrix}=  \begin{bmatrix}    5 & 1 \\    4 & 2 \\  \end{bmatrix}

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

  • 结合律:(AB)C = A(BC),
  • 左分配律: (A + B)C = AC + BC,
  • 右分配律: C(A + B) = CA + CB.

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

c(AB) =(cA)B = A(cB)
(AB)T = BTAT

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

\begin{bmatrix}1 & 2\\3 & 4\\\end{bmatrix}\begin{bmatrix}0 & 1\\0 & 0\\\end{bmatrix}=\begin{bmatrix}0 & 1\\0 & 3\\\end{bmatrix},\qquad \quad \begin{bmatrix}0 & 1\\0 & 0\\\end{bmatrix}\begin{bmatrix}1 & 2\\3 & 4\\\end{bmatrix}=\begin{bmatrix}3 & 4\\0 & 0\\\end{bmatrix}.

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

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

[编辑]线性方程组

主条目:线性方程组

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

 \begin{cases}a_{1,1}x_{1} + a_{1,2}x_{2} + \cdots + a_{1,n}x_{n}=  b_{1} \\                     a_{2,1}x_{1} + a_{2,2}x_{2} + \cdots + a_{2,n}x_{n}=  b_{2} \\                     \vdots \quad \quad \quad \vdots \\                     a_{m,1}x_{1} + a_{m,2}x_{2} + \cdots + a_{m,n}x_{n}=  b_{m} \end{cases}

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

\mathbf{A} \mathbf{x} = \mathbf{b}

其中,A是由方程组里未知量的系数排成的m×n 矩陣x 是含有n 个元素的行向量,b 是含有m 个元素的行向量[7]

\mathbf{A} =\begin{bmatrix}a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\\vdots & \vdots & \ddots & \vdots \\a_{m,1} & a_{m,2} & \cdots & a_{m,n}\end{bmatrix},\quad\mathbf{x} =\begin{bmatrix}x_1 \\x_2 \\\vdots \\x_n\end{bmatrix},\quad\mathbf{b} =\begin{bmatrix}b_1 \\b_2 \\\vdots \\b_m\end{bmatrix}

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

[编辑]綫性變換

主条目:线性变换

矩陣是綫性變換的便利表達法。矩陣乘法的本质在联系到綫性變換的时候最能体现,因为矩阵乘法和线性变换的合成有以下的連繫: 以 \mathbb{R}^n表示所有長度為n的行向量的集合。每个m×n的矩陣A都代表了一个从 \mathbb{R}^n射到 \mathbb{R}^m的线性变换。反过来,對每個綫性變換f : \mathbb{R}^n \rightarrow \mathbb{R}^m,都存在唯一m×n矩陣  A_f  使得對所有 \mathbb{R}^n中的元素x, f(x) = A_f x 。这个矩阵 A_f i 行第j 列上的元素是正则基向量\mathbf{e}_j = (0, \cdots ,0, 1,0, \cdots 0)^T(第j个元素是1,其余元素是0的向量)在f映射后的向量f(\mathbf{e}_j)的第i个元素。

也就是说,从 \mathbb{R}^n射到\mathbb{R}^m的线性变换构成的向量空间 \mathcal{L} \left( \mathbb{R}^n , \mathbb{R}^m \right) 上存在一个到\mathcal{M}(m,n,\mathbb{R})的一一映射:f   \mapsto  A_f

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

水平错切变换,
幅度m=1.25.水平反射变换“挤压”变换,
压缩程度r=3/2放缩变换,3/2倍旋转变换,左转30°\begin{bmatrix}1 & 1.25  \\0 & 1 \end{bmatrix}\begin{bmatrix}-1 & 0  \\0 & 1 \end{bmatrix}\begin{bmatrix}3/2 & 0  \\0 & 2/3 \end{bmatrix}\begin{bmatrix}3/2 & 0  \\0 & 3/2 \end{bmatrix}\begin{bmatrix}\cos(\pi / 6) & -\sin(\pi / 6)\\ \sin(\pi / 6) & \cos(\pi / 6)\end{bmatrix}VerticalShear m=1.25.svgFlip map.svgSqueeze r=1.5.svgScaling by 1.5.svgRotation by pi over 6.svg

设有k×m的矩陣B代表綫性變換g : Rm -> Rk,則矩陣積BA代表了綫性變換的复合g o f[8],因为

(g ∘ f)(x) = g(f(x)) = g(Ax) = B(Ax) = (BA)x

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

[编辑]方块矩阵

主条目:方块矩阵

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

AB = In

成立。这时候可以证明也有BA = In成立[12],可将矩阵B称为A的逆矩阵[13]。一个矩阵A的逆矩阵如果存在的话,就是唯一的,通常记作A−1

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

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

      \begin{bmatrix}           d_{11} & 0 & 0 \\           0 & d_{22} & 0 \\           0 & 0 & d_{33} \\        \end{bmatrix} (对角矩阵),       \begin{bmatrix}           l_{11} & 0 & 0 \\           l_{21} & l_{22} & 0 \\           l_{31} & l_{32} & l_{33} \\        \end{bmatrix} (下三角矩阵)和         \begin{bmatrix}           u_{11} & u_{12} & u_{13} \\           0 & u_{22} & u_{23} \\           0 & 0 & u_{33} \\        \end{bmatrix} (上三角矩阵)。

[编辑]行列式

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

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

2×2矩阵的行列式是

\det \begin{pmatrix}a&b\\c&d\end{pmatrix} = ad-bc.

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

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

[编辑]特征值与特征向量

主条目:特征向量

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

\mathbf{Av} = \lambda \mathbf{v}[20]

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

\mathbf{x} = c_1 \mathbf{x}_{\lambda_1} + c_2 \mathbf{x}_{\lambda_2} + \cdots + c_k \mathbf{x}_{\lambda_k}

其中的 \mathbf{x}_{\lambda_i} 表示此向量对应的特征值是\lambda_i,那么向量\mathbf{x}经过线性变换后会变成:

\mathbf{Ax} = c_1 \lambda_1 \mathbf{x}_{\lambda_1} + c_2 \lambda_2 \mathbf{x}_{\lambda_2} + \cdots + c_k \lambda_k \mathbf{x}_{\lambda_k}

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

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

\det(\lambda \mathsf{I}_n - \mathbf{A}) = 0.\ [22]

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

p_{\mathbf{A}}(\mathbf{A}) = 0.

[编辑]对称

主条目:对称矩阵

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

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

[编辑]正定性

矩阵表达式\begin{bmatrix}1/4 & 0\\0 & -1/4\end{bmatrix}\begin{bmatrix}1/4 & 0\\0 & 1/4\end{bmatrix}正定性不定矩阵正定矩阵对应二次型Q(x, y) = \frac14 (x^2 - y^2)Q(x, y) = \frac14 (x^2 + y^2)取值图像Hyperbolic vs elliptic paraboloid.png说明正定矩阵对应的二次型的取值范围永远是正的,
不定矩阵对应的二次型取值则可正可负
主条目:正定矩阵

n×n的实对称矩阵A如果满足对所有非零向量x ∈ Rn,对应的二次型

Q(x) = xTAx

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

[编辑]矩阵的计算

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

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

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

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

A−1 = Adj(A) / det(A)

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

[编辑]矩阵分解

主条目:矩阵分解、对角化、高斯消去法和巴莱斯算法

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

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

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

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

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

An = (PDP−1)n = PDP−1PDP−1...PDP−1 = PDn P−1

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

[编辑]矩阵的推广

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

[编辑]一般域和环上的矩阵

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

 p_{X_{\alpha} } = \left(  \operatorname{min}_{\mathbf{K}} (\alpha)  \right)^r \,.

其中的r是扩域L/K (\alpha)的阶数[40]

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

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

[编辑]矩阵与线性变换

前面已经提到,所有Rn → Rm的线性变换都对应着一个\mathcal{M}(m,n,\mathbf{R})中的矩阵。更一般地,给定了基底后,任意两个有限维线性空间之间的线性映射fV →W也对应着一个矩阵Af= (aij)。设空间VW的基底分别是v1, ..., vn 和 w1, ..., wm,那么

对任意  j=1,\ldots,n  , f(\mathbf{v}_j) = \sum_{i=1}^m a_{i,j} \mathbf{w}_i

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

当矩阵的元素是带单位元的环R中的元素时,m×nR-矩阵对应的则是R-自由模RmRn之间的R-线性变换。n = m 的时候,这些R-线性变换可以相互复合,因此n维的R-矩阵环能够与R-自同态环Rn同构。

[编辑]矩阵群

主条目:矩阵群

群是比环更宽泛的代数结构,只需要集合配备一个满足结合律的二元运算,即将两个群内元素映射到群内一元素的运算。矩阵群是指矩阵关于矩阵乘法组成的群[46]。显然,只有方块矩阵才能构成乘法群。所有n维的可逆方阵构成一个群,称为n阶一般线性群。由于群内每个元素都必须是可逆的,任意的矩阵群都必然是一般线性群的子群。

能够在矩阵乘法和求逆矩阵运算下保持的性质都可以用来刻画一定的矩阵群。例如所有行列式为1的矩阵可以构成一个群,称为n阶特殊线性群[47]。所有n维的正交矩阵,即满足:

MTM = I

的矩阵M也构成一个群,称为n阶正交群[48]。正交矩阵得名于它在Rn中对应的线性变换具有保角性,也就是说对基本的点积,满足

(Mv) · (Mw) = v · w.[49]

每个有限群都同构于一个矩阵群。实际上,每个有限群都同构于某个置换群的子群,而每个置换群都同构于一个矩阵群(见置换群的正则群表示[50])鉴于矩阵群的性质可以通过与矩阵相关的更多手段更好地理解,常常通过研究矩阵群来研究一个有限群。相关的理论称为群表示论。

[编辑]无限维矩阵

主条目:无限维矩阵

无穷维矩阵可以指行数或列数无穷大,或两者都是无穷大的矩阵[51]。尽管这样的矩阵无法完整写出,但只要知道每行每列的元素的值,仍然可以对它进行矩阵操作和运算。这里矩阵的行数和列数甚至不一定需要是可数集。需要注意的是,无穷维矩阵的乘法涉及到无穷级数求和,因此只有在相关的无穷级数收敛的时候,才能定义矩阵的乘积[52]。无限维矩阵也可以是方块矩阵,定义为行标记集合与列标记集合相同的矩阵(如\mathbb{N} \times  \mathbb{N}[53]

无限矩阵无法定义通常意义上的行列式,因此可逆矩阵不一定是方块矩阵,同理,酉矩阵也不一定要是方块矩阵[54]

[编辑]空矩阵

主条目:空矩阵

空矩阵是指行数或列数为零的矩阵。空矩阵的定义可以完善一些关于零维空间的约定。包括约定一个矩阵与空矩阵相乘得到的也是空矩阵,两个n×0和0×p的空矩阵相乘是一个n×p的零矩阵(所有元素都是零的矩阵)。0×0的空矩阵的行列式约定为1,所以它也可以有逆矩阵,约定为它自己[55]

[编辑]分塊矩陣

分塊矩陣是指一個大矩陣分割成“矩陣的矩陣”。舉例,以下的矩陣

P = \begin{bmatrix}1 & 2 & 3 & 2\\1 & 2 & 7 & 5\\4 & 9 & 2 & 6\\6 & 1 & 5 & 8\end{bmatrix}

可分割成4個2×2的矩陣

P_{11} = \begin{bmatrix}1 & 2 \\1 & 2 \end{bmatrix}   P_{12} = \begin{bmatrix}3 & 2\\7 & 5\end{bmatrix}  P_{21} = \begin{bmatrix}4 & 9 \\6 & 1 \end{bmatrix}   P_{22} = \begin{bmatrix}2 & 6\\5 & 8\end{bmatrix}
P = \begin{bmatrix}P_{11} & P_{12}\\P_{21} & P_{22}\end{bmatrix}

将矩阵分块可以使得矩阵结构清晰,在某些时候可以方便运算、证明。两个大小相同、分块方式也相同的矩阵可以相加。行和列的块数符合矩阵乘法要求时,分块矩阵也可以相乘。将矩阵分块相乘的结果与直接相乘是一样的。用分块矩阵求逆,可以将高阶矩阵的求逆转化为多次低阶矩阵的求逆[56]

[编辑]应用

矩阵在许多领域都应用广泛。有些时候用到矩阵是因为其表达方式紧凑,例如在博弈论和经济学中,会用收益矩阵来表示两个博弈对象在各种决策方式下的收益[57]。文本挖掘和索引典汇编的时候,比如在TF-IDF方法中,也会用到文件项矩阵来追踪特定词汇在多个文件中的出现频率[58]

复数可以用实系数的2×2矩阵表示:

a + ib \leftrightarrow \begin{bmatrix}a & -b  \\b & a \end{bmatrix},

这种表示法与复数的加减法、乘法都相兼容。比如,2×2的旋转矩阵可以用来表示模长为1的复数,一个向量乘以此旋转矩阵可以视作一个复数乘以该模长为1的复数。对四元数也有类似的矩阵表达[59]

早期的密码技术如希尔密码也用到矩阵。然而,矩阵的线性性质使这类密码相对容易破解[60]。计算机图像处理也会用到矩阵来表示处理对象,并且用放射旋转矩阵来计算对象的变换,实现三维对象在特定二维屏幕上的投影[61]。多项式环上的矩阵在控制论中有重要作用。

化学中也有矩阵的应用,特别在使用量子理论讨论分子键和光谱的时候。具体例子有解罗特汉方程时用重叠矩阵和福柯矩阵来得到哈特里-福克方法中的分子轨道。

[编辑]图论

一个无向图的邻接矩阵\begin{bmatrix}2 & 1 & 0 \\1 & 0 & 1 \\0 & 1 & 0\end{bmatrix}.

图论中可以用矩阵描述一个有限图[62]。这个矩阵叫做相关矩阵的邻接矩阵,记录了图的每两个顶点之间是否有边连接。对简单图来说,邻接矩阵的元素只取两个值:0和1,第i 行第j 列上取值为0,表示没有从第i 个顶点连到第j 个顶点的边,取值为1则说明有。如果是一般情况的话,第i 行第j 列上的取值是从第i 个顶点连到第j 个顶点的边的数目。距离矩阵则是表示图中各顶点之间距离的矩阵[63]。在研究互联网等复杂网络的时候,邻接矩阵常常会是稀疏矩阵。因此网络理论中有专门研究稀疏矩阵的方面。

[编辑]数学分析

在多元函数微积分学中,对二阶偏导数存在的函数fRn → R,可以定义其海森矩阵[64]

H(f)(x) = \left[ \frac {\partial^2 f}{\partial x_i \, \partial x_j}(x) \right ].
n=2时,海森矩阵\begin{bmatrix}2 & 0 \\0 & -2\end{bmatrix}的特征值一正一负,说明函数f(x,y) = x2 − y2在 (x = 0, y = 0) 处有一个鞍点(红色点)

严格来说,仅当函数在某一点上的二阶偏导数存在,才能定义这一点上的海森矩阵。海森矩阵给出了函数在这一点的变化率方面的信息。当给定的点x = (x1, ..., xn)是函数平稳点(即函数f 在这一点上的一阶偏导数\scriptstyle \frac{\partial f }{ \partial x_i}都是0)时,就需要利用海森矩阵来查看函数在这一点周围的增长特性。多元函数在点x的泰勒展开是:

f(x+h) = f(x) + \nabla f (x) \cdot h + \frac12 h^T H(f)(x) h + \circ \left( \| x \|^3\right)

如果函数在点x的一阶偏导数都是0,那么 \nabla f = 0,所以函数在x附近的变化率取决于海森矩阵H(f)(x)的性质。如果H(f)(x)是正定矩阵,那么函数在点x取得局部最小值,如果是负定矩阵,则函数在x取得局部最大值。在这类情况下,关于函数f 的条件最优化问题可以转变为关于海森矩阵的二次规划问题[65]

矩阵在多元函数微积分中的另一个应用是雅可比矩阵。函数fRn → Rm在某一点x上的一阶偏导数存在时,可以定义它在这点上的雅可比矩阵[66]

J_f(x) = \left [\frac {\partial f_i}{\partial x_j}(x) \right ]_{1 \leq i \leq m, 1 \leq j \leq n}.

如果n>m,而J_f(x)又是满秩矩阵(秩等于m)的话,根据反函数定理,可以找到函数f 在x附近的一个局部的反函数[67]

偏微分方程理论中,二阶拟线性偏微分方程可以根据最高次偏导项系数构成的矩阵的正定性分类。假设有一个二阶拟线性偏微分方程:

(\mathbf{E}) \qquad \qquad \sum_{1\leqslant i, j \leqslant n} a_{ij} \frac {\partial^2 f}{\partial x_i \, \partial x_j}  + \sum_{i=1}^n b_i \frac {\partial f}{\partial x_i} + cf = g. \qquad  并假设   a_{ij} =a_{ji},

记矩阵 \mathbf{A}=\left[ a_{ij} \right]_{1 \leqslant i , j \leqslant n}  。如果矩阵A是正定或负定矩阵,那么就称方程(E)为椭圆形偏微分方程;如果A不可逆,就称(E)为抛物形偏微分方程,如果A可逆而且恰有n - 1个特征值同号,就称(E)为双曲型偏微分方程。其它情况下也称(E)为超双曲形偏微分方程。不同类型的方程解的形式也不一样[68]

用数值方法解偏微分方程时更需要用到矩阵。一个重要的方法是有限元方法,在求解各种物理中遇到的偏微分方程时广泛使用。有限元方法的基本思想是用一系列“简单”函数的线性组合来“逼近”偏微分方程的精确解。这些“简单”函数通常是指将求解区域分割成一定数量的“小块”后,仅在某一“小块”上非零的分段线性函数。选定了网格和“简单”函数后,可以求解关于刚度矩阵的方程得到近似解。有限元理论中证明了在满足一定的条件下,近似解将随着网格趋于精细而弱收敛到精确解[69][70]


原创粉丝点击