今天复习矩阵,作为程序员,矩阵在程序中的应用想必或多或少都接触过,特别是在图像变化算法上的应用。
一、矩阵
1. 定义
矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。(此定义来自百度百科)
下面通过一个方程组来声明一个矩阵(数学符号在PC上书写真是很麻烦,不知道谁有好用的公式符号书写软件推荐下):
以上是一个三元一次方程组,根据矩阵的来源定义,有矩阵
A 如下图
2. 矩阵的运算
2.1. 矩阵的加法
从上图中我们可以看出,矩阵
A 和矩阵
B 相加,它们都是2 x 2的矩阵,相加就是两个矩阵对应的元素值的相加,比如:矩阵
A 的一行一列元素3和矩阵
B 的一行一列的元素-7相加,得到新的矩阵的一行一列元素-4,以此类推计算出一个新的矩阵。上图中
A +
B 计算的结果和
B +
A 是一样的,符合加法的交换律。 重新定义两个矩阵
A [2x2]和
B [2x3]:
矩阵
A 是2行2列,矩阵
B 是2行3列,如果
A +
B ,根据上面两个矩阵相加的计算法则,会发现矩阵
B 的第三列元素没有办法相加。
所以结论是: 当两个矩阵相加的时候,这两个矩阵的维数(行列个数)必须是相同的,比如要么都是 2x2,要么都是3x3等等。 同样的如果是
A +
B +
C 三个或者更多的矩阵的相加计算方式也是一样的。
2.2. 矩阵的减法
上图可以看出,矩阵
A -
B 的计算就是对应的每个元素的相减,而且有个规律是: 矩阵
A -
B = -(
B -
A ),同矩阵加法一样,做减法的两个或者多个矩阵的维数(行列个数)必须是一样的,否则无法进行减法运算。
2.3. 矩阵的乘法
有矩阵
A 和
B ,两个矩阵相乘,
A 的a11(表示矩阵的第一行第一列元素)、a12 分别和
B 的第一列的两个元素相乘后相加,作为新的矩阵的a11元素值。
上图就很清楚的描述了,矩阵乘法的计算规则。
假设有两个矩阵
C 和
D ,分别是
C ·
D 和
D ·
C ,很明显计算出的结果不相同,所以通常情况下矩阵的乘法是不满足:乘法交换律的,即:
C ·
D ≠
D ·
C
如上图,你会发现也不是任何两个矩阵都能够相乘,只有乘数矩阵A的列数和被乘矩阵B的行数相同的时候,两个矩阵才能相乘。
3. 单位矩阵
在介绍单位矩阵之前,说介绍什么是方阵,顾名思义,方阵就是方的,行数和列数一样的矩阵,比如:
像上图这样,行列一样的矩阵就是方阵,这很直观也很好理解。
单位矩阵,是一直特殊的方阵,它的所有元素由0和1组成,并且对角线的元素为1,其余元素为0,当然一阶的单位矩阵只含有一个元素1:I₁ = [1]。
以上四个方阵都是单位矩阵,分别是
I₂ 二阶单位矩阵、
I₃ 三阶单位矩阵、四阶和五阶的单位矩阵。单位矩阵的阶数可以无限扩大,比如n阶的单位矩阵:
单位矩阵有一个特殊重要的性质,
I ·
A =
A ,
A ·
I =
A ,这里的矩阵
A 是一个和单位矩阵同个维数的方阵,不是方阵无法和单位矩阵相乘,这个性质很容易证明,举个例子就知道了:
反过来
A ·
I 也等于
A
(未完待续。。。。)