
线性代数
向量
- 本质: 具有大小和方向的量
- 单位向量: 向量除以向量的模,仅代表方向,长度为1
- 向量加法: a + b = b + a,(x1, y1) + (x2, y2) = (x1 + x2, y1 + y2)
- 向量的模: ||a|| = Math.sqrt(Math.pow(x1, 2) + Math.pow(y1, 2))
- 向量的点乘: a · b = ||a|| * ||b|| * cos(θ) = x1x2 + y1y2
- 向量点乘的性质:
- 交换律:a · b = b · a
- 分配率:a · (b+c) = a · b + a · c
- 结合律:(ka) · b = k * (a · b) = a · (kb),k为实数
- 向量点乘的应用
- 计算两个向量的夹角
- 计算b在a上的投影向量,计算方式: ||b|| * cos(θ) * (a的单位向量),如果a为单位向量,则 (b · a) * a 即为b在a上的投影向量
- 计算垂直于a的向量,计算方式: b - b在a上的投影向量
- 计算两个向量是否同方向
- 计算两个向量有多接近
- 向量的叉乘:得到的是一个新的向量,该向量与向量a,b都垂直,||a x b|| = ||a|| * ||b|| * sin(θ),a x b = (ya * zb - yb * za, xa * zb - xb * za, xa * yb - xb * ya)
- 向量叉乘的性质
- 右手坐标系:遵循右手螺旋定则,从向量a往向量b弯曲手掌,大拇指方向即为新向量的方向
- a x b = - b x a
- a x a = 0向量
- 分配率与结合律也满足
- 向量叉乘的应用
- 判断向量b在a的左侧或者右侧,如果 a x b 的 z > 0 则b在a的左侧,反之,则在右侧
- 判断p点是否在三角形内部,逆时针取三角形各边的向量a,分别与对应三角形顶点到P的向量c叉乘,如果c都在a的左侧,则P点在三角形内部
矩阵
- 本质: 一个m行n列的数集
- 矩阵的数乘: 矩阵的每个元素都乘以一个数
- 矩阵与矩阵相乘: 矩阵A的i行的每个元素与矩阵B的j列的每个元素相乘之后再相加,为结果矩阵对应i,j的元素
- 矩阵与矩阵相乘的前提条件: (m * n) * (n * p) = (m * p),中间相等取两边,最终结果为m行p列的矩阵
- 矩阵与矩阵相乘的性质
- 不满足交换律,即 A * B !== B * A
- 结合律: (A * B) * C = A * (B * C)
- 分配率: (A + B) * C = A * C + B * C,A * (B + C) = A * C + B * C
- 矩阵与向量相乘: 最终得到的还是一个向量,本质为对原向量进行一次矩阵变换
- 矩阵与向量相乘的前提条件: 列向量如果是m维度,则矩阵为m列
- 矩阵的转置: 将 m * n的矩阵变成 n * m 的,原来位于第一行的元素,现在位于第一列
- 矩阵的转置的性质
- (A * B)转置 = B转置 * A转置
- 单位矩阵: 主对角线全为1,其他地方全为0的矩阵
- 逆矩阵: 矩阵与逆矩阵相乘,结果是单位矩阵,A * A逆 = A逆 * A = 单位矩阵I
- 逆矩阵的性质
- (A * B)逆 = B逆 * A逆