跳转至

二维张量积中点法能保证什么、不能保证什么?

先备知识

掌握累次积分、一元复合中点法和 Python 函数调用。

学习目标

在矩形域上构造固定网格近似,并准确陈述误差结论所需条件。

牵引问题

网格加密后数值稳定,能否据此声称积分已获得严格误差界?

探索与猜想

分别在两个方向使用一元中点法,就得到二维张量网格;但观测到稳定不等于证明 导数界存在。

概念与理论

问题来源

解析原函数难求时,希望近似 \(\iint_{[a,b]\times[c,d]}f\,dA\)

数学转化

把两区间分别等分为 \(n_x,n_y\) 份,在每个小矩形中心取样。

算法思想

张量积中点法

\[ M_{n_x,n_y}=\Delta x\Delta y\sum_{i=1}^{n_x}\sum_{j=1}^{n_y} f(x_i^\ast,y_j^\ast). \]

误差与适用条件

若两个方向的二阶偏导在矩形上有已证明的统一界,可逐方向使用一元中点误差并用 三角不等式合并。没有这些常数时,返回值只是固定网格近似。网格数据 不能证明可积性,也不能自动成为误差证书;这就是本单元的误差前提边界。

伪代码

验证矩形与网格;遍历全部小矩形中心;累加有限函数值;乘 \(\Delta x\Delta y\); 报告网格和求值次数。

Python

唯一实现来自:

from mathbook_examples.multiple_integration import tensor_midpoint_2d

result = tensor_midpoint_2d(
    lambda x, y: x * y,
    x_bounds=(0.0, 2.0),
    y_bounds=(1.0, 3.0),
    nx=8,
    ny=8,
)
print(result.value, result.evaluations)

结果解释

结果值为 \(8\),这里双线性函数在每个方向都被中点法精确积分。evaluations=64 只描述成本,不证明一般函数也精确。

例题与迁移

例 1:常数核验

常数函数的结果应严格等于常数乘矩形面积,是实现的基本不变量。

例 2:曲函数加密

\(e^{x+y}\) 比较 \(4\times4\)\(8\times8\) 网格只能形成经验诊断;若未提供 二阶偏导界,不能报告“误差小于两次结果之差”。

即时检验与回望

即时检验 1

求值次数是多少?

答案

正好是 \(n_xn_y\)

即时检验 2

两次网格结果接近是否构成证书?

答案

不是;证书还需定理要求的光滑性和已证明导数界。

常见误区与后续

  • 本实现只接受有限非退化矩形。
  • 一般区域先用累次积分或下一章换元处理。
  • 不实现自适应 cubature 或 Monte Carlo。

习题与答案

习题 1

\(3\times5\) 网格需多少次求值?

答案

\(15\) 次。

习题 2

常数 \(k\) 的近似值是什么?

答案

对任意网格都等于 \(k(b-a)(d-c)\)

习题 3

为何拒绝反向区间?

答案

API 表示几何矩形,不用有向区间语义掩盖输入错误。

习题 4

为何拒绝非有限函数值?

答案

单个 NaN 或无穷会使有限和及结果解释失效。

习题 5

网格翻倍时成本怎样变化?

答案

两方向都翻倍时求值数变为四倍。

习题 6

中点法是否自动适用于圆盘?

答案

不;当前 API 只处理矩形域。

习题 7

为何结果对象不可变?

答案

防止计算后网格、求值次数或结果被无意改写而失去一致性。

习题 8

双线性函数为何在张量中点法下精确?

答案

固定一个变量后对另一个变量为一次函数,一元中点法逐方向精确。

习题 9

函数不可积时大量网格观测能证明可积吗?

答案

不能,有限观测不满足 Riemann 定义的全称量词。

习题 10

误差证书至少需要什么额外数据?

答案

定理对应的光滑性和二阶偏导统一界。

习题 11

为什么使用中心而不是角点?

答案

中心取样使一次项在对称小格上抵消,产生中点法误差阶。

习题 12

写出结果解释的三项最低内容。

答案

近似值、网格与求值成本、是否具有已证明误差证书。

答案

补充核验:还应检查输入矩形、函数单位与独立解析结果是否一致。