記錄時間不整齊,還能補出中間的資料嗎?
不用把記錄強行搬到整點上,讓每個真實的輸入位置都參加計算。
有時你並不是每隔同樣時間記錄一次,表格的橫座標也可能沒有排序。先把它們照原樣放進圖裡,再用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 章