矩阵及矩阵运算

作者:追风剑情 发布于:2014-5-11 11:47 分类:计算机图形学



一个m×n矩阵

mn矩阵.gif

当m=n时,A叫做n阶方阵(或n阶矩阵)。

只有一行的矩阵称为行矩阵或行向量;只有一列的矩阵称为列矩阵或列向量

两个矩阵只有在其行数、列数都相同,且所有对应元素都相等时,才是相等的。

矩阵运算有:

(1)数乘矩阵

数乘矩阵.gif

 

(2)矩阵的加法运算

矩阵加法运算.gif

 

(3)矩阵乘法运算

矩阵乘法运算.gif

矩阵乘法运算=.gif

只有在两个矩阵中前一个矩阵的列数等于后一矩阵的行数时,这两个矩阵才能相乘,得到的矩阵的行数等于前一个矩阵的行数,列数等于后一矩阵的列数。

 

矩阵运算基本性质:

(1)数乘矩阵适合分配律和结合律

数乘结合律分配律.gif

式中A、B为矩阵,t为常数。

 

(2)矩阵的加法适合交换律和结合律

A+B=B+A

A+(B+C)=(A+B)+C

(3)矩阵的乘法适合结合律

A●(B●C)=(A●B)●C

(4)矩阵的乘法对加法适合分配律

(A+B)●C=A●C+B●C

C●(A+B)=C●A+C●B

(5)矩阵的乘法不适合交换律

 

(1)零矩阵及其运算

零矩阵.gif

 

(2)单位矩阵

主对角线元素都为1,其他元素都为0的矩阵称为单位矩阵,如图

单位矩阵.gif

对任意矩阵都有:

与单位矩阵相乘.gif

 

(3)逆矩阵

对任意矩阵A,如果存在逆矩阵.gif,则称A负1.gif为A的逆矩阵。

设A是一个n阶矩阵,如果有n阶矩阵B存在,使得:

A●B=B●A=I

则称A是一个非奇异矩阵,并且B是A的逆矩阵。否则,则称A是一个奇异矩阵。由于A、B处于对称地位,所以当A是非奇异矩阵时,其逆矩阵B也是非奇异矩阵,而且A也就是B的逆矩阵,即A、B互为逆矩阵。任何非奇异矩阵都只能有一个逆矩阵。

 

(4)转置矩阵

将矩阵矩阵A.gif的行、列互换而得到的n×m阶矩阵,称做A的转置矩阵,记为转置矩阵.gif

矩阵的转置具有如下基本性质:

转置矩阵性质.gif

式中,A、B为矩阵; t为常数。

当A是一个n阶矩阵并且有对称矩阵.gif时,则称A是一个对称矩阵。

 

(5)正交矩阵(orthogonal matrix)

正交是矩阵的一种属性。如果一个方阵M和它的转置矩阵的乘积是单位矩阵的话,我们就说这个矩阵是正交的。反过来也是成立的。也就是说,矩阵M是正交的等价于:MMT=MTM=I
如果一个矩阵是正交的,那么它的转置矩阵和逆矩阵是一样的。也就是说,矩阵M是正交的等价于:MT=M-1

(5)秩

非零m×n矩阵A的列秩是A的最大线性无关列集合的大小。类似地,矩阵A的行秩是A最大线性无关行集合的大小。任意矩阵A所共有的一个基本性质是A的行秩等于其列秩,所以可以简称为A的。一个m×n矩阵的秩是[0, min(m,n)]内的整数。(零矩阵的秩为0,而n×n单位矩阵的秩是n。)秩的另一个等价但更有用的定义是:非零m×n矩阵A的秩是满足如下条件的最小数值r:存在m×r矩阵B和r×n矩阵C,使得A=BC

如果n×n方阵的秩是n,则它是满秩的。如果m×n矩阵的秩是n,则其是列满秩

矩阵A的秩为3

 11111.jpg

矩阵B的秩为2,因为(1,0,0)可通过(1,1,0)和(0,0,1)进行线行运算得到。

22222.jpg


(6)线性方程组

一组具有n个未知变量x1,x2,...,xn的线性方程:

11111.jpg

为方便起见,把上式中的方程组用如下矩阵向量表示:

22222.jpg

或等价地,设A=(aij),x=(xi)和b=(bi),记为Ax=b
如果A是非奇异矩阵(可逆矩阵),那么它具有逆A-1,于是x=A-1b就是解向量。
我们可以证明,x是唯一解。证明如下:
如果存在两个解x和x',那么Ax=Ax'=b,令I表示一个单位矩阵,则有
x=Ix=(A-1A)x=A-1(Ax)=A-1(Ax')=(A-1A)x'=x'


(7)高斯消元

1111111.png


(8)舒尔补

1111111.jpg

A'-vwT/a11称为矩阵A对于a11的舒尔补

 

(9)LU分解
A
1  2  0
3  4  1 
5  0  5

高斯消元
r2-3r1, r3-5r1
1   2   0
0  -2   1
0 -10  5

r3-5r2
U:得到上三角矩阵
1   2  0
0  -2  1
0   0  0

L:由消去变量所用的行的乘数组成
1  0  0
3  1  0
5  5  1

LU
1  2  0
3  4  1
5  0  5

得,A=LU

(10) 坐标空间的变换

对坐标空间的变换实际上就是在父空间和子空间之间对点和矢量进行变换。

假设,现在有父坐标空间P以及一个子坐标空间C。我们知道在父坐标空间中子坐标空间的原点位置以及3个单位坐标轴。我们一般会有两种需求:一种需求是把子坐标空间下表示的点或矢量Ac转换到父坐标空间下的表示Ap,另一个需求是反过来,即把父坐标空间下表示的点或矢量Bp转换到子坐标空间下的表示Bc。我们可以使用下面的公式来表示这两种需求:

6666.jpg

其中,Mc->p表示的是从子坐标空间变换到父坐标空间的变换矩阵,而Mp->c是其逆矩阵(即反向矩阵)。

推导

已知子坐标空间C的3个坐标轴在父坐标空间P下的表示xc、yc、zc,以及其原点位置Oc。当给定一个子坐标空间中的一点Ac=(a,b,c),求其在父坐标空间下的位置Ap

1111111.jpg

上面的式子还存在加法表达式,即平移变换。我们知道3x3的矩阵无法表示平移变换,因此为了得到一个更漂亮的结果,我们把上面的式子扩展到齐次坐标空间中,得

2222222.jpg

即,得到

3333.jpg

其中“|”符号表示是按列展开的。

一旦求出来Mc->p,Mp->c就可以通过求逆矩阵的方式求出来,因为从坐标空间C变换到坐标空间P与从坐标空间P变换到坐标空间C是互逆的两个过程。

可以看出来,变换矩阵Mc->p实际上可以通过坐标空间C在坐标空间P中的原点和坐标轴的矢量表示来构建出来:把3个坐标轴依次放入矩阵的前3列,把原点矢量放到最后一列,再用0和1填充最后一行即可。

需要注意的是,这里我们并没有要求3个坐标轴xc、yc、zc是单位矢量,事实上,如果存在缩放的话,这3个矢量值很可能不是单位矢量。

当我们不需要表示平移变换时:

44444.jpg

如果Mc->p是一个正交矩阵,那么:

55555.jpg

3个坐标轴xc、yc、zc是单位矢量时,构建出来的Mc->p才是正交矩阵。

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号