复步长微分
约 65 分钟
复步长微分
本节属于“数值微分与积分”。学习目标是把 复步长微分 从名词变成一条可复查的证据链:明确数学对象,推导核心公式,手算最小例题,实现算法,区分误差来源,并让已知反例按预期失败。
主题专属核心:先把《复步长微分》讲明白
这一节真正研究的对象是:用解析函数的复数扰动避免实数相减。先把它与本章其他方法分开:它的输入前提、被更新的数学量、希望保留的结构和停止证据都必须明说。不能只写一个库函数名就跳到结果。
定义与公式从哪里来
本节的核心关系是:。读公式时要逐项标出已知量、状态量和新状态,再说明分母为何不能为零、矩阵需要什么性质、步长或网格受什么约束。推导不是为了背诀,而是为了知道实现中每一个中间量应该是什么。 对《复步长微分》,本段的验收证据具体是:用解析函数的复数扰动避免实数相减
一个可以手算的 worked example
f(x)=x^2,x=1,h=1e-20,Im[(1+ih)^2]/h=2,无 消去。请不要直接跳到最后数字:把第一步的代入、中间量、新状态和残差写在四行中,然后用原定义独立代回。这个小例是代码的 oracle:程序第一步与手算不一致时,先查索引、符号、新旧状态和边界,不要通过放宽容差掩盖错误。 对《复步长微分》,本段的验收证据具体是:
从纸面到算法
可执行顺序是:确认实现支持复数且函数解析,取小h,提取虚部,与中心差分对照。每一轮要保存足以复原失败的状态,但不要用后一步数据污染本轮本应使用的旧状态。返回值至少包含近似解、迭代/网格信息、残差或误差估计、停止原因和成功状态,这样调用者才能区分“收敛”与“被迫停下”。 对《复步长微分》,本段的验收证据具体是:f(x)=x^2,x=1,h=1e-20,Im[(1+ih)^2]/h=2,无 消去
主动打破前提
本节必须保留的反例是:abs、max、分支等非解析操作会破坏公式。先预测哪个量会最先异常,再逐步改变一个条件。如果只看最后一个数,就无法区分问题病态、算法不稳定、实现错误和容差口径不合理。合格实验要给正常、最小、性质边界和已知失败四类输入。 对《复步长微分》,本段的验收证据具体是:确认实现支持复数且函数解析,取小h,提取虚部,与中心差分对照
把推导变成可验收证据
现在回到核心公式“”,用维度、极端值和代回三种方法审核它。维度检查防止矩阵左右乘反或步长漏乘;极端值检查在步长趋零、残差为零或矩阵变对角时是否回到直觉;代回检查则把 worked example 的新状态放回原问题。三者中任一不通过,都不应进入大规模计算。 对《复步长微分》,本段的验收证据具体是:abs、max、分支等非解析操作会破坏公式
公式逐行复核
本节唯一公式证据为:。
复核时必须写出三层含义。第一层是定义:公式左侧究竟是近似解、残差、误差、概率、能量还是更新后的状态;第二层是操作:右侧每一项来自输入、旧状态还是本轮刚算出的中间量;第三层是条件:分母非零、矩阵结构、光滑性、步长、边界、独立性或稳定域中哪一项保证这一步合法。 对《复步长微分》,本段的验收证据具体是:用解析函数的复数扰动避免实数相减
再做三个极限检查:把离散尺度或步长趋近零,观察是否回到连续定义;把耦合、噪声或残差设为零,观察是否回到可手算基线;把参数推到性质边界,确认程序返回失败或切换算法,而不是悄悄给出一个有限数。
数字基准与测试 oracle
本节已算完的基准是:f(x)=x^2,x=1,h=1e-20,Im[(1+ih)^2]/h=2,无 消去。
把它写成测试时,断言不能只有最终答案。至少保存输入、第一中间量、最终结果、代回残差和停止状态。若答案有单位或归一化约定,也必须进入测试描述。随后只改一个参数两倍,判断结果应按线性、平方、平方根、指数还是迭代谱规律变化;缩放不符合预期时,优先检查公式与实现的对应关系。 对《复步长微分》,本段的验收证据具体是:
这个小例负责验证实现,不负责证明所有输入都可靠。因此还要增加最小规模、性质边界和已知失败三类用例。对于浮点结果,容差必须由舍入、离散或统计误差预算推出,不能因为当前程序输出多少就把期待值改成多少。
实现清单与可观察状态
本节算法为:确认实现支持复数且函数解析,取小h,提取虚部,与中心差分对照。
实现时按“校验—初始化—单步更新—停止—独立复核—归档”组织。校验阶段确认形状、单位、有限值和结构前提;初始化阶段保留原始输入副本;单步更新阶段禁止混用新旧状态;停止阶段同时看残差/误差与最大工作量;复核阶段用原始问题代回;归档阶段记录版本、参数、运行命令和原始证据。 对《复步长微分》,本段的验收证据具体是:f(x)=x^2,x=1,h=1e-20,Im[(1+ih)^2]/h=2,无 消去
返回结果至少包括近似值、工作量、残差或误差估计、停止原因和成功状态。只返回一个数组会迫使调用者把“达到精度”“达到上限”“数值溢出”和“前提不满足”混成同一种成功。
主动打破前提
本节必须保留的反例是:abs、max、分支等非解析操作会破坏公式。
先预测反例会让哪个量首先异常,再构造最小输入实跑。报告要指出错误首次发生在问题条件、公式、索引、迭代状态还是统计解释,并给出修复所需的主元、正则化、回退、步长限制、边界处理或替代算法。仅写“可能不准”不合格;必须展示残差不降、守恒量漂移、状态越界、误差阶下降或置信区间失真等可观察差异。 对《复步长微分》,本段的验收证据具体是:确认实现支持复数且函数解析,取小h,提取虚部,与中心差分对照
误差预算与比较口径
对 用解析函数的复数扰动避免实数相减 至少分开报告输入误差、问题条件放大、离散/截断误差、迭代误差、舍入误差和随机误差中实际存在的部分。当前主导项未识别前,盲目增加迭代、网格或样本可能只会增加成本。若要比较两个算法,必须固定同一问题、同一精度目标、同一失败口径和同一硬件计时范围。 对《复步长微分》,本段的验收证据具体是:abs、max、分支等非解析操作会破坏公式
闭卷验收
- 用自己的话定义
用解析函数的复数扰动避免实数相减,说明输入、输出和结构前提。 - 重建公式
$f'(x)\approx Im[f(x+ih)]/h+O(h^2)$,逐行标注成立条件。 - 不看正文重算基准
f(x)=x^2,x=1,h=1e-20,Im[(1+ih)^2]/h=2,无 $f(x+h)-f(x)$ 消去,并用原问题代回。 - 把“确认实现支持复数且函数解析,取小h,提取虚部,与中心差分对照”改写成带失败状态的伪代码。
- 解释反例“abs、max、分支等非解析操作会破坏公式”会先破坏哪一步以及如何修复。 对《复步长微分》,本段的验收证据具体是:用解析函数的复数扰动避免实数相减
五项均能针对《复步长微分》独立回答,才算完成本节;同章另一方法的通用话术不能代替这些证据。
Practice
本课练习
先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。