7.1 矩阵-数学定义

在线性代数中, 矩阵就是以行和列形式组织的矩形数字块。矩阵是向量的数组。

7.1.1 矩阵的维度和记法

矩阵的维度被定义为它包含了多少行和多少列。一个\(r \times c\)矩阵有r行, c列。下面是一个\(4 \times 3\)矩阵的例子:
\(\begin{bmatrix} 4 & 0 & 12 \\ -5 & 4 & 3 \\ 12 & -4/3 & -1 \\ 1/2 & 18 & 0 \\ \end{bmatrix}\)

黑色大写字母表示矩阵,如:M,A,R。需要引用矩阵的分量时,采用下标法,常用对应的斜体小写字母。如下\(3 \times 3\)矩阵所示:
\(\begin{bmatrix} m_{11} & m_{12} & m_{13} \\ m_{21} & m_{22} & m_{23} \\ m_{31} & m_{32} & m_{33} \\ \end{bmatrix}\)

7.1.2 方阵

行数和列数相同的矩阵称为方阵。
方阵的对角线元素就是方阵中行号和列号相同的元素。

对角矩阵

所有非对角线元素都是0,如:
\(\begin{bmatrix} 3 & 0 & 0 \\ 0 & -5 & 0 \\ 0 & 0 & 2 \\ \end{bmatrix}\)

单位矩阵

\(n\)维单位矩阵记作\(I_n\),是\(n \times n\)矩阵,对角线元素都为1,其他元素为0。如,\(3 \times 3\)单位矩阵:
\(I_3 = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}\)

7.1.3 向量做为矩阵使用

矩阵的行数和列数可以是任意正整数,当然也包括1。一个\(n\)维向量能被当作\(1 \times n\)矩阵或\(n \times 1\)矩阵。\(1 \times n\)矩阵称为行向量,\(n \times 1\)矩阵称为列向量。如:
\(\begin{bmatrix}1 & 2 & 3\end{bmatrix} \begin{bmatrix} 1\\ 2\\ 3\end{bmatrix}\)

7.1.4 转置

一个\(r \times c\)矩阵\(M\)。\(M\)的转置记作\(M^T\),是一个\(c \times r\)矩阵(\(M_{ij}^T = M_{ji}\)),即沿着矩阵的对角线翻折。
\(\begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ 10 & 11 & 12 \\ \end{bmatrix}^T = \begin{bmatrix} 1 & 4 & 7 & 10\\ 2 & 5 & 8 & 11\\ 3 & 6 & 9 & 12 \\ \end{bmatrix}\)

行列向量之间的转换

\(\begin{bmatrix}x & y & z\end{bmatrix}^T = \begin{bmatrix} x\\ y\\ z\end{bmatrix}\) \(\begin{bmatrix}x & y & z\end{bmatrix} = \begin{bmatrix} x\\ y\\ z\end{bmatrix}^T\)

基本原理

  • 对任意矩阵\(M\), \((M^T)^T = M\)
  • 对于任意对角矩阵\(D\), 都有\(D^T = D\),包括单位矩阵\(I\)也是如此。

7.1.5 标量和矩阵的乘法

矩阵\(M\)和标量\(k\)相乘,结果是一个和\(M\)维数相同的矩阵。记法如下:

\(kM = k \begin{bmatrix} m_{11} & m_{12} & m_{13} \\ m_{21} & m_{22} & m_{23} \\ m_{31} & m_{32} & m_{33} \\ \end{bmatrix} = \begin{bmatrix} km_{11} & km_{12} & km_{13} \\ km_{21} & km_{22} & km_{23} \\ km_{31} & km_{32} & km_{33} \\ \end{bmatrix}\)

7.1.6 矩阵乘法

\(C = AB\)
\(c_{ij} = \displaystyle\sum_{k=1}^na_{ik}b_{kj}\)

如:
\(AB = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \\ \end{bmatrix} \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \\ \end{bmatrix} = \begin{bmatrix} a_{11}b_{11} + a_{12}b_{21} & a_{11}b_{12} + a_{12}b_{22} \\ a_{21}b_{11} + a_{22}b_{21} & a_{21}b_{12} + a_{22}b_{22} \\ \end{bmatrix}\)

乘法规则

  • \(MI = IM = M\)
  • 不满足交换律:\(AB \ne BA\)
  • 结合律:\((AB)C = A(BC)\)
  • 与标量的结合律:\((kA)B = k(AB) = A(kB)\)
  • 转置: \((AB)^T = B^TA^T\)

7.2 矩阵 - 几何解释

一般来说,方阵能描述任意线性变换。

\(\begin{bmatrix}1 \\ -3 \\ 4 \\ \end{bmatrix} = \begin{bmatrix}1 \\ 0 \\ 0 \\ \end{bmatrix} + \begin{bmatrix}0 \\ -3 \\ 0 \\ \end{bmatrix} + \begin{bmatrix}0 \\ 0 \\ 4 \\ \end{bmatrix}\)

一般来说:任意向量\(v\)都能写为“扩展”形式:
\(v=\begin{bmatrix}x \\ y \\ z \\ \end{bmatrix} = \begin{bmatrix}x \\ 0 \\ 0 \\ \end{bmatrix} + \begin{bmatrix}0 \\ y \\ 0 \\ \end{bmatrix} + \begin{bmatrix}0 \\ 0 \\ z \\ \end{bmatrix}\)
或
\(v=\begin{bmatrix}x \\ y \\ z \\ \end{bmatrix} = x\begin{bmatrix}1 \\ 0 \\ 0 \\ \end{bmatrix} + y\begin{bmatrix}0 \\ 1 \\ 0 \\ \end{bmatrix} + z\begin{bmatrix}0 \\ 0 \\ 1 \\ \end{bmatrix}\)
注意,右边的单位向量就是\(x,y,z\)轴,用向量重写上面的等式,分别用\(p, g, r\)定义为指向\(+x, +y, +z\)方向的单位向量
\(v = xp + yp + zr\)

将向量表示为基向量的线性组和

用三个向量\(p, q, r\)来构建一个\(3 \times 3\)的矩阵\(M\),可以得到如下公式

\(M=\begin{bmatrix}p \\ q \\ r \\ \end{bmatrix} = \begin{bmatrix}p_x & p_y & p_z \\ q_x & q_y & q_z \\ r_x & r_y & r_z \\ \end{bmatrix}\)

用一个向量乘以该矩阵,得到:
\(\begin{bmatrix}x & y & z\end{bmatrix}\begin{bmatrix}p_x & p_y & p_z \\ q_x & q_y & q_z \\ r_x & r_y & r_z \\ \end{bmatrix} = \begin{bmatrix}xp_x + yq_x + zr_x & xp_y + yq_y + zr_y & xp_z + yq_z + zr_z\end{bmatrix} = xp + yq + zr\)

如果把矩阵的行解释为坐标系的基向量,那么乘以该向量就相当于执行了一次坐标转换。若有\(aM = b\),我们就可以说,\(M\)将\(a\)转换到\(b\)。

3d数学 7 矩阵的更多相关文章

  1. 3D数学 ---- 矩阵和线性变换[转载]

    http://blog.sina.com.cn/s/blog_536e0eaa0100jn7c.html 一般来说,方阵能描述任意线性变换.线性变换保留了直线和平行线,但原点没有移动.线性变换保留直线 ...

  2. 3D数学读书笔记——矩阵基础

     本系列文章由birdlove1987编写,转载请注明出处.    文章链接:http://blog.csdn.net/zhurui_idea/article/details/24975031   矩 ...

  3. 3D数学读书笔记——矩阵基础番外篇之线性变换

    本系列文章由birdlove1987编写.转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/25102425 前面有一篇文章 ...

  4. 3D数学的实际应用

    以前自己在学习三维程序开发时并没有在意3D数学在程序中的重要作用,但在实际工作中逐渐发现:自己忽视了3D数学的作用,我们实际开发工作总要求模型准确的变换,而不是强调渲染有多炫,那是游戏,如果是仿真程序 ...

  5. Unity3D for VR 学习(6): 再次温故知新-3D数学

    一年前,系统学习过3D数学,并记录了一篇博客<C#程序员整理的Unity 3D笔记(十):Unity3D的位移.旋转的3D数学模型>. 一年后,再次温习之. 坐标系:Unity3D使用左手 ...

  6. OpenGL编程(八)3D数学与坐标变换

    笛卡尔坐标 一维坐标系 以一个点为原点,选定一个方向为正方向(相反的方向为反方向),以一定的距离为标尺建立一维坐标系.一维坐标系一般应用于描述在一维空间中的距离. 举个例子:一维坐标系好比一条拉直的电 ...

  7. 3d数学总结帖

    3d数学总结帖,以下是对3d学习过程中数学知识的简单总结 角度值和弧度制的互转 Deg2Rad 角度A1转弧度A2 => A2=A1*PI/180 Rad2Deg 弧度A2转换角度A1 => ...

  8. Unity3D之空间转换学习笔记(三):3D数学

    3D数学基础 向量 向量可以看做具有方向和大小的一条线段. 比如:我们如果用点A减去点B,则可以得到一个向量,该向量的方向为点B面向点A的方向,而大小为两点的距离.这个方法在游戏开发中经常用到,比如我 ...

  9. 3D数学学习笔记——笛卡尔坐标系

    本系列文章由birdlove1987编写.转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24601215 1.3D数学 ...

随机推荐

  1. Win10电脑如何更改开机启动项

    https://jingyan.baidu.com/article/5970355284f0458fc1074049.html

  2. vue项目中使用百度地图的方法

    1.在百度地图申请密钥: http://lbsyun.baidu.com/  将 <script type="text/javascript" src="http: ...

  3. WPF在win7运行时报'Initialization of 'System.Windows.Setter' threw an exception.'

    写的一个WPF程序,在win10运行好好的,在win7就报'Initialization of 'System.Windows.Setter' threw an exception.' 原来是xaml ...

  4. vue02 过滤器、计算和侦听属性、vue对象的生命周期、阻止事件冒泡和刷新页面

    3. Vue对象提供的属性功能 3.1 过滤器 过滤器,就是vue允许开发者自定义的文本格式化函数,可以使用在两个地方:输出内容和操作数据中. 定义过滤器的方式有两种. 3.1.1 使用Vue.fil ...

  5. Django - 一对多数据示例

    1.增加Host -id 可以在模版中增加代码: 备注: 1.counter (从1开始) 2.counter0(从0开始) 3.revcounter(倒序) 4.revcounter0(倒序从0开始 ...

  6. Free中的buffer和cache理解

    吐血推荐文章: Linux内存中的Cache真的能被回收么? free中的buffer和cache: redhat对free输出的解读 两者都是RAM中的数据.简单来说,buffer是即将要被写入磁盘 ...

  7. PAT 1093. Count PAT's

    The string APPAPT contains two PAT's as substrings. The first one is formed by the 2nd, the 4th, and ...

  8. ganglia3.7.2,web3.7.1安装

    1.准备安装包 ganglia-3.7.2-2.el6.x86_64.rpm ganglia-gmetad-3.7.2-2.el6.x86_64.rpm ganglia-gmond-3.7.2-2.e ...

  9. 【codeforces 768D】Jon and Orbs

    [题目链接]:http://codeforces.com/contest/768/problem/D [题意] 你有一个水晶; 它每天都会产生一个球??(球有k种) 然后每种球产生的可能性是相同的-& ...

  10. 【codeforces 527B】Error Correct System

    [题目链接]:http://codeforces.com/contest/527/problem/B [题意] 给你两个字符串; 允许你交换一个字符串的两个字符一次: 问你这两个字符串最少会有多少个位 ...