第 18 章 · 线性方程组

发布时间:2026/10/7 7:49:36
第 18 章 · 线性方程组 矩阵最重要的应用之一就是表示和求解线性方程组。本章讲清楚Ax b到底是什么意思以及如何求解。18.1 什么是线性方程组你肯定见过这种方程2x y 5 x 3y 10两个未知数 x、y两个方程。求 x、y 的值就是解线性方程组。线性指每个方程里未知数都是一次的没有 x²、没有 xy、没有 sin(x)。18.2 用矩阵表示方程组上面的方程组可以写成矩阵形式[ 2 1 ] [ x ] [ 5 ] [ 1 3 ] [ y ] [ 10 ]也就是A · x b A [ 2 1 ] x [ x ] b [ 5 ] [ 1 3 ] [ y ] [ 10 ]A系数矩阵未知数前面的系数x未知数向量b常数向量等号右边的数于是解方程组就变成了已知 A 和 b求 x。验证一下A·x 展开就是[ 2 1 ] [ x ] [ 2x y ] [ 1 3 ] [ y ] [ x 3y ]等于 b正好就是原来的两个方程所以Ax b 就是线性方程组的矩阵写法。18.3 解方程组的方法方法一代入消元中学方法2x y 5 ... ① x 3y 10 ... ②从 ① 得 y 5 - 2x代入 ②x 3(5 - 2x) 10 x 15 - 6x 10 -5x -5 x 1代回 y 5 - 2×1 3。所以 x1y3。方法二高斯消元计算机用计算机用的是高斯消元通过行变换把矩阵变成阶梯形再回代求解。核心操作某一行乘一个数两行交换某一行加到另一行这些操作不改变方程组的解但能把矩阵化简成容易求解的形式。你不需要手算高斯消元Eigen 会帮你做。但理解解方程组 消元这个思想很重要因为 Eigen 的solve()内部就是在做这类分解。18.4 解的存在性方程组可能有三种情况情况例子说明唯一解两条不平行的直线交于一点无解两条平行直线永远不相交无穷多解两条重合直线处处相交几何上看两个未知数两个方程 两条直线解就是它们的交点。相交 → 唯一解平行 → 无解重合 → 无穷多解对应到矩阵A 是否可逆第 19 章决定了是否有唯一解。18.5 用 Eigen 解方程组#includeEigen/Dense#includeiostreamintmain(){Eigen::Matrix2d A;A2,1,1,3;Eigen::Vector2db(5,10);// 求解 Ax bEigen::Vector2d xA.colPivHouseholderQr().solve(b);std::coutx x.transpose()std::endl;// 1 3// 验证std::coutA*x (A*x).transpose()std::endl;// 5 10return0;}A.分解方法().solve(b)就是 Eigen 解方程组的标准写法第 29 章详解各分解方法的选择。18.6 实际应用线性方程组是科学计算的核心电路分析基尔霍夫定律列出的方程结构力学受力平衡方程经济模型投入产出方程最小二乘拟合拟合数据第 36 章项目会用到很多实际问题最终都归结为解一个 Ax b。18.7 小结线性方程组 Ax bA 系数、x 未知、b 常数。几何意义两条或多条直线的交点。解有唯一解、无解、无穷多解三种情况。Eigen 用A.分解().solve(b)求解。下一章学习行列式与逆矩阵理解可逆和唯一解的关系。练习题把方程组3x y 9; x 2y 8写成 Ax b 的矩阵形式。用代入消元手算上面方程组的解。用 Eigen 求解上面方程组并验证结果。几何解释为什么两个未知数两个方程对应两条直线说说线性方程组无解、唯一解、无穷多解分别对应直线的什么位置关系。