插值

数学数值分析领域中,內插或稱插值英語:)是一種通过已知的、离散数据點,在範圍內推求新數據點的过程或方法。求解科学工程的问题時,通常有許多數據點藉由采样实验等方法获得,这些数据可能代表了有限個數值函數,其中自變量的值。而根据这些数据,我们往往希望得到一个连续函数(也就是曲线);或者更密集的离散方程与已知数据互相吻合,这个过程叫做拟合

一組离散数据點在一個外延的插值。曲線中實際已知数据點是紅色的;連接它們的藍色曲線即為插值。

與插值密切相關的另一個問題是通過簡單函數逼近複雜函數。假設給定函數的公式是已知的,但是太複雜以至於不能有效地進行評估。來自原始函數的一些已知數據點,或許會使用較簡單的函數來產生插值。當然,若使用一個簡單的函數來估計原始數據點時,通常會出現插值誤差;然而,取決於該問題领域和所使用的插值方法,以簡單函數推得的插值數據,可能會比所導致的精度損失更大。

內插是曲线必须通过已知点的拟合。参见拟合条目。

例如,已知数据:

求:

时的y值。

定义

给定个离散数据点(称为节点。对于,求所对应的的值称为內插。

为定义在区间上的函数。上n个互不相同的点,为给定的某一函数类。若上有函数满足:

 

则称关于节点上的插值函数。

示例

舉例假設我們有這樣如下列一個表,它給出了某個未知函數的值

表中數據點在x-y平面上的繪圖。
00
10.8415
20.9093
30.1411
40.7568
50.9589
60.2794

插值提供了估算中間點函數的方法,如

有許多不同的插值方法,其中一些在下面描述。 在選擇適當的算法時需要考慮的一些問題是:方法有多準確? 它的計算成本有多高? 插值有多平滑? 需要多少數據點?

方法

片段插值

片段常數(或稱為最近鄰)插值

最簡單的插值方法是找到最近的數據值,並分配相同的值。這種方法又稱為最近鄰插值。在簡單的問題中,不太可能使用這種方法,因為線性插值(見下一小節)幾乎一樣容易,但在高維度的多變量插值中,這可能是衡量速度和簡單性的有利選擇。

线性插值

以線性插值疊加數據的繪圖

考慮上面估計 f(2.5) 的例子。由於 2.5 在 2 和 3 之間,所以在 f(2) = 0.9093 和 f(3) = 0.1411 之間,取中間的 f(2.5) 是合理的,得到 0.5252。 一般來說,線性插值採用兩個數據點,例如 (xa,ya) 和 (xb,yb),

則線性插值的公式為




上面公式中的方程式表明, 的斜率,與 之間的斜率相同,線性插值是快速簡單的,但不是很精確。另一個缺點是在插值點 xk 不是可微分的

以下誤差估計顯示線性插值不是很精確。用 g 表示我們要插入的函數,假設 x 位於 xaxb,而 g 是連續可微的。那麼線性插值的誤差是

換言之,誤差與數據點之間的距離的平方成正比。包括多項式插值和样條插值(見下一小節)在內的其他一些方法中的誤差與數據點之間距離的較高冪成正比。這些方法也產生更平滑的插值。

多项式插值

对数据使用多项式插值得到的图像

多項式插值是線性插值的推廣。線性插值是一個線性函數。我們現在用一個更高階的多項式代替這個插值。 再考慮一下上面給出的問題。以下的六次多項式經歷了所有七個點:

代入 x = 2.5,我們發現 f(2.5) = 0.5965。 一般情況下,如果我們有 n 個數據點,那麼在所有的數據點中只有一個最多 n-1 次多項式。插值誤差與數據點與冪次 n 之間的距離成正比。此外,插值是一個多項式,因此是無限可微的。所以我們看到多項式插值克服了線性插值的大部分問題。但是,多項式插值也有一些缺點。與線性內插相比,計算內插多項式的成本是昂貴的(參見計算複雜度)。此外,多項式插值可能會出現振盪偽像,特別是在端點(見龍格現象)。

與線性插值不同,多項式插值可以估計樣本範圍之外的局部最大值和最小值。例如,上面的插值在 x ≈ 1.566 處有一個局部最大值,f(x) ≈ 1.003,在 x ≈ 4.708 處有一個局部最小值,f(x) ≈ −1.003。然而,這些最大值和最小值可能會超出函數的理論範圍 - 例如,一個總是正的函數可能有一個負值的插值,因此它的逆值包含假垂直漸近線

更一般地說,所得曲線的形狀,特別是對於獨立變量的非常高或低的值,可能與常識相反,即與已經產生數據點的實驗系統已知的情況相反。通過使用樣條插值或限制對切比雪夫多项式的注意可以減少這些缺點。

样条曲线插值

对数据使用样条插值得到的图像

線性插值對每個區間 [xk,xk+1] 使用線性函數。 樣條插值在每個間隔中使用低階多項式,並選擇多項式以使它們平滑地吻合在一起。 結果函數被稱為樣條曲線。 例如,三次样条是分片段立方,兩次連續可微。 此外,它的二階導數在終點為零。 在上表中插入點的三次樣條函數由下式給出

在這種情況下,我們得到 f(2.5) = 0.5972。 與多項式插值的方法相比較,樣條跟多項式一樣,其插值誤差會小於線性插值,而且插值更平滑;使用樣條會比使用高階多項式更容易評估。 它也不會受到龍格現象的影響。

以高斯過程處理的插值

其他形式的插值可以通過選擇不同的插值類來構造。 例如,有理插值是使用Padé逼近的有理函數插值,而三角插值是使用傅里叶级数的三角多項式插值。 另一種可能是使用小波。 如果數據點的數量是無限的,則可以使用Whittaker-Shannon插值公式。 有時候,我們不僅知道我們想插入的函數的值,而且也知道它的導數。 這導致Hermite插值問題。 當每個數據點本身就是一個函數時,將插值問題看作是每個數據點之間的局部對流問題是有用的。 這個想法導致了運輸理論中使用的位移插值問題。

相關概念

術語外推用於找到已知數據點範圍之外的數據點。 在曲線擬合問題中,插值必須準確穿過數據點的約束被放寬。 只需要盡可能接近數據點(在一些其他限制內)。 這需要參數化潛在的插值並且有一些測量誤差的方法。 在最簡單的情況下,這導致最小二乘法逼近。 近似理論研究如何從某個預定的類別的另一個函數找到給定函數的最佳逼近,以及這個近似值有多好。 這明顯產生了內插函數可以近似未知函數的界限。

公式

本章内容参考了《数学手册[1]

  • 牛顿第一內插公式牛顿向前內插公式
  • 牛顿第二內插公式牛顿向后內插公式
  • 斯特林內插公式
  • 贝塞耳內插公式
  • 拉格朗日内插多项式
  • 三次样条内插公式
  • 埃尔米特內插公式(Hermite)
  • 二元內插公式
  • 一元三点內插公式

参考文献

  1. 《数学手册》编写组,《数学手册》,高等教育出版社,1979年

参见

外部連結

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.