ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

第 17 章 · 矩阵运算

第 17 章 · 矩阵运算 学会矩阵的四则运算。其中矩阵乘法是最重要也最容易搞混的本章重点讲透。17.1 矩阵加减对应元素相加减两个尺寸相同的矩阵对应位置的元素相加减[ 1 2 ] [ 5 6 ] [ 15 26 ] [ 6 8 ] [ 3 4 ] [ 7 8 ] [ 37 48 ] [ 10 12 ]规则同行同列的元素相加。减法同理。17.2 数乘每个元素都乘一个数一个标量乘矩阵等于矩阵每个元素都乘这个标量[ 1 2 ] [ 2 4 ] 2 × [ 3 4 ] [ 6 8 ]17.3 转置行列互换转置transpose把矩阵沿对角线翻转行变列、列变行。[ 1 2 3 ] [ 1 4 ] A [ 4 5 6 ] Aᵀ [ 2 5 ] [ 3 6 ]第 i 行变成第 i 列。A 的转置记作 Aᵀ或A.transpose()。对称矩阵就是转置等于自己的矩阵Aᵀ A。17.4 点积内积两个向量的相似度两个同维向量的点积dot product对应分量相乘再求和。(1, 2, 3) · (4, 5, 6) 1×4 2×5 3×6 4 10 18 32点积的意义点积 0两个向量垂直正交点积 两向量长度乘积则同向点积 0方向大致相反点积是衡量两个向量有多像的工具在机器学习、物理里无处不在。17.5 矩阵乘法重点这是最重要的运算规则需要记牢。规则两个矩阵 Am×n和 Bn×p相乘得到 Cm×pA 的列数必须等于 B 的行数都是 n结果 C 的第 i 行第 j 列 A 的第 i 行与B 的第 j 列的点积例子A [ 1 2 ] B [ 5 6 ] [ 3 4 ] [ 7 8 ]A 是 2×2B 是 2×2结果 C 是 2×2。算 C(0,0)A 第 1 行 (1,2) · B 第 1 列 (5,7) 1×5 2×7 19算 C(0,1)A 第 1 行 (1,2) · B 第 2 列 (6,8) 1×6 2×8 22算 C(1,0)A 第 2 行 (3,4) · B 第 1 列 (5,7) 3×5 4×7 43算 C(1,1)A 第 2 行 (3,4) · B 第 2 列 (6,8) 3×6 4×8 50C [ 19 22 ] [ 43 50 ]矩阵 × 向量向量是只有一列的矩阵所以矩阵乘向量是矩阵乘法的特殊情况[ 1 2 ] [ 1 ] [ 1×1 2×1 ] [ 3 ] [ 3 4 ] × [ 1 ] [ 3×1 4×1 ] [ 7 ]矩阵乘向量 对向量做一次变换第 21 章会展开这是理解几何的关键。关键性质不满足交换律矩阵乘法不满足交换律A×B ≠ B×A大多数情况下。而且顺序影响尺寸2×3 乘 3×4 可以得 2×4但 3×4 乘 2×3 不行列数不等于行数。记忆矩阵乘法左矩阵的列 右矩阵的行才能乘结果尺寸 “左行 × 右列”。17.6 在 Eigen 里做矩阵运算#includeEigen/Dense#includeiostreamintmain(){Eigen::Matrix2d A,B;A1,2,3,4;B5,6,7,8;std::coutA B \nAB\n\n;// 对应相加std::cout2 * A \n2*A\n\n;// 数乘std::coutA * B \nA*B\n\n;// 矩阵乘法std::coutA^T \nA.transpose()\n\n;// 转置Eigen::Vector3du(1,2,3),v(4,5,6);std::cout点积 u.dot(v)\n;// 32return0;}存成ch17.cpp按附录 C.3 编译运行实际输出A B 6 8 10 12 2 * A 2 4 6 8 A * B 19 22 43 50 A^T 1 3 2 4 点积 32A * B得到19 22 / 43 50正好等于你上面手算的结果——矩阵乘法的算法和代码是一一对应的。你可以顺手加一句std::cout B * A \n;看到B * A是23 34 / 31 46和A * B不同交换律不成立这件事就亲眼确认了。注意 Eigen 的*A * B是矩阵乘法不是逐元素乘。想逐元素相乘要用.array()第 27 章。这是新手最容易搞错的地方。17.7 小结加减对应元素相加减尺寸要相同。数乘每个元素乘标量。转置行列互换。点积对应分量相乘求和。矩阵乘法左矩阵列数 右矩阵行数结果(i,j) 左 i 行点乘右 j 列不满足交换律。下一章用矩阵表示和解线性方程组——矩阵最重要的应用。练习题计算两个 2×2 矩阵的加减。手算矩阵乘法A[1 2; 3 4]B[5 6; 7 8]求 A×B 和 B×A验证交换律不成立。计算向量 (1,2,3) 和 (4,5,6) 的点积。求矩阵 [1 2 3; 4 5 6] 的转置。判断2×3 矩阵能和 3×2 矩阵相乘吗结果是多少尺寸
返回列表