高中數學/不等式與數列/插值法
閱讀指南
編輯先前我們提到過某些根據少數已知項,猜想數列通項公式的問題。在中國大陸國家公務員考試行政職業能力測驗、IQ測試和魚龍混雜的小學數學智力問題中,數列找規律的問題也占了一定的比重。首先,我們在此指出,雖然培養猜想能力很重要,但是解決人為構造的過難的找規律問題是並無必要的。其次,如果對數列項的變化規律沒有限制得很死,比如允許解題人非常自由地去猜想規律,是完全有可能存在多個不同答案的。事實上,給定一個數列的有限個項,在不加任何額外限制的情況下,可以寫出無數個可能的遞推公式。這類問題的更一般情形就是函數插值問題,它旨在設法將平面或空間中的一系列有限個函數點用一個已知解析式的曲線串起來。我們先通過對於特殊情形下函數插值的方法討論,給出一些快速求解此類問題的思路,隨後進一步介紹經典的拉格朗日插值公式。拉格朗日插值公式看上去形式較為繁瑣,但是避免了求解方程中未知係數的麻煩,其正確性也不難檢驗。
預備知識
編輯了解多項式基本運算(例如因式分解)、函數的概念和數列的概念即可。
考試要求
編輯本節內容不是考試範圍,對拓展知識毫無興趣的讀者可以直接跳過本節。
基礎知識
編輯插值問題與簡單的插值方法
編輯插值(interpolation)也叫做內插,是尋找圖象通過有限多個已知點的未知函數的解析式的過程,也即將散點用函數穿插起來。如果只是尋找圖象儘量接近有限多個已知點的未知函數的解析式,那麼這樣的過程就叫做函數的擬合(fitting)。插值是要求函數曲線或圖象必須通過已知各點的特殊擬合。
本節只論述平面上點集合的插值問題,並且假定所有給定點在平面直角坐標系中的x坐標各不相同。我們的大體思路是通過選取合適的獨立函數作為基底,然後帶入已知數據解方程組的方法確定所需的插值函數。
現在我們希望求解依次通過平面上3個指定點 的插值公式。
不妨設插值函數具有多項式的形式,插值多項式如果存在,那麼顯然也是形式最常見、最容易理解的解(雖然答案並非只能是多項式)。由於已知的是坐標確定的3個點,而由3個已知條件一般可以確定的是包含3個待定參數的未知多項式,我們知道包含3個待定係數的最簡單的多項式為二次函數,所以可以嘗試設所求的插值多項式為二次函數 。
將已知的3個點的坐標帶入所設的二次函數可得:
由於 都已知,這是一個以a、b、c為未知係數的三元一次方程組。由這3個方程容易求出所需的a、b、c的值(這裡暫不考慮線性方程組解的存在性和唯一性等技術細節),從而確定所需二次函數的具體系數,從而得到所需的插值公式。
由於多階等差數列的通項公式正好是高次多項式,這種使用多項式進行插值的方法也可以看成是將點序列視作多階等差數列求解。
知識背景: 這種方法類似於利用合適的冪級數來逼近特定已知函數。插值問題中所求的插值函數不一定必須取多項式的形式,甚至滿足條件的多項式取法也有很多,例如可以是各階切比雪夫多項式、各階勒讓德多項式以及本節下面馬上會介紹的經典的拉格朗日插值多項式。由線性泛函分析和函數逼近理論中的知識可知,只要是滿足函數線性無關條件的函數系都可以用於完美地擬合已知的有限個或無限個離散點。例如由微積分中三角級數構成的事實可知,取係數待定的一列正交的三角函數之和進行插值並求解方程也可以達到目標。如果需要擬合的目標是定義在整個 上的任意已知函數,則所需的函數系還必須是完備的。
相關例題: 求解依次通過平面上3個已知點 的1個插值多項式。
解答:
由於已知3個坐標確定的點,需要由3個條件確定的最簡單的多項式是二次多項式,所以可以設所求的插值多項式為二次多項式:
將已知的3個點的坐標分別作為3組條件代入其中可得:
由於它不滿足二次函數最高次項係數不為零的前提條件,所以實際上得到的是一個一次多項式。故所求的插值多項式可以取為 。
答案: 或其它同樣滿足題意的解。
點評:一般來說,已知n個坐標點,那麼可以設所需的插值多項式具有n-1次多項式的最一般形式。但是在少數情形下,通過代入數值並解方程所得到的結果會自動退化為更簡單的、低於n-1階的多項式。
提示:就上述例題所示的已知3個點的情形而言,所求的插值多項式也可以設置成類似 這種更高次的缺項多項式的形式。只是這樣一來,其計算量會比設置成2次多項式要更大一些,所以並無必要。我們可以藉助計算機軟件求出此時的解為:
很明顯,這樣設也並不是不可以,也能得到滿足題意的解,但是會使求解過程複雜化。一般來說,取滿足需要的最簡便的可行形式即可。
這樣得到的插值多項式一般會隨所給已知點數量和位置的不同而不同,而且給定的已知點的取值可以非常隨意,這也表明符合要求的插值多項式原則上可以有無窮多個。
拉格朗日插值法
編輯上述的待定係數法的明顯不足是需要求解方程組,拉格朗日插值法避免了這個麻煩的步驟。作為代價,它採用了複雜但是巧妙的構造,而且也容易在各個已知點上驗證其正確性。
2個點與3個點的插值
編輯拉格朗日插值法(Lagrange polynomial interpolation)是一種不需要求解方程就可以直接獲得插值函數的方法。它曾被好幾個人獨立地提出過,最後以法國數學家約瑟夫·拉格朗日(1736年-1813年)冠名。
要求經過 這2個固定點的插值函數,拉格朗日插值法給出的答案是:
要求經過 這3個固定點的插值函數,拉格朗日插值法給出的答案是:
多個點的插值
編輯對某個多項式函數,已知有給定的k+1個取值點 ,假設任意兩個不同的xj都互不相同,那麼一般形式的拉格朗日插值公式被定義為:
其中每個 為拉格朗日基本多項式(或稱插值基函數),其表達式為:
拉格朗日基本多項式 的特點是在 上取值為1,在其它的點 上取值為0。
提示:拉格朗日公式給出的的確是多項式,雖然它可能初看上去長得像一連串的分式之和。
拉格朗日插值法的公式結構整齊緊湊,可以直接套用,避免了解方程組的繁瑣,多項式結果的存在性也比較明顯。
擬合數列的通項
編輯由於數列可以看成是取值離散的特殊函數(因此有人也稱呼數列為「整標函數」),我們不多做說明,直接通過例題了解拉格朗日插值法在數列插值中的應用。
相關例題1: 已知數列 滿足 ,求符合給定的這前3項的一個數列通項公式。
解答:
由拉格朗日插值公式可得:
答案: 或其它同樣滿足題意的解。
相關例題2: 已知數列 滿足 ,求符合給定的這前4項的一個數列通項公式。
解答:
答案: 或其它同樣滿足題意的解。
計算機求解
編輯Mathematica
編輯Mathematica軟件提供了專門的內置命令「InterpolatingPolynomial」用於生成最常見的幾種插值多項式,其語法格式為:[2]
InterpolatingPolynomial[{f1,f2,…},x]; (* 构建一个关于 x 的插值多项式,在连续的 x 的整数值 1、2、… 上再生成函数值 f_(i) *)
InterpolatingPolynomial[{{x1,f1},{x2,f2},…},x]; (* 对于函数值 f_(i),对应于 x 的值 x_(i) 构建一个插值多项式 *)
InterpolatingPolynomial[{{{x1,y1,…},f1},{{x2,y2,…},f2},…},{x,y,…}]; (* 构建一个使用变量 x、y、… 的多维插值多项式 *)
InterpolatingPolynomial[{{{x1,…},f1,df1,…},…},{x,…}]; (* 构建一个插值多项式,同时拟合函数值及其导数 *)
可以看到,Mathematica不僅支持本節主要講述的簡單的函數值插值,也支持多元函數的插值,還支持生成可以同時擬合目標函數值及其導數值的插值多項式。
提示:使用多項式同時擬合函數及其導數是一個比較強的限制條件。埃爾米特多項式就是滿足這一要求的例子。
給定有限個點的函數插值示例(因為只有一行命令,分號此時可以不寫):
InterpolatingPolynomial[{{-1, 4}, {0, 2}, {1, 6}}, x];
給定有限個項的數列插值示例:
InterpolatingPolynomial[{1, 4, 9, 16}, n];
補充習題
編輯參考資料
編輯- ↑ (英文)Julius Orion Smith III.Lagrange Interpolation.Center for Computer Research in Music and Acoustics (CCRMA), Stanford University.於2009年12月22日查閱.
- ↑ (簡體中文)InterpolatingPolynomial - Wolfram語言參考資料.Wolfram Alpha官方網站(2020年).
外部連結
編輯- [1](通過交互式動畫演示插值點對所得多項式圖形的影響)
- ↑ (簡體中文)InterpolatingPolynomial - Wolfram Demonstrations Project.Wolfram Alpha官方網站(2011年3月7日).