第 04 册 数值最优化 · 本册导读
1. 本册定位
1.1 底本
底本是 Jorge Nocedal 与 Stephen J. Wright《Numerical Optimization》,Springer Series in Operations Research,第 1 版(1999,ISBN 0-387-98793-2),PDF 共 651 页。PDF 文件名标的是第 2 版所在丛书,精读笔记 nocedal_02.md、nocedal_03.md 的元信息也写成"2nd ed.",但正文、目录和 ISBN 都是第 1 版。本册的章号、定理号、公式号、算法号一律按第 1 版。
本册按原书章号建文件,共 18 章加附录 A;原书第 16 章(二次规划)篇幅最长,拆成第 16a 章和第 16b 章。只有第 2 版的读者可这样对照:第 1 版第 6 章的 Hessian 修正在第 2 版第 3 章,非精确牛顿在第 2 版第 7 章;第 1 版第 7、8、9 章分别对应第 2 版第 8、6、7 章;第 1 版第 17 章的对数障碍法在第 2 版扩展为第 19 章。第 2 版新增的无导数优化(第 9 章)本册不涉及。
页码换算。各章"原书对照"里的页码都是 PDF 页码。PDF 删掉了若干章首前的空白页,所以 PDF 页码与原书页码之差不是常数。本册编辑时用 PDF 页眉逐段核对,结果是:第 1–2 章(PDF p.21–53)原书页码 = PDF 页码 − 21;第 3–11 章(PDF p.54–332)减 20;第 12–16 章(PDF p.333–505)减 19;第 17 章至附录 A(PDF p.506 起)减 18。任务说明中的"减 20 或减 21"只对前 11 章成立,各章换算说明已按此统一改正。
1.2 在量化交易中的作用
量化研究里大部分"求出一个数"的步骤,底层都是优化问题:
- 组合构建:均值–方差(QP,第 12、16a、16b 章),最小 CVaR 与 \(\ell_1\) 指数跟踪(LP,第 13、14 章),风险预算与风险平价(第 06、11、17 章),波动率目标与风险贡献上限(SQP,第 18 章),行业与因子中性(第 15 章)。
- 参数估计与校准:学生 \(t\) 分布最大似然(第 03 章),GARCH 最大似然与标准误(第 08 章),Nelson–Siegel 曲线拟合与 Levenberg–Marquardt(第 10 章),Merton 模型反解资产价值(第 11 章)。
- 敏感度:Greeks 的差分步长、公共随机数与 AAD(第 07 章);约束乘子即影子价格(第 12、13、16b 章)。
- 大规模与数值稳定:因子协方差 \(\Sigma=BFB^T+D\) 的矩阵无关运算(第 05、09 章、附录 A),相关矩阵修复(第 06 章),正规方程的条件数平方(第 10 章),罚函数病态(第 17 章)。
学完本册应能做到三件事:把实际问题写成优化模型并判断凸性;知道 scipy.optimize 每个 method 背后的算法,会选求解器、会读输出和报错;能写出 KKT 条件,把乘子解释成可用于决策的影子价格。
1.3 与其他各册的关系
- 第 01 册:Cholesky、QR、SVD、惯性贯穿本册,对应第 01 册第 07a、02a、02b、04b 章;本册附录 A 只做速查。
- 第 03 册:第 09 章(参数推断)的 Fisher 信息与标准误,是本册第 08 章"BFGS 末步矩阵不能当协方差矩阵"的统计背景;第 13a 章对应本册第 10 章的线性最小二乘。
- 第 05、06 册:GLS/GMM(第 05 册第 19b 章)、岭回归(第 19c 章)、GARCH(第 05 册第 17c 章、第 06 册第 03a 章)、因子模型(第 06 册第 09 章)的估计都调用本册算法。
- 第 08 册:希腊字母(第 19a、19b 章)、蒙特卡洛(第 21b 章)对应本册第 07 章;波动率微笑校准(第 20 章)、Merton 模型(第 24 章)对应第 10、11 章。
- 第 10 册:性能优化与反向传播(第 09、11、12 章)是本册第 03、05、07、08 章方法的特例,反向传播就是反向模式自动微分。
- 第 11 册:组合构建与优化(第 05 章)直接使用本册第 12–18 章的模型与求解器。
2. 前置知识与自测
需要多元微积分(梯度、Hessian、Taylor 展开)、线性代数(正定性、特征分解、Cholesky/QR/SVD、条件数,第 01 册第 00、02a、02b、07a 章足够)、最大似然的基本思想,以及 numpy 和 scipy.optimize.minimize 的基本用法。下面 5 题能在半小时内做出 4 题,就可以直接开始。
- \(\Sigma\) 对称正定,\(f(w)=\frac\gamma2w^T\Sigma w-\mu^Tw\)。求 \(\nabla f\)、\(\nabla^2f\) 和极小点。 要点:\(\nabla f=\gamma\Sigma w-\mu\),\(\nabla^2f=\gamma\Sigma\succ0\),严格凸;\(w^*\) 由 \(\gamma\Sigma w=\mu\) 解出,计算时解方程而不求逆。
- \(A=\begin{bmatrix}4&2\\2&3\end{bmatrix}\) 是否正定?写出 Cholesky 分解。 要点:主子式 \(4>0\)、\(\det A=8>0\),正定;\(L=\begin{bmatrix}2&0\\1&\sqrt2\end{bmatrix}\)。
- 写出 \(f(x)=e^{x_1}+x_1x_2^2\) 在原点的二阶 Taylor 展开。 要点:\(f(p)\approx1+p_1+\frac12p_1^2\),余项 \(O(\|p\|^3)\)。
- 求 \(\min\frac12\|x\|^2\) s.t. \(a^Tx=1\)。 要点:\(x=\lambda a\),\(\lambda=1/\|a\|^2\),\(x^*=a/\|a\|^2\);这是第 15 章最小范数解、第 16a 章仿射投影的最简情形。
- 回归矩阵 \(X\) 条件数 \(10^6\),用正规方程大约损失几位有效数字?QR 呢? 要点:\(\kappa(X^TX)=10^{12}\),双精度约 16 位,只剩约 4 位;QR 误差与 \(\kappa(X)\) 成正比,剩约 10 位(第 10 章 10.7.2 节有实验)。
3. 章节地图
学时按"读正文 + 跑通代码 + 做 3–4 道练习"估计。必学是后续各册直接依赖的内容;选学按需阅读;速读浏览结论、用到时回查。
| 文件 | 原书章节(第 1 版,PDF 页) | 一句话内容 | 学时 | 标记 |
|---|---|---|---|---|
| 01_优化问题与建模 | Ch.1 Introduction(p.21–31) | 三要素、问题分类、凸性;均值–方差标准形式与整手取整陷阱 | 3 | 必学 |
| 02_无约束优化基础 | Ch.2 Fundamentals of Unconstrained Optimization(p.32–53) | 最优性条件、两大框架、四类方向、尺度、收敛速度;Kelly 组合 | 5 | 必学 |
| 03_线搜索方法 | Ch.3 Line Search Methods(p.54–83) | Wolfe 条件、Zoutendijk 定理、最速下降病态、Dennis–Moré;排查 line search failed | 6 | 必学 |
| 04_信赖域方法 | Ch.4 Trust-Region Methods(p.84–119) | Cauchy 点、dogleg、CG–Steihaug、子问题精确解;信赖域与岭回归 | 6 | 选学 |
| 05_共轭梯度法 | Ch.5 Conjugate Gradient Methods(p.120–153) | 线性 CG、特征值与收敛、预条件、非线性 CG;因子协方差下的 PCG | 5 | 选学 |
| 06_实用牛顿法 | Ch.6 Practical Newton Methods(p.154–183) | 非精确牛顿、Newton–CG、Hessian 修正;相关矩阵修复、大规模风险预算 | 6 | 选学 |
| 07_导数计算 | Ch.7 Calculating Derivatives(p.184–211) | 差分步长、稀疏着色、自动微分前向与反向模式;Greeks 与 AAD | 5 | 必学 |
| 08_拟牛顿法 | Ch.8 Quasi-Newton Methods(p.212–241) | 割线方程、BFGS/SR1/Broyden 族与收敛理论;GARCH 估计与标准误 | 6 | 必学 |
| 09_大规模拟牛顿与部分可分优化 | Ch.9 Large-Scale Quasi-Newton and Partially Separable Optimization(p.242–269) | L-BFGS、紧凑表示、部分可分结构;3000 只股票的带界组合 | 4 | 选学 |
| 10_非线性最小二乘 | Ch.10 Nonlinear Least-Squares Problems(p.270–295) | QR/SVD、Gauss–Newton、LM、ODR;共线回归与收益率曲线拟合 | 6 | 必学 |
| 11_非线性方程组 | Ch.11 Nonlinear Equations(p.296–332) | 牛顿、Broyden、全局化、同伦;风险预算方程组与 Merton 模型的多根 | 5 | 选学 |
| 12_约束优化理论 | Ch.12 Theory of Constrained Optimization(p.333–378) | KKT 及证明、约束规范、影子价格、二阶条件、凸规划;均值–方差 KKT 分析 | 8 | 必学 |
| 13_线性规划_单纯形法 | Ch.13 LP: The Simplex Method(p.379–410) | 标准形、对偶、顶点几何、单纯形法;最小 CVaR 组合 | 6 | 必学 |
| 14_线性规划_内点法 | Ch.14 LP: Interior-Point Methods(p.411–436) | 中心路径、路径跟踪、Mehrotra 预测–校正;\(\ell_1\) 指数跟踪 | 5 | 选学 |
| 15_约束优化算法基础 | Ch.15 Fundamentals of Algorithms for Nonlinear Constrained Optimization(p.437–456) | 算法地图、零空间消元、价值函数;行业中性最小方差 | 3 | 速读 |
| 16a_二次规划_KKT系统与有效集法 | Ch.16 §16.1–16.5 Quadratic Programming(p.457–493) | 等式 QP 的 KKT 系统与解法、惯性、有效集法;两基金定理 | 6 | 必学 |
| 16b_二次规划_梯度投影内点法与组合优化实战 | Ch.16 §16.6–16.8(p.493–505) | 梯度投影、QP 内点法、对偶;带换手与行业约束的完整组合优化 | 6 | 必学 |
| 17_罚函数障碍法与增广拉格朗日 | Ch.17 Penalty, Barrier, and Augmented Lagrangian Methods(p.506–543) | 二次罚、对数障碍、精确罚、增广拉格朗日;软约束、风险平价、ADMM | 6 | 必学 |
| 18_序列二次规划 | Ch.18 Sequential Quadratic Programming(p.544–591) | 局部 SQP、阻尼 BFGS、价值函数、Maratos 效应;SLSQP 与 trust-constr | 5 | 选学 |
| A_附录_背景材料 | Appendix A Background Material(p.592–626) | 分析、切锥法锥、矩阵分解、Woodbury、条件数;因子协方差快速求解 | 2 | 速读 |
全册约 104 学时。
4. 学习路径
4.1 量化研究速成路径(约 55 学时)
目标是尽快用对 scipy.optimize、写出组合优化模型、读懂乘子。顺序如下:
- 第 01 章全读(3)。
- 第 02 章 2.2、2.3 节(4):最优性条件与四类搜索方向是全册的词汇表。
- 第 03 章 3.1–3.3 与 3.8 节(4):会写 Wolfe 条件,知道 Zoutendijk 定理的结论,会排查线搜索失败。
- 第 08 章全读(5):BFGS 是
minimize的默认算法;8.8.3 节说明res.hess_inv为什么不能算标准误。 - 第 09 章 9.2 与 9.7 节(2):L-BFGS-B 是大规模问题的默认选择。
- 第 07 章 7.2.1、7.3.3 与 7.4 节(3):差分步长与 AAD;做衍生品的读者全读。
- 第 10 章全读(5)。
- 第 12 章 12.1–12.4、12.6.3、12.7、12.10–12.11 节(6):证明(12.5 节)可后补。
- 第 13 章 13.1–13.3 与 13.8 节(4)。
- 第 16a 章 16.1–16.5 与 16.7 节(5)。
- 第 16b 章全读(5)。
- 第 17 章 17.1、17.2、17.5、17.7 节(4)。
- 第 18 章 18.1、18.4.1、18.10、18.11 节(3):足以读懂 SLSQP 的行为与报错。
之后按需回补:做大规模组合读第 05、06 章与附录 A.3;做模型校准读第 04、11 章;关心 LP 求解器性能读第 14 章。
4.2 完整系统路径(约 104 学时)
按原书顺序分四段,附录 A 放在手边随时回查:
- 无约束基础(第 01–05 章,约 25 学时)。第 03、04 章是全书两大框架,证明要读通。
- 无约束进阶(第 06–11 章,约 32 学时)。重点是第 06 章的 Hessian 修正和第 08 章的 BFGS 理论;第 06 章的"强制序列"与第 11 章的"强迫参数"是同一个 \(\eta_k\)。
- 约束理论与线性规划(第 12–14 章,约 19 学时)。第 12 章的 KKT 证明链(极限方向 → LICQ → Farkas 引理)完整读一遍;第 13、14 章是有效集法与内点法的原型。
- 约束算法(第 15–18 章,约 26 学时)。先速读第 15 章建立地图,再按 16a → 16b → 17 → 18 学。第 14 章、第 16b 章 16.9 节和第 17 章 17.3.5 节的原始–对偶步是同一框架,宜对照阅读。
每章做完基础练习,并至少完成一道原书推荐的编程题。
4.3 组合优化专题路径(约 35 学时,可选)
按问题类型阅读:第 01 章 1.6 节 → 第 12 章 12.10–12.11 节 → 第 13 章 13.8 节 → 第 14 章 14.7.3 节 → 第 15 章 15.4 节 → 第 16a 章 16.7 节 → 第 16b 章 16.11 节 → 风险预算三种解法(第 06 章 6.6 节、第 11 章 11.6.2 节、第 17 章 17.7.3 节)→ 第 18 章 18.11.3 节 → 大规模求解(第 05 章 5.4 节、第 09 章 9.7.2 节、附录 A.3)。
5. 核心公式与概念速查
| # | 概念 | 公式 / 要点 | 章 |
|---|---|---|---|
| 1 | 标准形式 | \(\min f(x)\) s.t. \(c_i(x)=0\ (i\in\mathcal E)\),\(c_i(x)\ge0\ (i\in\mathcal I)\) | 01 |
| 2 | 凸规划 | \(f\) 凸、等式线性、不等式 \(c_i\) 凹;局部解即全局解 | 01、12 |
| 3 | 无约束最优性 | 必要 \(\nabla f=0\)、\(\nabla^2f\succeq0\);充分 \(\nabla f=0\)、\(\nabla^2f\succ0\) | 02 |
| 4 | 收敛阶 | Q-线性 \(e_{k+1}\le re_k\);超线性 \(e_{k+1}/e_k\to0\);二次 \(e_{k+1}\le Me_k^2\) | 02 |
| 5 | Wolfe 条件 | \(f(x_k+\alpha p_k)\le f_k+c_1\alpha\nabla f_k^Tp_k\);\(\nabla f(x_k+\alpha p_k)^Tp_k\ge c_2\nabla f_k^Tp_k\) | 03 |
| 6 | Zoutendijk | \(\sum_k\cos^2\theta_k|\nabla f_k|^2<\infty\) | 03 |
| 7 | 最速下降速率 | 二次函数上误差(\(Q\)-范数平方)每步至多乘 \(\left(\frac{\kappa-1}{\kappa+1}\right)^2\) | 03 |
| 8 | Dennis–Moré | \(|(B_k-\nabla^2f^*)p_k|/|p_k|\to0\) ⇔ 超线性 | 03、08 |
| 9 | 信赖域 | \(\min m_k(p)\),\(|p|\le\Delta_k\);\(\rho_k=\) 实际下降 / 预测下降 | 04 |
| 10 | 子问题精确解 | \((B+\lambda I)p=-g\),\(\lambda(\Delta-|p|)=0\),\(B+\lambda I\succeq0\) | 04 |
| 11 | CG 收敛 | \(|x_k-x^*|_A\le2\left(\frac{\sqrt\kappa-1}{\sqrt\kappa+1}\right)^k|x_0-x^*|_A\);\(r\) 个不同特征值至多 \(r\) 步 | 05 |
| 12 | 非精确牛顿 | \(|\nabla^2f_kp_k+\nabla f_k|\le\eta_k|\nabla f_k|\);\(\eta_k\to0\) 超线性,\(\eta_k=O(|\nabla f_k|)\) 二次 | 06、11 |
| 13 | Hessian 修正 | 特征值抬到 \(\delta\);或 \(A+\tau I\),\(\tau=\max(0,\delta-\lambda_{\min})\) | 06 |
| 14 | 差分步长 | 前向 \(\epsilon\approx\sqrt u\);中心 \(\epsilon\approx u^{1/3}\),精度 \(u^{2/3}\) | 07 |
| 15 | 反向模式 AD | 梯度代价约为函数的 4–5 倍,与变量数无关 | 07 |
| 16 | 割线方程 | \(B_{k+1}s_k=y_k\);曲率条件 \(s_k^Ty_k>0\) 由 Wolfe 第二条件保证 | 08 |
| 17 | BFGS | \(H_{k+1}=(I-\rho_ks_ky_k^T)H_k(I-\rho_ky_ks_k^T)+\rho_ks_ks_k^T\),\(\rho_k=1/y_k^Ts_k\) | 08 |
| 18 | L-BFGS | 存 \(m\) 对 \((s,y)\),双循环 \(4mn\) 次乘法,\(H_k^0=\frac{s^Ty}{y^Ty}I\) | 09 |
| 19 | 最小二乘结构 | \(\nabla f=J^Tr\),\(\nabla^2f=J^TJ+\sum r_j\nabla^2r_j\);\(\kappa(J^TJ)=\kappa(J)^2\) | 10 |
| 20 | GN 与 LM | \(J^TJp=-J^Tr\);\((J^TJ+\lambda D^2)p=-J^Tr\),与岭回归同构 | 04、10 |
| 21 | Broyden | \(B_{k+1}=B_k+(y_k-B_ks_k)s_k^T/s_k^Ts_k\) | 11 |
| 22 | KKT | \(\mathcal L=f-\sum\lambda_ic_i\);\(\nabla f=\sum_{\mathcal A}\lambda_i\nabla c_i\),\(\lambda_{\mathcal I}\ge0\),\(\lambda_ic_i=0\) | 12 |
| 23 | 约束规范 | LICQ:活跃梯度线性无关;MFCQ;约束全线性时自动成立 | 12 |
| 24 | 影子价格 | \(df^*/d\epsilon=-\lambda_i^*|\nabla c_i|\);LP 中 \(\partial(c^Tx^*)/\partial b_j=\pi_j\) | 12、13 |
| 25 | 二阶条件 | 临界锥上 \(w^T\nabla^2_{xx}\mathcal Lw>0\);可算形式 \(Z^T\nabla^2_{xx}\mathcal LZ\succ0\) | 12 |
| 26 | 最小方差组合 | \(w=\Sigma^{-1}\mathbf 1/(\mathbf 1^T\Sigma^{-1}\mathbf 1)\),\(\Sigma w=\sigma^2_{\min}\mathbf 1\) | 12、16a |
| 27 | LP 对偶 | \(\min c^Tx,Ax=b,x\ge0\) ↔ \(\max b^T\pi,A^T\pi\le c\);间隙 \(x^Ts\) | 13 |
| 28 | 中心路径 | \(x_is_i=\tau\),\(\mu=x^Ts/n\);Mehrotra \(\sigma=(\mu_{\rm aff}/\mu)^3\) | 14 |
| 29 | 零空间消元 | \(x=Y(AY)^{-1}b+Zx_Z\),\(AZ=0\);QR 取 \(Z=Q_2\) | 15、16a |
| 30 | \(\ell_1\) 价值函数 | \(f+\frac1\mu\sum_{\mathcal E}\vert c_i\vert +\frac1\mu\sum_{\mathcal I}[c_i]^-\),\(1/\mu>|\lambda^*|_\infty\) 时精确 | 15、18 |
| 31 | 等式 QP | \(\begin{bmatrix}G&-A^T\\A&0\end{bmatrix}\begin{bmatrix}x\\\lambda\end{bmatrix}=\begin{bmatrix}-d\\b\end{bmatrix}\);惯性 \((n,m,0)\) ⇔ \(Z^TGZ\succ0\) | 16a |
| 32 | 梯度投影 | \(x(t)=P(x-tg,l,u)\),Cauchy 点为路径上第一个局部极小 | 16b |
| 33 | 罚与增广拉格朗日 | \(f+\frac1{2\mu}|c|^2\),\(c\approx-\mu\lambda^*\);\(\mathcal L_A=f-\lambda^Tc+\frac1{2\mu}|c|^2\),\(\lambda\leftarrow\lambda-c/\mu\) | 17 |
| 34 | 障碍与风险平价 | \(f-\mu\sum\log c_i\),\(\lambda_ic_i=\mu\);\(\min\frac12y^T\Sigma y-\sum b_i\log y_i\),\(w=y/\mathbf 1^Ty\) | 17 |
| 35 | SQP | 对 KKT 方程组用牛顿法;阻尼 BFGS \(r=\theta y+(1-\theta)Bs\) 保持正定 | 18 |
记号:全册沿用原书约定,不等式写成 \(c_i(x)\ge0\),Lagrange 函数为 \(f-\sum\lambda_ic_i\);罚参数 \(\mu\) 越小罚得越重;\(B_k\) 近似 Hessian,\(H_k\) 近似逆 Hessian;第 13 章 LP 等式乘子记为 \(\pi\),第 14 章起改回 \(\lambda\)。与 CVXPY 等约定的对照见第 12 章 12.3.4 节。
6. 勘误汇总
6.1 原书错误(正文已按正确形式叙述)
| 文件 | 内容 |
|---|---|
| 03_线搜索方法 | 3.8 节:原书最速下降数值例"约 0.08"对应未平方的因子,与 (3.29) 不一致。 |
| 04_信赖域方法 | CG–Steihaug 中 \(d_{j+1}\) 应为 \(-r_{j+1}+\beta_{j+1}d_j\);(4.28) 求和项前缺负号。 |
| 05_共轭梯度法 | CG 条件数界的指数、系数与条件数写法有误;Algorithm 5.3 初始化应为 \(p_0=-y_0\);(5.61) 系数应为 \(\frac{1-2c_2}{1-c_2}\)。 |
| 06_实用牛顿法 | 强制序列一处误印为 \(\sqrt{|\nabla^2f_k|}\);"incomplete Cholesky"应理解为普通 Cholesky;Steihaug 局限性例子的符号已改为自洽形式。 |
| 07_导数计算 | 中心差分最优步长应为 \(u^{1/3}\)(正文误作 \(u^{2/3}\));(7.17) 应为 Jacobian 第 4 列;习题 7.7 指标以正文例 7.26 为准。 |
| 09_大规模拟牛顿与部分可分优化 | 部分可分例子元素 Hessian 右下元应为 \(12x_3^2-4x_1\)。 |
| 10_非线性最小二乘 | (10.18)(10.19) 漏负号;GN 正规方程中 \(f_k\) 应为 \(r_k\);\(y^\sharp\) 一式应为 \(J_{k+1}^Tr_{k+1}-J_k^Tr_{k+1}\);ODR 节未知数与残差个数写混。 |
| 11_非线性方程组 | (11.38) 中 \(f(x)\) 应为 \(|r(x)|\)。 |
| 12_约束优化理论 | 例 12.8 Lagrange Hessian 左上元应为 \(-0.8\)(原书 \(-0.4\)),结论不变。 |
| 13_线性规划_单纯形法 | 13.4 节 LU 更新中 \(p\)、\(q\) 角色写反。 |
| 14_线性规划_内点法 | (14.22) 第二因子应为对偶步长;定理 14.4 证明中 \(n\omega\) 应为 \(n\)。 |
| 15_约束优化算法基础 | 安全消元例中 \(x_4x_5\) 应为 \(x_4x_3\);引言"increasing \(\mu\)"应理解为罚权重 \(1/\mu\) 增大,障碍项在边界趋于 \(+\infty\)。 |
| 16a_二次规划_KKT系统与有效集法 | 例 16.3 末步乘子应为 0.8(原书 1.25);16.3 节"线性相关"应为"线性无关";习题 16.2 中 \(x^*\) 应取加号。 |
| 16b_二次规划_梯度投影内点法与组合优化实战 | 习题 16.16 原表述一般不成立,应理解为加约束时保持正定。 |
| 17_罚函数障碍法与增广拉格朗日 | 定理 17.5 证明中"代数基本定理"应为"线性代数基本定理"。 |
| 18_序列二次规划 | 算法 18.3/18.5 乘子公式多一负号;(18.61) 分子应为切向模型增加量;图 18.4 起点应为 \((0,1)\);习题 18.10 投影公式更正。 |
| A_附录_背景材料 | (A.7) 单侧极限应为 \(-1\);QR 解应为 \(x=Pz\);QR 定义中的 \(A\) 应为 \(Q\)。 |
6.2 精读笔记的更正
| 文件 | 内容 |
|---|---|
| 05_共轭梯度法 | 笔记中"预条件"两小节的页码(PDF p.118–120)有误,已对照 PDF 改为 p.138–140。 |
| 06_实用牛顿法 | 笔记把修正 Cholesky 的选主元写在循环外,应在每个 \(j\) 步内。 |
| 12_约束优化理论 | 例 12.4 目标第二项应为 \((x_2-\frac12)^4\)(笔记作 \(\frac18\)),12.11 节代码已验证。 |
| A_附录_背景材料 | 练习 3 切向量应取 \(w_i=(3/i,1)\)(笔记作 \(\frac1{3i}\))。 |
| 全册 | 笔记 02、03 元信息误标第 2 版;各章页码换算原先写法不一,已按 PDF 页眉统一(见 1.1 节)。 |
6.3 仍需回查原书
| 文件 | 内容 |
|---|---|
| 10_非线性最小二乘 | Wright–Holt 非精确 LM 判据分母是 \(\lambda^2|\bar p|^2\) 还是 \(\lambda|\bar p|^2\),需核对原始论文;§10.2 内部小节页码为估计值。 |
| 11_非线性方程组 | §11.1、§11.2 内部小节页码为估计值。 |
| 12_约束优化理论 | §12.2、§12.4 内部小节页码为估计值。 |
| 16b_二次规划_梯度投影内点法与组合优化实战 | (16.53) 在抽取文本中列序错乱,本章按含义还原,宜对照 PDF 原图核对。 |
7. 配套代码说明
运行环境。Python 3.9 及以上,实际只用到 numpy、scipy,第 12 章另用 pandas 打印表格。scipy 建议不低于 1.9:第 13、14、16b 章用 linprog(method="highs"/"highs-ipm") 并读取 res.ineqlin.marginals 等对偶值,第 16a 章用 scipy.linalg.ldl。全书环境清单中的 statsmodels、scikit-learn、arch 本册不需要;第 08 章的 GARCH 结果可另装 arch 交叉核对,第 07 章练习 10 可选用 jax。
运行情况。各章代码在章内自包含:每个代码块自带 import 和随机种子,没有跨章导入的模块,不需要先运行别的章节,同一章的两个代码块也互相独立。本册编辑时把全部 31 个代码块逐个单独运行(numpy 2.5、scipy 1.18、pandas 3.0),全部正常结束,单块用时都在 10 秒以内。第 08 章代码二"不缩放"一行打印的 Desired error not necessarily achieved due to precision loss 是有意演示的现象。迭代次数和耗时会随版本与 BLAS 略有差异,不影响结论。
有跨章依赖的练习。正文代码没有跨章依赖,以下练习需要先打开另一章:
- 第 03 章练习 9 引用第 02 章练习 9 的尺度不变性结论。
- 第 12 章练习 11 要求实现有效集法,完整实现见第 16a 章 16.7.1 节的
active_set_qp。 - 第 16a 章练习 9 需先运行本章 16.7.1 节代码,得到
active_set_qp。 - 第 16b 章练习 10(b) 使用第 17 章的增广拉格朗日法。
- 第 17 章练习 9 求解第 16b 章 16.11 节模型中的长仓最小方差组合,可复制 16b 代码中的协方差生成部分。
- 第 18 章练习 10 与第 17 章 17.7.3 节比较,需先运行第 17 章代码二。
- 附录 A 练习 6 使用第 16a 章 16.7.2 节的 KKT 闭式解。