本终点使用历史初值、延迟比较和连续Euler三个接口。输出不是单独一个末值:要保存初始函数、延迟查询、连续候选、全部残差段以及保证适用的时间窗口。
标准库精确核验器与固定结果均可下载。用--output result.json运行,另以python -O重跑应逐字相同。程序用Fraction进行多项式、插值和极值比较;指数证书由有理Taylor上下界获得,不把最近舍入小数充当证明。
任务一:相同当前值并不确定同一个未来
取τ=2/3、x′(t)=x(t−τ)。先用历史φ₁(s)=1求到t=2,再把历史改成φ₂(s)=1+3s/2。两者在零点都是1,应交出两份不同的连续解。
常数历史的三段
从第一段的已知右端1开始,每次积分上一段的平移,得到
所以x₁(2/3)=5/3、x₁(4/3)=23/9、x₁(2)=319/81。逐段求导并平移,能检查整条曲线,而不只三个连接点。
初始历史的左导数为零,第一段右导数为1,接缝在零点不为两侧C¹;到了2/3,二阶导数出现跳变。这些事实不破坏正时间解的C¹合同,却影响更高阶数值余项能否跨节点使用。
改变历史后的完整迁移
φ₂(t−2/3)=3t/2,因此第一段不是1+t,而是1+3t²/4。继续构造,令r=t−4/3,得到
中间末值是56/27,最终x₂(2)=259/81。第三段的四次项来自第二段的三次项,不能继续套只适用于常数历史的延迟指数有限和。
公开程序分别积分两份历史多项式,检查连接值与平移后的导数,再核这两个末值。两条曲线在起点相同、终点相差20/27;仅提交x(0)=1不构成完整输入。
任务二:当前点误差与整段历史误差各交一份
假设某非负误差y满足
任务是认证t=2的当前误差和整段[7/5,2]的最大误差,随后把延迟改成1重新判断速率。
因为1+e^(3/5)<3,可选λ=1。底线F=1/500、初始超额C=7/250,于是
严格有理上界可以不显示长小数:e²的前五项之和为7且余项为正;e^(7/5)展开到五次项已经大于4。分别取倒数便得到这两个界。程序的有理指数封套再独立复算同一比较。
整段历史界大于当前点界,是因为较早的误差仍留在窗口内。若把η错误地设成零,还会丢掉1/500的持续扰动底线。
现在仅将τ改成1。原λ=1因1+e>3被拒;λ=1/2则由1/2+e^(1/2)<3通过。新的当前界是1/500+(7/250)e^(−t/2)。这一变化说明原速率证书不能照搬,不能据一次证书失败直接报告系统失稳。
任务三:八步折线怎样给整个区间的误差
考虑
初始历史和强迫已配成精确解t²,最后可用它交叉核验。但先只使用模型输入构造候选和残差。取h=1/4,八次更新如下。
| n | t_n | v_n | 读取t_n−3/5 | k_n |
|---|---|---|---|---|
| 0 | 0 | 0 | −3/5 | 0 |
| 1 | 1/4 | 0 | −7/20 | 11/16 |
| 2 | 1/2 | 11/64 | −1/10 | 79/64 |
| 3 | 3/4 | 123/256 | 3/20 | 11031/6400 |
| 4 | 1 | 23331/25600 | 2/5 | 56551/25600 |
| 5 | 5/4 | 5995/4096 | 13/20 | 279671/102400 |
| 6 | 3/2 | 879171/409600 | 9/10 | 6635043/2048000 |
| 7 | 7/4 | 24218463/8192000 | 23/20 | 30627059/8192000 |
最终v₈=127500911/32768000。n=4的查询2/5落在[1/4,1/2],权重3/5,值33/320;n=3的查询3/20已经在正时间第一条数值直线上,值为零,不能再代入原历史s²。
十四段残差证书
把原节点与平移节点合并,完整切点为
每段写r=v′+3v−v(t−3/5)−p(t),保存三个有理系数和端点/驻点。比如[1/2,3/5]的二次系数是−3,后面的[3/5,3/4]则为−2;跨过历史接缝以后,延迟输入从二次函数变成仿射函数。
按顺序十四段的精确残差绝对上界为
最大值η=11/16来自第一段的右端极限。全部时间已覆盖,历史误差为零,耗散差3−1=2,因此全时段误差至多11/32。
以同一容差决定是否缩步
要求认证误差不超过3/20。八步证书11/32不能通过。将h缩为1/8并从原历史重新运行,16步产生28个残差段,最大η=19/64,故
余量恰为1/640。不能只将八步结果重新插点后声称完成了16步算法。
| 网格 | 残差段数 | 认证误差上界 | 用t²另算的实际最大误差 |
|---|---|---|---|
| h=1/4 | 14 | 11/32 | 3571089/32768000,约0.108981 |
| h=1/8 | 28 | 19/128 | 78852792056910661/1407374883553280000,约0.056029 |
这两份实际最大值都在t=2达到,程序逐个仿射误差段检查二次极值。粗网格的真实误差已经小于容差,证书却偏松而拒绝;拒绝的意思是这组充分界没过关,不是轨道一定太差。
任务四:三种不该混为一谈的失败
漏掉内部极点
改取τ=h=T=1、零历史,强迫p(t)=4t(1−t)。Euler得到v≡0,原网格两端残差全为零,但r(1/2)=−1。复核器必须插入驻点1/2,得到η=1与误差界1/2。将该驻点从日志删掉,即使两端数值都正确,整段证书仍应拒绝。
连续系统稳定,Euler却增长
对x′=−3x+x(t−1)、φ≡1,取h=1。先从真实历史启动:v(−1)=1、v₀=1,k₀=−2,故v₁=−1。随后递推v_{n+1}=−2v_n+v_{n−1},得到
其准确表达是((−1+√2)ⁿ+(−1−√2)ⁿ)/2,确有增长模式。连续问题满足a>|b|而指数稳定;失败发生在离散步长。公开程序通过原历史查询构造第一步,不手填第二个种子。
破坏的是日志,而非方程真假
对任务三逐项制作坏证书:删去3/5切点、把2/5查询改成左节点0、改变一个Euler状态、把历史侧的二次系数改错、低报η、漏终点、写错初始历史预算。复核器都从模型和节点重新计算,而不是相信日志自报的“通过”。
另把a改成|b|,应拒绝本页的严格耗散底线;这并非证明输入方程不存在。h>τ则超出本页选定的整步因果窗口合同,不等于所有显式延迟算法都不可用。输入多余的多项式坐标也必须拒绝,不能用zip静默忽略。
最后交完整模型、历史、时间网格、全部查询与斜率、连续残差多项式、极值位置、全窗半径和失败理由。普通/优化模式的有限复算用于核这些记录;一般存在、比较和阶数结论仍来自正式页的证明。