(translator=kuo, ChineseSource=kuo-20020619-7\spline.html, EnglishSource=c:\matlabr12\help\techdoc\ref\spline.html)
MATLAB Function Reference    
spline

三次 spline 內插法

Syntax

Description

yy = spline(x,y,xx) 會使用三次 spline 內插方式去求 yy( 函式 y 在向量 xx 的點中的函數值 )。若 y 是一個矩陣,則會以 y 的每一行來作內插再傳回一個向量值, yylength(xx)-by-size(y,2)

pp = spline(x,y) 會傳回分段式的多項式(piecewise polynomial),可以給之後的 ppvalunmkpp 使用。

通常我們會使用 not-a-knot end 這個條件。也就是若 y 的 entry 比 x 多兩個的話,則 y 的第一個和最後一個值會當作末端點斜率(end slopes)來使用,如以下 :

Examples

Example 1. 會產生一個正弦波,在 finer mesh 上對 spline 進行取樣

Example 2. 使用規定的末端點斜率來進行 clamped 或 complete 的 spline 內插。在某些分布之下內插的末端點斜率會強制設為零。

Example 3. 以下兩個向量

表示 1900 至 1990 年間美國人口的分布(單位為百萬)。這個表示式

使用三次 spline 去外插及預測 2000的人口數,結果如下

以下程式碼

會用五個資料點 y(:,2),...,y(:,6) (用 o 表示)來畫一個圓。 yx 多兩個值(即多兩行) ,y(:,1)y(:,end) 當作末端點斜率來使用。

Algorithm

三對角線線性系統可經由 spline 內插來求三次多項式的係數。 spline 會使用 ppvalmkppunmkpp 這些函式,這些函式可以用於處理分段式的多項式。要獲得進一步的資訊可參考其 M-file以及 Spline Toolbox

See Also

interp1, ppval, mkpp, unmkpp

References

[1] de Boor, C., A Practical Guide to Splines, Springer-Verlag, 1978.


 spinmap spones