Hello 天文

读数有高有低,怎样找出背后的趋势?

把散落的观测记录放在一起,找一条整体最贴近它们的线。

通用算法与数值计算

连续拍摄时,光点在画面中的位置读数不可能次次完美。你想知道它总体怎么移动,而不是被某一次读偏牵着走。先看七次示意记录,再比较直线与弯曲的拟合。

打开互动课程 →

先猜一下

记录有误差时,一条好的拟合曲线必须穿过每一个点吗?

查看答案与解释

不必 — 最小二乘追求整体残差平方和最小,不要求每个测量值都恰好落在曲线上。

再把体验和科学连起来

先选一类曲线

同一批记录既能拟合直线,也能拟合弯曲的线。先选曲线家族,才有“最佳”的含义。

y = Σ cⱼ fⱼ(x)

量出每个竖直差值

每个点在同一个 x 位置,与曲线有一个竖直差。这些差有正有负,直接相加会相互抵消。

残差 eᵢ = yᵢ − ŷᵢ

把平方和压到最小

把每个差值平方再加起来。程序求出使它最小的系数,曲线不必穿过每个点。

SSE = Σeᵢ² → 最小

拟合好,不等于证明原因

相关系数只衡量线性关系。r 接近零也可能有清楚的曲线规律;拟合与相关都不能自动证明因果。

r = Sxy / √(Sxx Syy)

把计算链展开

ŷᵢ = Σⱼ cⱼ fⱼ(xᵢ) SSE = Σᵢ(yᵢ − ŷᵢ)² Σⱼ[Σᵢ fₖ(xᵢ)fⱼ(xᵢ)]cⱼ = Σᵢ fₖ(xᵢ)yᵢ r = Sxy/√(Sxx Syy)

正规方程对每个基函数k各写一行,联立求系数。Sxx、Syy为去均值平方和,Sxy为去均值乘积和;任一平方和为零时r未定义。

试一试

先在同一组记录间比较直线和二次曲线;再把一个读数改偏。切到“r=0的曲线”看看没有线性相关是否真的等于没有规律。

动手看一遍 →

符号不用背

x / y
横坐标视为准确,纵坐标含测量误差
eᵢ
第 i 个点到曲线的竖直残差
SSE
残差平方和
r
Pearson 线性相关系数;常数数据时未定义
cⱼ / fⱼ
待定系数 / 事先选定的基函数

算法、精度与适用范围

原书第4章,印刷页35–46,重点式(4.2)、(4.3)、(4.5)–(4.8)。普通示意记录是人工构造的像素坐标,不是真实天体运动测量。实验0/1使用相同七点;实验2采用印刷页40的抛物线反例;实验3采用例4.c的20个四位小数数据;实验4采用例4.d的六点。所有模型假设x准确、对y作未加权竖直最小二乘,不处理x误差或加权/稳健拟合。三正弦模型的x单位为度。采用QR解线性系数,与书中正规方程是同一目标,避免直接求逆;不是将相关解释为因果。AA+未提供对应专用模块,使用原书例题与独立最优性检查。这里不复现全部历史彗星/太阳黑子数据分析,也不推算未来天体位置。

我的理解检查

为什么把残差平方再相加?

避免正负误差互相抵消 — 正负残差直接求和可能为零,却不代表偏差小。

线性相关系数 r = 0,能断言完全没有规律吗?

不能 — 书中七个点的线性相关为零,却精确落在一条抛物线上。

拟合结果很好,是否已经证明 x 导致了 y?

没有 — 还需要物理机制、实验设计等证据;数学相关不是因果证明。

最佳拟合只在选定的曲线家族与误差定义中成立;残差、相关与因果要分开看。

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

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