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}\)

黑色大写字母表示矩阵,如:MAR。需要引用矩阵的分量时,采用下标法,常用对应的斜体小写字母。如下\(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. hdu 4876

    ZCC loves cards Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  2. php第十九节课

    JQUERY <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  3. 数据结构与算法(6) -- heap

    binary heap就是一种complete binary tree(完全二叉树).也就是说,整棵binary tree除了最底层的叶节点之外,都是满的.而最底层的叶节点由左至右又不得有空隙. 以上 ...

  4. DP背包问题小总结

    DP的背包问题可谓是最基础的DP了,分为01背包,完全背包,多重背包 01背包 装与不装是一个问题 01背包基本模型,背包的总体积为v,总共有n件物体,每件物品的体积为v[i],价值为w[i],每件物 ...

  5. 六、Scrapy中Download Middleware的用法

    本文转载自: https://scrapy-chs.readthedocs.io/zh_CN/latest/topics/downloader-middleware.html https://doc. ...

  6. Mybatis操作Mysql批量更新的一个坑-&allowMultiQueries=true允许批量更新

    前言            利用Mybatis批量更新或者批量插入,实际上即使Mybatis完美支持你的sql,你也得看看你操作的数据库是否完全支持,而同事,最近就遇到这样的一个坑! 问题 先带大家来 ...

  7. vue项目中的常见问题(vue-cli版本3.0.0)

    一.样式问题 1.vue中使用less 安装less依赖 npm install less less-loader --save-dev 在使用时 在style标签中加入 lang="les ...

  8. 转:Windows Phone 7 设计简介

    英文原文:smashingmagazine 导读:Windows Phone 7 引进了一个全新的内容管理和用户界面,命名为Metro的设计语言和理论.微软这次所看准的市场和用户群也与之前的老一代 W ...

  9. 第七节:pandas排序

    pandas具有两种排序方式:sort_index()和sort_values().

  10. Thinkphp5跨域问题

    关于代码分离可能会遇到json传输接收不到的问题(可能00) 起初我百度到解决此问题可以用jsonp来发送并接受,可是这只是一时之计 以后也会不方便所以我发现了一下方法 在app顶层创建文件commo ...