第三章 非线性与优化的战场


第三章 非线性与优化的战场

章节摘要:本章跟着一条主线走——同一个非线性方程,初值差一点点,牛顿法一次六步收敛、一次原地爆炸。围绕这条主线,我们排查非线性求根的三大事故源(初值、导数、收敛域),再过渡到优化战场,看梯度下降为何在山谷里锯齿慢爬、拟牛顿与信赖域如何治这些病。

一条主线

考察方程 x^3 - 2x - 5 = 0(牛顿本人的原始例题,真根约 2.0946)。从 x0 = 2 出发,牛顿法五六步收敛到全精度;把初值挪到 x0 = 0 附近或更远,迭代可能冲出有效区域、在两个山头之间来回震荡、或者干脆发散到无穷。同一种算法,命运完全由初值写定——这就是非线性世界的第一定律:没有全局保证,只有局部契约。

主线由此展开:3.1 解剖牛顿法的局部收敛机制,搞清"二次收敛"这张支票的兑现条件;3.2 把牛顿法摔在各种现场(导数为零、多根、震荡)做事故分析,引出阻尼、混合策略、信赖域这些"安全带";3.3 切换到优化视角——求根的表兄弟,看梯度下降的锯齿病与拟牛顿法的手术方案。

沿途站点

  • 3.1 牛顿法与不动点迭代:核心机理与证词。切线近似的几何直觉、二次收敛的推导、不动点迭代的收敛条件(导数绝对值小于 1)、割线法与 Broyden 法如何省掉导数。
  • 3.2 收敛失败现场与全局策略:事故图谱。四种典型翻车模式的复现与诊断,SciPy 的混合求解器如何内置保险丝。
  • 3.3 梯度下降的锯齿病理:优化专场。病态二次函数上的锯齿震荡、学习率与条件数的纠缠、BFGS 与共轭梯度在优化语境下的复活。

拐点与结论

本章的认知转折是从"算法收敛性"的教科书叙述切换到"收敛域"的工程视角:快速算法只在你付不起的地方快。牛顿法在半径 r 的收敛球内二步收敛,球外却可能灾难性发散;全局策略牺牲少量速度换取"一定能到"的合同。成熟的数值软件(SciPy 的 root、minimize)内部全是混合策略——先稳健地逼近,再切换高速档。理解这个设计哲学,比背下任何单个算法都重要。

读完你应该

  • 能手写牛顿法与割线法,实测各自的收敛阶(误差每步平方 vs 1.618 倍)
  • 能诊断一次牛顿法失败属于哪种模式:导数近零、初值出域、循环震荡、多根选择
  • 能解释不动点迭代收敛条件,并把一个发散的迭代格式改写成收敛的等价格式
  • 能在病态二次函数上复现梯度下降锯齿,并说明条件数如何决定收敛速度
  • 能为给定问题在 SciPy 求解器里选对方法名并设置关键参数

本章代码实验的共同骨架值得留意:每个求根或优化案例都保留完整轨迹而不是只打印终点。三个节的实验互相引用同一批函数(谐振子的梯度、Rosenbrock 的谷形),建议在读完 3.3 后回头重跑 3.1 的牛顿实验——用优化的眼光再看一次求根,会有不同的收获。
判据速记:看到迭代序列相邻两步残差几乎不变,查循环或平坦区;看到步长突然增大几个数量级,查导数是否消失;看到优化在山谷里来回横跳,条件数大概率过千。

下一章的接力工具索引同样一句话:求根用 brentq(有区间)或 newton(有导数与安全选项),优化用 minimize 按 BFGS、CG、trust 系列逐级上;参数细节与翻车案例见各节。

非线性求根处理的是"找到零点",下一章处理"沿着时间演化"——微分方程的数值解把迭代推向极致:不是迭代几步,而是迭代几百万步,误差的长期累积成为头号嫌疑人。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U