3d数学 7 矩阵
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 矩阵的更多相关文章
- 3D数学 ---- 矩阵和线性变换[转载]
http://blog.sina.com.cn/s/blog_536e0eaa0100jn7c.html 一般来说,方阵能描述任意线性变换.线性变换保留了直线和平行线,但原点没有移动.线性变换保留直线 ...
- 3D数学读书笔记——矩阵基础
本系列文章由birdlove1987编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/24975031 矩 ...
- 3D数学读书笔记——矩阵基础番外篇之线性变换
本系列文章由birdlove1987编写.转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/25102425 前面有一篇文章 ...
- 3D数学的实际应用
以前自己在学习三维程序开发时并没有在意3D数学在程序中的重要作用,但在实际工作中逐渐发现:自己忽视了3D数学的作用,我们实际开发工作总要求模型准确的变换,而不是强调渲染有多炫,那是游戏,如果是仿真程序 ...
- Unity3D for VR 学习(6): 再次温故知新-3D数学
一年前,系统学习过3D数学,并记录了一篇博客<C#程序员整理的Unity 3D笔记(十):Unity3D的位移.旋转的3D数学模型>. 一年后,再次温习之. 坐标系:Unity3D使用左手 ...
- OpenGL编程(八)3D数学与坐标变换
笛卡尔坐标 一维坐标系 以一个点为原点,选定一个方向为正方向(相反的方向为反方向),以一定的距离为标尺建立一维坐标系.一维坐标系一般应用于描述在一维空间中的距离. 举个例子:一维坐标系好比一条拉直的电 ...
- 3d数学总结帖
3d数学总结帖,以下是对3d学习过程中数学知识的简单总结 角度值和弧度制的互转 Deg2Rad 角度A1转弧度A2 => A2=A1*PI/180 Rad2Deg 弧度A2转换角度A1 => ...
- Unity3D之空间转换学习笔记(三):3D数学
3D数学基础 向量 向量可以看做具有方向和大小的一条线段. 比如:我们如果用点A减去点B,则可以得到一个向量,该向量的方向为点B面向点A的方向,而大小为两点的距离.这个方法在游戏开发中经常用到,比如我 ...
- 3D数学学习笔记——笛卡尔坐标系
本系列文章由birdlove1987编写.转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24601215 1.3D数学 ...
随机推荐
- 查询数据表行数 然后循环查找表 添加数据到ITEMS
;i<tbBiao.Rows.Count;i++) { string TableName = (tbBiao.Rows[i]["Table"]).ToString(); tb ...
- 【转载】resolv.conf中search作用
原文地址:http://www.oliver.ren/linux/387.html reslov.conf中的search主要是用来补全hostname的,有时候域名太长,可以做一个短域名做主机名字, ...
- 云计算时代,你为什么一定要学Linux?
云计算早已不是什么稀奇的概念,它的火爆让Linux运维工程师这个职业越来越重要.在当今各类云平台提供的系统中,Linux系统几乎毫无争议的独占鳌头,市场份额进一步扩张. 这也让Linux运维工程师职位 ...
- ASP.NET大闲话:ashx文件有啥用
在VS中右击项目,添加新项,我们找到.ashx文件在新建项模板中叫做“一般处理程序”,那么这个一般处理程序用来干吗的呢? 我们可以这样地简单理解,嗯,不需搞得太复杂,它就类似.aspx文件,用于处理传 ...
- css的基本操作学习--css样式,选择器,hover,文字属性,文本属性,背景
什么是css? 通配符选择器 <head> /* *通配符选择器 匹配任何元素 */ *{ margin: 0; padding: 0; } </head> css样式有三种 ...
- 【Codeforces 446A】DZY Loves Sequences
[链接] 我是链接,点我呀:) [题意] 让你找一段连续的区间 使得这一段区间最多修改一个数字就能变成严格上升的区间. 问你这个区间的最长长度 [题解] dp[0][i]表示以i为结尾的最长严格上升长 ...
- everyday two problems / 3.1
T1.string 题意: 给定由小写字母组成的长度为 n 的字符串 将其所有 n * (n + 1) / 2 个子串按字典序排序 输出第 k 个子串 k > (n * (n + 1) / 2) ...
- LINUX 查看硬件配置命令
系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # ...
- MYSQL 运维
http://www.eimhe.com/thread-142990-1-1.html http://www.eimhe.com/search.php?mod=forum&searchid=6 ...
- jquery easyui datagrid实现数据改动
1.单击选中待改动行 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA= ...