Hello 天文

记录时间不整齐,还能补出中间的数据吗?

不用把记录强行搬到整点上,让每条真实的输入位置都参加计算。

通用算法与数值计算

有时你并不是每隔同样时间记录一次,表格的横坐标也可能没有排序。先把它们照原样放进图里,再用Lagrange插值;如果恰好是四条等间隔数据的中点,还有一个简单的专用公式。

打开互动课程 →

先猜一下

Lagrange插值要求记录一定等间隔吗?

查看答案与解释

不要求,但横坐标不能重复 — 它直接使用每条记录自己的横坐标,允许不等间隔和乱序。

再把体验和科学连起来

每条记录保留自己的横坐标

点与点的间隔不同,不是错误;也无需先把输入列表排好。

先读成不同的 xᵢ 与对应 yᵢ

为每一个点构造一份贡献

每个基函数在自己的点等于1,在其他已知点等于0;加权相加后通过全部已知点。

y(x)=Σ yᵢ∏(x−xⱼ)/(xᵢ−xⱼ)

等间隔的中点可以简化

四点等间隔时,两个中间值权重9,外侧值权重−1,再除以16。不是普通平均数。

y中 = [9(y₂+y₃)−y₁−y₄]/16

重复横坐标要先处理

同一个x不能在分母里减出0。若观测在同一时刻给出不同读数,需要先决定如何处理误差,不能硬套插值。

所有 xᵢ 必须互不相同

对每个i,乘积遍历所有j≠i,再把各个yᵢ加权项相加。所有xᵢ须互异且单位相同;四点中点公式只适用于其特定等间隔条件,不能用于任意散点。

试一试

不等距正弦的30°对应约43.097%的位置;月球表的50%正好是11h TD,可比较一般插值与半间隔公式。

动手看一遍 →

符号不用背

xᵢ / yᵢ
各条已知输入与输出
Lᵢ(x)
Lagrange基多项式
y(x)
通过全部给定点的插值多项式

算法、精度与适用范围

补第3章3.12、3.13:四个等间隔样本的中点权重为(-1,9,9,-1)/16;不等距Lagrange逐项乘积法允许输入乱序,x值必须互不相同。正弦表来自印刷页34的六点练习,查询30°约为0.5;月球赤经来自例3.f,y单位为相对10小时的秒时,查询11h得到1540.0014375s(书中舍入为1540.001s)。界面只在已给数据范围查询,不把高阶多项式外推当可靠预测;原书3.g三次多项式另用于独立验证。未提供任意用户表格输入,核心纯函数可接收不等间隔数据并拒绝重复x。

我的理解检查

输入列表没按x排序,Lagrange结果一定错吗?

不会仅因乱序而错 — 插值权重由各点实际坐标计算,与输入顺序无关。

两个点有相同x,却不同y,可以直接套公式吗?

不可以 — 分母会为零,应先解决重复横坐标的观测含义。

通过所有样本,就保证远处外推也准吗?

不保证 — 高阶插值多项式不自动提供远处的真实物理规律。

保留每条记录真正的位置;不等距可以插值,但重复x和远距离外推都需要额外处理。

Jean Meeus · Astronomical Algorithms, 2nd ed. · 第 3 章

通用算法与数值计算 · 全部互动课程