第7章 矩阵
来源:互联网 发布:ubuntu 花屏 编辑:程序博客网 时间:2024/06/04 23:29
● 矩阵主要用来描述两个坐标系统间的关系, 通过定义一种运算而将一个坐标系中的向量转换到另一个坐标系中。
● 注意 : 向量是标量的数组, 矩阵则是向量的数组。
● 矩阵的维度被定义为它包含了多少行和多少列。
● 用黑体大写字母表示矩阵,如:A, 需要引用矩阵的分量时, 采用下标法, 常使用对应的斜体小写字母
● 注意 : 矩阵的下标是从1 开始的, 这和C/C++ 语言中以0 作为数组下标起点有所不同。 矩阵没有 0行0列。 当实际用C 语言数组表达矩阵时, 这种不同将可能会导致表达混乱。(这也是我们代码中不用数组表达矩阵的原因之一)。
方阵
● 行数和列数相同的矩阵称作 方阵, 方阵 的对角线元素就是 方阵对角线上的元素。
● 如果所有非对角线元素都为0 , 那么称为这种矩阵为对角矩阵
● 单位矩阵是一种特殊的对角矩阵, 对角元素都为1, 对角元素以外的其他元素全部为0的n阶方阵
● 注意 : 单位矩阵非常特殊, 因为它是矩阵的乘法单位元。 其基本性质是用任意一个矩阵乘以单位矩阵, 都将得到原来的矩阵。 所以, 在某种意义上, 单位矩阵对矩阵的作用就犹如1对于标量的作用。
● 矩阵的行数和列数可以是任意正整数, 当然也包括1。
● 一个n维向量能被当作1*n矩阵 或 n*1 矩阵, 1*n矩阵称作行向量, n*1 矩阵称作列向量, 行向量横着写, 列向量则竖着写。
● 注意 : 混合使用向量和矩阵时, 必须特别注意向量到底是行向量还是列向量。
● 转置矩阵是指m*n矩阵的行和列交换后得到的n*m矩阵,
● 对于向量来说, 转置将使行向量变成列向量, 使列向量成为行向量。
● 有两条非常简单但很重要的关于矩阵转置的引理:
● 矩阵M 能和标量k想乘,结果是一个和M 维数相同的矩阵, 标量经常写在左边, 不需要写乘号。 就是用k 乘以矩阵M中的每个元素。
矩阵乘法
● 一个r*n 矩阵A 能够乘以一个 n*c 矩阵B, 结果是一个 r*c矩阵。
● 注意 : 将左边的矩阵与右边的矩阵交换相乘时,计算结果不一致。
● 注意 : 只有当左边矩阵的列数等于右边矩阵的行数时, 两个矩阵才能进行乘法运算。
● 关于矩阵乘法的注意事项:
(1) 任意矩阵M 乘以 方阵S, 不管从哪边相乘, 都将得到原矩阵(指的是任意矩阵)大小相同的矩阵。 当然, 前提是假定乘法有意义。 如果S 是单位矩阵, 结果将时原矩阵M, 即 MI=IM=M(这就是I 被称为单位矩阵的缘故)
(2) 矩阵乘法不满足交换律, 即AB 不等于 BA
(3) 矩阵乘法满足结合律, 即 : (AB)C=A(BC). (假设A B C 的维数使其乘法有意义, 要注意 如果 (AB)C 有意义, 那么A(BC一定也有意义。) 矩阵乘法结合律可以扩展到多个矩阵的情况下。
(4) 矩阵乘法也满足与标量或向量的结合律,
(5) 矩阵积的转置相当于先转置矩阵 , 然后以相反的顺序相乘,
向量与矩阵的乘法
● 在这里, 行向量和列向量的区别非常重要
● 注意 : 行向量左乘矩阵时, 结果是行向量, 列向量左乘矩阵时, 结果是列向量,
不能用行向量右乘矩阵, 列向量左乘矩阵。
● 关于矩阵和向量相乘的注意事项:
(1) 结果向量 中的 每个元素都是原向量与矩阵中单独行或列的点积
(2) 矩阵中的每个元素决定了输入向量中特定元素在输出向量中占的比重,
(3) 矩阵—— 向量乘法满足对向量加法的分配律。 对于向量v 、w 和矩阵M, 由:
(v+w)M = vM + wM
行向量与列向量
● 行向量和列向量与矩阵的各分量的值完全不同的。
● 当讨论怎样用矩阵乘法实现坐标系转换时, 向量左乘矩阵的形式更加方便。 采用这种方法, 转读起来就像句子一样易于理解 , 当转换多于一次时这尤为重要。
● 当使用别人的公式或源代码时, 切记要检查使用的是行向量还是列向量。 如果某书是使用列向量, 那么用它的公式和本书的公式对比时, 首先进行转换。
另外, 使用列向量时, 应该用向量右乘矩阵, 和本书中使用的向量左乘矩阵相反。
向量和矩阵混合相乘时, 这两种形式的乘法次序相反。
主要概念
● 方阵的行能被解释为坐标系的基向量
● 为了将向量从原坐标系变换到新坐标系, 用它乘以一个矩阵
● 从原坐标系到这些基向量定义的新坐标系的变换是一种线性变换, 线性变换保持直线和平行线, 但 角度、长度、面积、或体积可能会改变。
● 零向量乘以任何矩阵仍然得到零向量,因此, 方阵所代表的线性变换的原点和原坐标系的原点一致, 变换不包含原点,
● 可以通过想象变换后的坐标系的基向量来想象矩阵,。 这些基向量在2D 中构成 “L”型, 在3D 中构成“三角架”型。 用一个盒子及辅助物更有助于理解。
- 第7章 矩阵
- 第28章 矩阵运算
- 《编程珠玑》(第2版)第2章”:课后习题7(矩阵转置)
- 第8章 矩阵特征值问题计算
- 第8章 矩阵和线性变换
- 第9章 矩阵的更多知识
- 第3章第1节练习题1 蛇形矩阵
- 3D数学基础:图形与游戏开发(第7章矩阵)笔记
- 《设计模式解析》 第16章 分析矩阵 复习题
- 第3章 动态规划 矩阵连乘问题
- 《算法导论》笔记 第15章 15.2 矩阵链乘法
- 第3章 动态规划 矩阵连乘问题
- 算法导论第15章 动态规划-矩阵链乘法
- 动态规划之矩阵链乘法(第15章)
- 数据结构笔记整理第4章:字符串和矩阵
- 算法导论 第15章 动态规划:矩阵链乘法
- 第3章第1节练习题2 回形矩阵
- 第5题:矩阵翻转
- 使用pdf.js不依赖任何activeX控件
- Qt 实现的一个生产者消费者模式类
- Fresco、Glide与Picasso的区别
- linux 下获取当前网络连接状态
- nodejs入门(03)-回调函数
- 第7章 矩阵
- 机器学习10大算法优缺点
- “fatal error LNK1561: 必须定义入口点”解决方法
- Codeforces Round #218 (Div. 2) E. Subway Innovation(思维 前缀和)
- React Native unable to load script from assets index.android.bundle on windows
- smartctl
- 初学数据库
- Python3随机数与随机字符串详解
- leetcode[Power of Four]