二维张量积中点法能保证什么、不能保证什么?¶
先备知识¶
掌握累次积分、一元复合中点法和 Python 函数调用。
学习目标¶
在矩形域上构造固定网格近似,并准确陈述误差结论所需条件。
牵引问题¶
网格加密后数值稳定,能否据此声称积分已获得严格误差界?
探索与猜想¶
分别在两个方向使用一元中点法,就得到二维张量网格;但观测到稳定不等于证明 导数界存在。
概念与理论¶
问题来源¶
解析原函数难求时,希望近似 \(\iint_{[a,b]\times[c,d]}f\,dA\)。
数学转化¶
把两区间分别等分为 \(n_x,n_y\) 份,在每个小矩形中心取样。
算法思想¶
张量积中点法为
误差与适用条件¶
若两个方向的二阶偏导在矩形上有已证明的统一界,可逐方向使用一元中点误差并用 三角不等式合并。没有这些常数时,返回值只是固定网格近似。网格数据 不能证明可积性,也不能自动成为误差证书;这就是本单元的误差前提边界。
伪代码¶
验证矩形与网格;遍历全部小矩形中心;累加有限函数值;乘 \(\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¶
写出结果解释的三项最低内容。
答案
近似值、网格与求值成本、是否具有已证明误差证书。
答案
补充核验:还应检查输入矩形、函数单位与独立解析结果是否一致。