☰
数值分析第5版习题全攻略:考点拆解与Matlab实验指南
2026/9/27 2:41:01 网站建设 项目流程

数值分析这门课,可以说是理工科研究生和本科高年级学生里“挂科率”数得上号的一门硬课。当年我自己学的时候,也干过到处搜“数值分析习题解答”这种事儿——倒不是想偷懒,而是课后习题实在太多,一道非线性方程的题可能要算一整页纸,算完还不知道自己对不对。后来做了几年数值计算相关的开发,又陆续帮不少学弟学妹辅导过这门课,才慢慢摸清楚这类“习题解答资源”背后的门道。

这篇东西不打算给你列什么网盘链接,也不想搞什么“关注转发领取”那一套。我想跟你聊聊的是:数值分析第5版这本教材的习题到底在考什么、配套习题解答应该怎么用、有哪些合法又省事的获取渠道,以及最关键的——怎么才能真正把这些题做明白。如果你正在被这门课折磨,或者准备考研复试被问到数值算法手推,这篇文章应该能帮你省下不少瞎折腾的时间。

1. 先别急着找答案:习题解答到底解决的是什么问题

1.1 数值分析的课后题为什么让人这么痛苦

数值分析和其他数学课最大的区别在于:它不追求“精确解”,而是追求“足够好用的近似解”。这就导致课后习题的答案往往不是一个干净的整数或简单表达式,而是一串小数、一个迭代表格、一张插值多项式,甚至是一段程序输出。你算到第三步发现跟参考答案对不上,根本分不清是自己公式记错了、舍入误差没控制好,还是教材印错了。

尤其是李庆扬、王能超、易大义这版《数值分析》第5版,课后习题数量多、覆盖面广,从第一章误差分析到最后一章特征值问题,每章都有十几二十道题。很多题目还特意设计了“陷阱”,比如某个迭代法不收敛、某个求积公式代数精度差一截,目的是让你在计算过程中自己发现方法的局限性。这种题目光看答案没有用,必须动手算、动手编程序,才能理解出题人想让你踩的坑。

1.2 习题解答的正确定位:它是批改工具,不是学习捷径

我见过不少同学,拿到习题解答之后直接开始“背题”,把每个计算步骤背下来,考试的时候照着默写。这方法应付开卷考试或许管用,但闭卷考试或者复试面试环节一追问“为什么要选这个算法”,立刻露馅。

我自己使用习题解答的习惯是这样的:先不看答案,完整做一遍;做不下去的时候,只看答案里的“关键一步”把自己卡住的那个环节,比如看到“这里用了Newton迭代,初值选的是x0=1.5”,然后合上答案继续算;全部做完之后,用解答来批改,重点看自己错在哪个环节、是算法选错还是计算精度问题。这个方法我后面会展开讲,但核心就一句话:解答是拿来“对答案”的,不是拿来“抄答案”的。

1.3 为什么“免费下载第5版习题解答”这个需求长期存在

说白了,出版社官方确实很少单独出版配套习题解答。很多教师资源库里的答案是不对外的,学生能接触到的“习题解答”大多是三种来源:一是网友自己整理的PDF,排版参差不齐,错误不少;二是培训机构或考研辅导机构出的讲义,只覆盖重点章节;三是某些网盘资料合集里混杂的老版本答案,和现行第5版根本对不上号。

这三种来源我都试过,说实话,坑远多于便利。后面我会专门写一节“避坑指南”,帮你判断一份习题解答到底能不能用。

2. 全章节核心考点与常见易错点拆解

2.1 误差分析与数值稳定性:看似送分,实则在挖坑

第一章习题看起来最简单,无非是求绝对误差限、相对误差限、有效数字位数,但错误率常年居高不下。最典型的一个坑就是“避免灾难性抵消”——两个接近相等的数相减,相对误差会被急剧放大。比如计算√10001 - √10000,如果直接造表用近似值相减,有效数字几乎全丢;但通过有理化变形换算成1/(√10001 + √10000),精度就完全不一样了。

做这类练习题时我建议你多问自己一句:这个算法在极端参数下还能稳吗?比如A=10^8,B=A+1,在浮点数体系里B-A的结果是什么?答案是0,因为单精度浮点数根本存不下B和A的差值。习题解答里像这类涉及浮点数表示的题,往往需要结合IEEE754标准去理解,只看纸面推导容易忽略计算机实际存储带来的误差。

2.2 非线性方程求根:迭代法的收敛性判断是核心

这一章几乎必考Newton迭代法、弦截法、二分法和不动点迭代。不少同学背得住公式,却不知道怎么判断迭代是否收敛——更麻烦的是,题目如果问“这个迭代格式为什么发散”,很多人就懵了。

我当年做习题时最深的体会是:不动点迭代的收敛性,关键看迭代函数φ(x)在不动点附近的导数绝对值是否小于1。但教材习题里经常出现一个“坑”,就是给一个看似合理但导数恰好等于1的函数,比如φ(x)=x - f(x),这个格式是发散的。这种题光靠死记“|φ'(x)| < 1”还不够,你得能算出来、能解释清楚。

另一个高频考点是Newton迭代法的收敛阶。二阶收敛看起来比一阶收敛快很多,但前提是单根;如果是重根,Newton法会退化为线性收敛,习题里经常让学生通过修改迭代格式恢复二阶收敛性。我在实际工程计算中遇到过类似情况——求解一个化学反应平衡方程时遇到了重根,直接上Newton法怎么都不收敛,后来用带重数修正的格式才稳定下来。

2.3 线性方程组直接法与迭代法:条件数和收敛半径决定成败

这部分内容是数值分析的重点章节,也是习题量最大的章节之一。

直接法部分,Gauss消去、列主元消去、LU分解、追赶法都是常考形式。最容易出错的地方是LU分解中U矩阵的对角元计算——漏乘、错位很常见。还有追赶法,很多题会专门出一道三对角方程组,考察的是系数矩阵对角占优时追赶法的稳定性。

迭代法部分,Jacobi迭代和Gauss-Seidel迭代的收敛性判断是必考内容。很多同学只记结论“严格对角占优则Jacobi收敛”,但习题里经常出现“Jordan块”型的矩阵,这时谱半径计算就变得复杂了。SOR方法的最佳松弛因子ω的确定也是一道经典题,需要算出迭代矩阵的谱半径并对ω求导。

条件数的概念贯穿这一章,习题里常让学生计算某个矩阵的∞范数或2范数条件数,目的是理解矩阵病态对解的影响。我自己做数值实验时就踩过这样的坑:一个条件数高达10^6的病态矩阵,用普通消去法算出来的解几乎完全失真,改用正则化或预处理之后才恢复正常。这个问题的本质就是:算法再好,也扛不住矩阵本身“不健康”。

2.4 插值法:Lagrange、Newton、Hermite与样条插值

插值这一章的习题通常分两大类:一类是求插值多项式,另一类是估计插值余项。Lagrange插值基础但计算量大,Newton插值则优势在于递推,习题中常要求用差商表来构造多项式。

Hermite插值是不少同学的痛点——它要求函数值和导数值同时被满足,所以插值多项式的次数会翻倍。题目的典型考法是“已知四点函数值和其中两点导数值,求三次Hermite插值多项式并估计余项”。这一章里最容易被忽略的是分段插值和三次样条——分段线性插值虽然简单,但光滑性不足;三次样条则要求在节点处二阶导数连续。习题解答里经常会出现需要解三对角方程组来求样条系数的题目,这和前面讲的追赶法正好联动。

2.5 曲线拟合与最小二乘法

最小二乘拟合的核心难点不在于公式,而在于选择正确的基函数。课堂上讲的线性最小二乘通常是指“关于参数线性”,而不是“关于自变量线性”——也就是说,你完全可以用多项式基函数x^0, x^1, x^2去做拟合,哪怕你拟合的是指数趋势的数据。

习题最常见的陷阱是:给一组明显非线性分布的数据,让学生用二次多项式拟合,结果残差很大。解答里往往会讨论换成对数变换或者选其他基函数是否有更好效果。另一个高频题是“正交多项式拟合”——利用Legendre多项式或Chebyshev多项式做拟合,这种方式的好处是法方程系数矩阵是稀疏的,数值稳定性好。这部分在Matlab实验里尤其好体现,后面我会给一个简单的代码示例。

2.6 数值积分与数值微分

梯形公式、Simpson公式、Romberg算法、Gauss求积公式,是数值积分这一章的绝对主干。习题里常见的组合题型是:给定一个积分,分别用不同求积公式计算并比较精度。

最有价值的一道经典题是“证明Simpson公式具有三次代数精度”,这个证明过程会引导你理解代数精度、余项、节点选取之间的内在关系。Gauss求积公式的题目则通常需要求节点和权系数,笨办法是解非线性方程组,聪明办法是利用正交多项式来构造。

数值微分容易被忽视,但这几年考题经常出“用中心差商计算一阶导数并估计误差”。实际使用中,步长h的选择是个大坑——h太大则截断误差大,h太小则舍入误差大。习题解答中如果只给一个固定h,一般不严谨;优秀的解答会讨论如何选择最优步长。

2.7 常微分方程数值解:Euler法、RK族方法和稳定性

ODE数值解是数值分析课程的重头戏之一。Euler法是最基础的起步方法,但它的精度只有一阶。经典四阶Runge-Kutta法是要求重点掌握的,习题里会让你算几步迭代过程。真正拉开差距的往往是“稳定性分析”——用显式方法解刚性方程时,步长必须足够小,否则数值解会完全震荡甚至发散。

A-稳定性这个概念,很多初学者理解不了。我后来用一个比较直观的方式理解了它:如果方程本身是稳定的,那么数值方法也应该保持稳定;如果精确解趋于0而数值解在放大,这个方法就是不适用的。习题解答中会通过画稳定域来分析,Matlab实验课上也经常要求画出Euler法和RK4的稳定域。

2.8 矩阵特征值问题

这一章对很多同学来说是最“抽象”的。乘幂法求最大特征值,反幂法求最小特征值和对应的特征向量,QR算法求全部特征值。习题中常见的是用乘幂法迭代几步,观察序列收敛情况。

这类题目计算量大,但本质套路固定:归一化、迭代、再归一化。只要每一步都仔细做,基本能拿到步骤分。但反幂法的“位移”技巧很多人会忽略——通过减去一个近似特征值的位移,可以让目标特征值变成模最小,然后加速迭代收敛。

3. 用Matlab把习题做出来:典型实验的完整思路

3.1 为什么数值分析一定要配合Matlab实验

“数值分析及其Matlab实验”这个关键词最近在检索里热度不低。很多学校都设置了配套实验课,要求学生用Matlab实现教材里的核心算法。这其实是一种特别好的学习方式——手算只能算两三步,算法全貌根本看不清楚;写程序跑一遍,马上就知道在哪个环节出问题。

比如Newton迭代法,手算三步可能还看不出收敛趋势,但写个循环跑到10步,打印出每一轮的x和f(x),立刻就能感受到二阶收敛“唰唰唰”变密的魅力。再比如,用Gauss-Seidel迭代求解方程组,如果矩阵不是严格对角占优,你可能算了30步才发现根本不收敛——这类经验只有通过实验才能获得。

3.2 实验一:非线性方程求根的Newton法实现

先给一个最简单的Matlab脚本,解决教材第一章到第二章最经典的问题:求解f(x)=x^3 - 2x - 5 = 0的正根。

f = @(x) x^3 - 2*x - 5; df = @(x) 3*x^2 - 2; x0 = 2.0; % 初值 tol = 1e-10; max_iter = 50; x = x0; fprintf('迭代步 x_n |f(x_n)|\\n'); for k = 1:max_iter fx = f(x); if abs(fx) < tol fprintf('收敛于 x = %.12f\\n', x); break; end x = x - fx / df(x); fprintf('%3d %.12f %.2e\\n', k, x, abs(f(x))); end

运行这段代码,你会看到前几步的误差快速缩小,从10^-1一路到10^-10附近——这就是二阶收敛的特征。如果换一个初值比如x0 = 0,你可能会看到迭代发散,这时候你再回头对照习题解答里“初值选取”那一节,就会有完全不同的理解。我自己当年做这个实验时,最大的收获就是明白了一个道理:Newton法不是银弹,初值选择是决定成败的关键。

3.3 实验二:Gauss-Seidel迭代与SOR的收敛对比

线性方程组迭代法的实验,适合拿一个经典的教科书矩阵来做,比如三对角矩阵。可以先生成一个50×50的严格对角占优矩阵,分别用Jacobi、Gauss-Seidel和SOR迭代求解,对比迭代步数。

n = 50; A = diag(4*ones(n,1)) + diag(-1*ones(n-1,1),1) + diag(-1*ones(n-1,1),-1); b = ones(n,1); % 简单实现Gauss-Seidel迭代 x = zeros(n,1); D = diag(diag(A)); L = tril(A,-1); U = triu(A,1); tol = 1e-8; max_iter = 10000; for k = 1:max_iter x_new = (D + L) \\ (-U*x + b); if norm(x_new - x, inf) < tol fprintf('Gauss-Seidel收敛于第%d步\\n', k); break; end x = x_new; end

你可以在循环外面加一个SOR的松弛因子omega变量,试一下omega等于0.8、1.0、1.2、1.5时的表现。大多数情况下会看到omega = 1(即Gauss-Seidel)虽然比Jacobi快,但最优松弛因子能在更少的迭代步数里收敛。这类实验做完,再看习题解答中关于SOR最优ω的计算,就完全能对上了。

3.4 实验三:数值积分收敛阶的验证

数值积分实验的核心目的是验证梯形公式是O(h^2)精度、Simpson公式是O(h^4)精度。你可以对同一个积分用不同等分数n去算,观察误差变化:

f = @(x) exp(x); % 在[0,1]上积分,精确值exp(1)-1 a = 0; b = 1; exact = exp(1) - 1; fprintf(' n 梯形误差 Simpson误差\\n'); for n = [4 8 16 32 64] x = linspace(a,b,n+1); h = (b-a)/n; trap = h * (sum(f(x)) - 0.5*(f(a)+f(b))); s = 0; for i = 1:n s = s + h/6 * (f(x(i)) + 4*f((x(i)+x(i+1))/2) + f(x(i+1))); end fprintf('%3d %.2e %.2e\\n', n, abs(trap-exact), abs(s-exact)); end

跑完之后把两列误差打印出来,你会看到梯形误差每加密一倍网格下降4倍左右,Simpson误差下降16倍左右。这就是为什么习题里会反复出现“等分数n取多少才能达到精度要求”这类题目——因为不同方法的收敛速度差异巨大。做完这个实验,你再看解答里的Romberg外推思想,会觉得豁然开朗。

4. 常见问题与排查技巧实录

4.1 版本的匹配问题:第5版和第4版差在哪

很多人下载习题解答时,压根没注意版本,结果对不上号。这里给你一个判断方法:翻开教材,对比第一章的课后题数量和第几道题的内容。我记得第5版相比第4版在部分章节做了增删,尤其线性方程组迭代法和插值这两章,题目顺序有调整。如果你拿到的解答里题目编号对不上,对应的题目内容也不完全一致,那基本可以断定这份解答不是配套第5版的,别硬用。

4.2 解答里的错误率比你想象的高

网上流传的习题解答,尤其是网友手打的PDF,错误率通常在每十题一两个这种量级。这在数值计算类习题里特别危险——因为结果差一个数量级或符号错了,你可能完全看不出来。我的建议是:对每一道关键习题,至少用Matlab或Python验证一遍数值结果。很多习题的最终答案都是一个数值,你写个几行的代码就能复算。如果你复算的结果和解答不一致,先怀疑解答,再怀疑自己的代码——两者都检查完了,才敢确定到底谁对。

4.3 那些“伪免费”的下载陷阱

网上搜“免费下载”关键词,跳出来的链接里混着大量“网盘分享”“付费社群”“关注公众号回复密码”之类的操作。这里我给你两个实用判断标准:第一,正规的配套教师资源一般是出版社官网或教师在课程平台上发布的,不需要你转发拉人头;第二,真正想分享资料的人通常会把文档以PDF直接挂出来,而不是让你私下添加微信。如果你花了不少时间在“注册-留言-等回复”上,大概率是在浪费生命。

4.4 高数基础对数值分析学习的影响

数值分析和高等数学、线性代数关系特别密切。泰勒展开的余项、中值定理、函数连续性这些是理解截断误差的基础;线性代数里的向量范数、矩阵范数、特征值分解则是迭代法收敛性分析的工具。如果你发现自己对某些习题的推导看不懂,先回去翻高数和线代的教材,不要硬啃。我自己给学弟学妹答疑时最常说的话就是:“这个问题不是数值分析的问题,是泰勒展开没学明白。”

4.5 习题做不完怎么办:优先级排序建议

如果复习时间紧张,我建议按以下优先级刷题:线性方程组迭代法的收敛性判断和计算、Newton法和弦截法、插值多项式和余项估计、Simpson公式和Romberg算法、Euler法和RK4。这些是考研复试和期末考试的高频考点。至于QR算法、广义特征值这类偏冷门的内容,至少要会默写算法步骤,能算简单例题就够了。

5. 关于“免费”资源渠道的诚实建议

5.1 出版社官方渠道与教师公开资源

最靠谱的获取方式其实是:找你授课老师或助教要。很多学校在课程网站上会公开历年习题的部分答案,或者老师会在课件里给出典型例题的完整解答步骤。这些内容虽然不全,但针对性极强,因为是老师亲手整理/校对的,错误率远低于网上流传的版本。

5.2 图书馆的电子教参和外文经典参考书

如果你需要的是更严谨的习题解析,我的建议是去图书馆数据库里找外文原版教材的solution manual。比如《Numerical Analysis》相关经典教材的教师手册,在一些高校图书馆的数字资源平台里是可以合法访问的。这类资源虽然不能等同于李庆扬第5版的配套解答,但思路和方法完全通用,很多题目的本质是一样的。

5.3 关于网盘资料集的“可用性”判断

如果你确实要通过非官方渠道找资料,我建议你设立一个筛选标准:优先选择带“目录页码”、带“章节目录”、文件体积在10MB以内的PDF。体积太大往往是打包了无关内容,体积太小可能是扫描版或者缺页。打开之后先翻到目录,看章节是否齐全、题目数量是否与教材匹配、有无明显的整页空白或乱码。

6. 实际操作中我自己的习惯与扩展建议

6.1 把习题做成“错题本”而不是做题

我跟很多人推荐过一个笨办法:每道错题不仅记正确答案,还要记下“我错在哪”。比如某个题我用了Jacobi迭代,但矩阵不是严格对角占优导致发散,我就记“以后看到非对角占优矩阵,先试Gauss-Seidel或者SOR,别直接上Jacobi”。这样一本错题本,价值远超习题解答本身,因为它记录的是你自己的思考轨迹。

6.2 “做完题再看解答”这个流程值得严格执行

最后再分享一个具体的操作经验:准备一份习题解答的同时,准备一个“封印”工具——比如把解答PDF放在另一个文件夹里,做题的这一个小时坚决不打开。等做完一整章或者至少做完5道题之后,再统一打开批改。这样做的原因是:数值分析这类题的思维连贯性特别重要——如果你每做一道题就看一眼答案,你的思路会被切割成碎片,学到的只是孤立的知识点,而不是完整的算法逻辑。我亲测下来,“整章做完再开答案”的学习效果,远好于“边做边对答案”。如果你能坚持这样刷完5章,考前那种“什么都学过但什么都不确定”的焦虑感,基本可以消除一半。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询