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数学 ...
随机推荐
- plsql developer连接oracle数据库
1.下载安装PLSQL Developer12 访问PLSQL Developer官网https://www.allroundautomations.com/bodyplsqldevreg.html, ...
- MFC CAD控制权问题
begineditorcommand(); 隐藏对话框 把控制权交给CAD completeeditorcommand(); 完成交互返回到应用程序 canceleditorcommand CAD被 ...
- Java并发——阿里架构师是如何巧用线程池的!
一.创建线程 1.创建普通对象,只是在JVM的堆里分配一块内存而已 2.创建线程,需要调用操作系统内核的API,然后操作系统需要为线程分配一系列资源,成本很高 线程是一个重量级对象,应该避免频繁创建和 ...
- profiler-gpu分析记录
查看 Android 手机芯片信息下面以 夜神模拟器为例 D:\cmderλ adb devices # 1. 列出安卓设备List of devices attached127.0.0.1:6200 ...
- Haproxy 【转载】
一.HAProxy简介 (1)HAProxy 是一款提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. HAProx ...
- 内核调试-ftrace introduction
ftrace https://www.ibm.com/developerworks/cn/linux/l-cn-ftrace1/ https://www.ibm.com/developerworks/ ...
- Entertainment Box Gym100781E(数据结构+贪心)
Entertainment Box 题意: 有n个节目,每个节目给出开始时间(st)和结束时间(en): 有k个内存条这k个内存条可以同时存储节目.如果节目j的开始时间stj 大于等于节目i的结束时 ...
- 初识Scrapy——1—scrapy简单学习,伯乐在线实战、json数据保存
Scrapy——1 目录 什么是Scrapy框架? Scrapy的安装 Scrapy的运行流程 Scrapy的使用 实战:伯乐在线案例(json文件保存) 什么是Scrapy框架? Scrapy是用纯 ...
- cxf 和 httpclient 客户端调用 webservice 接口
一.cxf 生成 webservice 客户端 1.接口路径 http://ws.webxml.com.cn/WebServices/WeatherWS.asmx 2.进入你需要放置 webservi ...
- [国家集训队2012]tree(陈立杰)
[国家集训队2012]tree(陈立杰) 题目 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有need条白色边的生成树.题目保证有解. INPUT 第一行V,E,need分别表示 ...