文章例子来源于极客时间:重学线性代数_数学_线性代数_线代_人工智能_机器学习_-极客时间
三维空间变换
三维空间中的 4种 关键变换: 平移 放缩 旋转 投影
1. 平移
将三维空间中的点平移了(x0,y0,z0),利用矩阵 4*4 矩阵 T 经行平移变换(为何变化矩阵是 4*4 ?)
2. 缩放
同样在各个轴上定缩放倍数
3. 旋转
围绕 x 轴旋转
围绕 y 轴旋转
围绕 z 轴旋转
围绕(x0,y0)非原点进行旋转步骤:先平移到原点,旋转,再平移回去
4. 投影
投影步骤:先平移到原点,沿某一方向投影,再平移回去
线性代数在图论上的应用
某厂生产一种弹子锁具,每个锁具的钥匙有 5 个槽,每个槽的高度从 {1,2,3,4,5,6} 中任取一数。由于工艺及其他原因,制造锁具时对 5 个槽的高度还有两个限制。至少有 3 个不同的数;相邻两槽的高度之差不能为 5。满足以上条件制造出来的所有互不相同的锁具称为一批。销售部门在一批锁具中随意地取每 60 个装成一箱出售。问:每一批锁具有多少个,装多少箱?
首先,我们构造一个 6 节点的图:把 1、2、3、4、5、6 这 6 个数作为 6 个节点,如果两个数字可以相邻,那这两个节点之间就加一条边,每个节点有自己到自己的一条边。于是,我们得到了锁具各槽之间的关系图:
接着,构建邻接矩阵 A,根据前面说的,如果两点之间有一条边,那在矩阵中,相应位置的值就是 1,比如:节点 1 和 2 之间有一条边,那矩阵第一行第二列和第二行第一列的值就是 1,节点 1 和 6 之间没有边,那矩阵第一行第六列和第六行第一列的值就是 0,因为每个节点有自己到自己的一条边,所以第一行第一列的值就是 1,其它 5 个节点也是一样的。
因为我们从没有 1、6 相邻的关系图得到了邻接矩阵 A,所以 A 中所有元素之和表示两个槽高无 1、6 相邻的锁具个数。而每个无 1、6 相邻的 5 位数与关系图中长度是 1 的一条链一一对应。于是,A^k 中各元素之和就是长度为 k 的链接个数。比如,A^2 中第 i 行第 j 列的元素就是 i 开始经过两条边到达 j 的链接个数。我们这里因为是 5 个元素,也就是要经过 4 条边,所以需要计算 A^4
把 A4 中的元素求和,就能得到相邻高差为 5 的锁具数是 6306。最后,因为题目的限制提到了槽的高度至少有 3 个不同的数,我们还要把 6306 这个数字减去仅有一个、两个槽高的锁具:6306−(6+(C62−1)(25−2))=5880。所以,我们得到一批锁具的个数是 5880,总共装 5880/60=98 箱。
线性代数在计算机中的计算
计算机中常用计算线性代数的迭代方法:
(1)雅可比方法: S 取 A 的对角部分
(2)高斯赛德尔方法: S 取 A 的下三角部分,包含对角
(3) 共轭梯度法