跳转至

怎样计算并可靠核验多元线性化?

先备知识

已经由证明或符号推导得到解析 Jacobian;本单元不负责自动证明可微。

学习目标

  1. 用中心差分诊断解析 Jacobian;2. 分离截断误差和舍入误差;3. 解释条件状态。

牵引问题

解析 Jacobian 可能抄错,有限差分也会受步长影响。怎样让两者互相核验而不夸大结论?

探索与猜想

对第 \(j\) 个坐标,用

\[ \frac{f(x+he_j)-f(x-he_j)}{2h} \]

近似 Jacobian 第 \(j\) 列。多组步长的稳定区间比单次吻合更有信息。

概念与理论

问题来源

输入函数、调用者给出的解析 Jacobian、核验点、差分步长与条件数阈值。

数学转化

逐列中心差分得到数值矩阵;方阵再用 \(\|J\|_\infty\|J^{-1}\|_\infty\) 估计条件数。

算法思想

严格检查维度和有限性;分别保存解析矩阵、数值矩阵和最大元素差;方阵用主元消元 区分 checkedsingularill_conditioned

误差与适用条件

平滑函数的中心差分通常有 \(O(h^2)\) 截断误差,但 \(h\) 太小时相减引起舍入误差。 解析式与差分的数值吻合只能发现明显错误,不能证明 Fréchet 可微。条件数描述 问题敏感性,不是算法稳定性的证书。

伪代码

验证 point、step、condition_limit
计算基准输出并锁定维数
验证解析 Jacobian 的行列与有限性
逐坐标做中心差分并拒绝输出维数漂移
比较两个矩阵
若为方阵,估计条件数并给出状态
返回不可变诊断结果与假设

Python

唯一实现为 mathbook_examples.multivariate.check_jacobian。页面不复制第二份函数。

结果解释

checked 只表示输入合法且未检测到奇异/超阈值条件数;它不是正确性证书。 singular 表示当前解析矩阵不可逆,ill_conditioned 表示局部反问题对误差高度敏感。

例题与迁移

例 1:二维系统

\(F(x,y)=(x^2+y,xy)\),在 \((2,3)\) 的解析 Jacobian 为 \(\begin{pmatrix}4&1\\3&2\end{pmatrix}\),中心差分应在合理步长下接近它。

例 2:病态缩放

\(F(x,y)=(x,10^{-14}y)\),差分可很吻合,但条件数约 \(10^{14}\),仍应报告病态。

即时检验与回望

即时检验 1

步长越小是否必然越准?

答案

否;截断误差下降时舍入误差可能上升。

即时检验 2

矩形 Jacobian 为什么不返回方阵逆条件数?

答案

普通逆矩阵不存在;需要奇异值或广义逆理论,本单元不越界。

即时检验 3

状态 checked 证明了什么?

答案

只证明本次诊断流程完成且未触发奇异、病态阈值,不证明解析公式或可微性。

常见误区与后续

  • 网格或有限差分是诊断,不是数学证明。
  • 最大元素差依赖尺度,必须连同步长和矩阵一起看。
  • 条件数阈值是报告规则,不是可逆性的数学定义。

习题与答案

习题 1

写出中心差分的第 \(j\) 列公式。

答案

\([f(x+he_j)-f(x-he_j)]/(2h)\)

习题 2

为何要锁定输出维数?

答案

Jacobian 必须表示固定维数映射;维数漂移使列无法组成同一矩阵。

习题 3

非有限函数值应怎样处理?

答案

显式拒绝,不能把 NaN/Inf 纳入误差比较。

习题 4

解析矩阵奇异时条件数怎样报告?

答案

状态为 singular,有限条件数记为缺失。

习题 5

为什么中心差分优于同步长前向差分?

答案

对足够光滑函数,对称抵消一次项后的主要截断误差,通常达到二阶。

习题 6

两种步长结果差异大说明什么?

答案

可能处于截断误差或舍入误差主导区,也可能函数不够光滑,需要进一步诊断。

习题 7

为何调用者仍需证明解析 Jacobian?

答案

有限采样不能覆盖所有趋近方式,也不能证明 Fréchet 余项合同。

习题 8

病态与奇异有何区别?

答案

奇异表示无逆;病态表示有逆但误差放大很大。

习题 9

矩阵维度错误为何应在计算前拒绝?

答案

它违反导数映射的定义域和值域合同,后续比较没有数学意义。

习题 10

有限差分误差很小能否证明链式法则?

答案

不能;链式法则来自 Fréchet 余项证明。

习题 11

为什么结果保存 assumptions

答案

让读者知道解析矩阵由调用者提供、差分仅诊断、吻合不证明可微。

习题 12

怎样比较不同尺度变量?

答案

先说明单位并合理无量纲化,再报告缩放后的 Jacobian 与条件数。

小结

可靠核验把解析矩阵、有限差分、步长、误差和条件状态分开报告。它能发现实现问题, 但不会把有限计算包装成 Fréchet 可微或局部可逆的证明。