于振廷
摘 要:二次樣條插值在工程設(shè)計(jì)上被廣泛應(yīng)用,且具有計(jì)算簡(jiǎn)單、穩(wěn)定性好、收斂快等特點(diǎn)。憑借定義討論給定一階導(dǎo)數(shù)值時(shí)的二次樣條插值,并根據(jù)數(shù)據(jù)用MATLAB實(shí)現(xiàn)。
關(guān)鍵詞:二次樣條;插值;MATLAB
工程上的許多問(wèn)題,為了顯示其內(nèi)在規(guī)律的數(shù)量關(guān)系,我們都可用數(shù)學(xué)函數(shù)的思想y=f(x)來(lái)表示。有些問(wèn)題其計(jì)算量大且較為復(fù)雜,難以還原準(zhǔn)確的f(x)。[ 1 ]因此我們引入差值概念,用分段多項(xiàng)式P(x)近似f(x)。
一、二次樣條插值的特點(diǎn)
二次樣條插值是一種低階次的插值,與高階次插值相比較,它具有計(jì)算簡(jiǎn)單、穩(wěn)定性好、收斂性有保證且易在電子計(jì)算機(jī)上實(shí)現(xiàn)等特點(diǎn),同時(shí)能保證在連接處的連續(xù)性及一階導(dǎo)數(shù)的連續(xù)性。[ 2 ]
二、二次樣條差值的定義
給定區(qū)間[a,b],取n+1個(gè)點(diǎn)分別x0,x1,x2,…xn,另a=x0,b=xn,二次樣條函數(shù)S(x)滿(mǎn)足以下條件:
1)S(x)在每個(gè)區(qū)間間隔[xi-1,xi](i=1,2,…,n)上是一個(gè)二階多項(xiàng)式;
2)S(x)在每一個(gè)內(nèi)接點(diǎn)xi(i=1,2,…,n-1)上具有一階的連續(xù)導(dǎo)數(shù);
3)S(x)在所有節(jié)點(diǎn)滿(mǎn)足S(xi)=yi(i=0,1,2,…,n)。
這樣就可以確定3n-1個(gè)方程,并在[a,b]的兩個(gè)端點(diǎn)處增加一個(gè)條件,這樣就能確定一個(gè)特定的二次樣條插值函數(shù)。這個(gè)條件即邊界條件,本文僅討論給定初始端點(diǎn)的一階導(dǎo)數(shù)值: (x0)= 0的情況。[ 3 ]
三、二次樣條插值的計(jì)算
給定初始端點(diǎn)一階導(dǎo)數(shù)值: (x0)= 0:[ 4 ]
在區(qū)間[x0,x1]內(nèi),已知S(x0)=y0,S(x1)=y1和 (x0)= 0,由Hermite插值公式可知:
S(x)= (x-x0)2+ 0(x-x0)+y0 (1)
其中hi=xi+1-xi(i=1,2,…,n-1),此時(shí), 1= (x1)= - 0,同樣加上S(x1)=y1,S(x2)=y2,兩個(gè)條件可推導(dǎo)出區(qū)間[x1,x2]內(nèi)的二次插值函數(shù),以此類(lèi)推得到區(qū)間內(nèi)[xi,xi+1](i=1,2,…,n-1)二次樣條插值函數(shù)為:
S(x)= (x-xi)2+ i(x-xi)+yi(2)
而 i+1可由公式3遞推得到:
i+1= (xi+1)= - i (3)
四、二次樣條插值函數(shù)的MATLAB實(shí)現(xiàn)
我們以y=2sin(x)+1為例,在區(qū)間[0,π]上分為5段并計(jì)算x,y的數(shù)值,如表1,并計(jì)算得出其端點(diǎn)的一階導(dǎo)數(shù)值 =2。
我們僅根據(jù)數(shù)據(jù)x,y, ,用MATLAB的方法計(jì)算二次樣條插值,并畫(huà)出其仿真圖,如圖1。
表1
clear all
syms z;
x=0:(1/5)*pi:pi;y=[1.0000 2.1756 2.9021 2.9021 2.1756 1.0000];
y1(1,1)=2;n1=length(x)-1;
for i=1:1:n1;
A1=(y(1,i+1)-y(1,i)-(x(1,i+1)-x(1,i))*y1(1,i))/(x(1,i+1)-x(1,i))^2;A2=y1(1,i);A3=y(1,i);
y11(1,i)=A1;y12(1,i)=A2-2*A1*x(1,i);y13(1,i)=A1*x(1,i)^2-A2*x(1,i)+A3;
y1(1,i+1)=2*(y(1,i+1)-y(1,i))/(x(1,i+1)-x(1,i))-y1(1,i)
end
for i=1:1:n1
ai=y11(1,i);bi=y12(1,i);ci=y13(1,i);fi=ai*z.^2+bi*z+ci;ezplot(z,fi,[x(1,i),x(1,i+1)]);
hold on;end
由圖1可知二次樣條插值可以很好的還原原函數(shù)。
五、結(jié)語(yǔ)
本文對(duì)二次樣條插值進(jìn)行介紹,并引用數(shù)據(jù)用MATLAB方法計(jì)算二次樣條插值,并給出相應(yīng)的程序以及仿真圖。從結(jié)果上看二次樣條插值計(jì)算簡(jiǎn)單,并可以很好的還原原函數(shù)。
參考文獻(xiàn):
[1] 李慶楊,王能超.數(shù)值分析[M].第五版.北京:清華大學(xué)出版社,2008.12:22.
[2] 許小勇,鐘太勇.三次樣條插值函數(shù)的構(gòu)造與Matlab實(shí)現(xiàn)[J].自動(dòng)測(cè)量與控制,2006,第25卷第11期:76-78.
[3] 李岳生.多點(diǎn)邊值問(wèn)題與樣條插值[J].中國(guó)科學(xué),1983,第二期:147-156.
[4] 劉為,高毅.二次樣條插值研究[J].計(jì)算機(jī)與數(shù)學(xué)工程,2011,第3期:21-24.