資源描述:
《樣條插值實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、樣條插值實(shí)驗(yàn)報(bào)告四、三次樣條插值1.樣條函數(shù)插值的原理給定區(qū)間[a,b]上劃分?:a?x0?x1??xn?1?xn?b,若分段函數(shù)S(x)滿足:,n?1上均為x的三次多項(xiàng)式;1.S(x)在各個(gè)子區(qū)間[xi,xi?1],i?0,1,2.S(x)在整個(gè)區(qū)間[a,b]上有直至二階的連續(xù)導(dǎo)數(shù)。則稱S(x)為[a,b]上依次劃分的三次樣條函數(shù),簡(jiǎn)稱樣條函數(shù)。具體地有分段表達(dá)式:?a0x3?b0x2?c0x?d0,x?[x0,x1]?32?a1x?b1x?c1x?d1,x?[x1,x2]?S(x)??a2x3?b2x2?c2x?d2,x?[x2,
2、x3]???an?1x3?bn?1x2?cn?1x?dn?1,x?[xn?1,xn]?共有4n個(gè)參數(shù)ai,bi,ci,di,i?0,1,?S(xi?0)?S(xi?0),?''?S(xi?0)?S(xi?0),i?1,2,?''''S(x)?S(xi?0),i?0?(1),n,它們?cè)趦?nèi)節(jié)點(diǎn)處滿足,n?1.(2)滿足樣條函數(shù)定義的函數(shù)集合稱為分劃?上的三次樣條函數(shù)空間,記為S(3,?),可以證明S(3,?)為線性空間。若S(x)?S(3,?),且進(jìn)一步滿足插值條件S(xi)?yi?f(xi
3、),i?0,1,,n(3)其中yi為節(jié)點(diǎn)xi處的給定函數(shù)值(若被插函數(shù)f(x)已知,則用f(xi)代替之),則稱S(x)為以x0,x1,,xn?1,xn為節(jié)點(diǎn)的三次樣條函數(shù)。其中式(3)插值節(jié)點(diǎn)提供了n?1個(gè)約束條件,加上式(2)的3n?3個(gè),合起來(lái)共有4n?2個(gè),欲求4n個(gè)待定參數(shù)的唯一解,尚缺兩個(gè)條件。這兩個(gè)條件一般由樣條函數(shù)的邊界條件提供。常用三類邊界條件,他們分別與三次樣條函數(shù),構(gòu)成不同邊界條件的樣條函數(shù)插值問(wèn)題。2.三類樣條函數(shù)插值問(wèn)題2.1第二類邊界條件給定邊界條件兩端的一階導(dǎo)數(shù)值:''S'(x0)
4、?y0?m0,S'(xn)?yn?mn這相當(dāng)于樣條兩短處的方向給定(壓鐵在兩端點(diǎn)的壓力方向確定),對(duì)應(yīng)的插值問(wèn)題如下:對(duì)于分劃?:a?x0?x1??xn??1xn?b,給定節(jié)點(diǎn)對(duì)應(yīng)的函數(shù)值y0,y1,y2,S(x),使'',yn,以及兩端點(diǎn)處的一階導(dǎo)數(shù)值y0?m0,yn?mn,求三次樣條函數(shù)??S(xi)?yi,i?0,1,,n?''??S(x0)?m0,S(xn)?mn2.2第一類邊界條件給定邊界兩端的二階導(dǎo)數(shù)值:''''S''(x0)?y0?M
5、0,S''(xn)?yn?Mn這相當(dāng)于在樣條兩端處外加一個(gè)力矩,使梁兩端點(diǎn)處有相應(yīng)的曲率。對(duì)應(yīng)的插值問(wèn)題如下:對(duì)于劃分?:a?x0?x1??xn??1xn?b,給定節(jié)點(diǎn)對(duì)應(yīng)的函數(shù)值y0,y1,y2,S(x),使'',yn,以及兩端點(diǎn)處的二階導(dǎo)數(shù)值y0?m0,yn?mn,求三次樣條函數(shù)??S(xi)?yi,i?0,1,2,,n?''''S(x)?M,S(x)?M?00nn?''''特別地,若y0?M0?0,yn?Mn?0,這相當(dāng)于樣條邊界上不
6、加力矩,樣條在邊界處是自由的,這樣的樣條稱為自由樣條,邊界條件稱為“自由邊界條件”。2.3第三類邊界條件被插函數(shù)f(x)是以xn?x0為周期的周期函數(shù)時(shí),則要求S(x)也是周期函數(shù),此時(shí)邊界條件應(yīng)滿足:?S(x0?0)?S(xn?0),?''?S(x0?0)?S(xn?0),?''''?S(x0?0)?S(xn?0),而且還要加上y0?yn。這樣得出的S(x)稱為周期樣條插值函數(shù)。3.三次樣條插值問(wèn)題的實(shí)際求解本部分分別編寫(xiě)了三次樣條插值在第一類邊界條件(二階導(dǎo)數(shù)),第二類邊界條件(一階
7、導(dǎo)數(shù)),第三類邊界條件(周期函數(shù))下求解的matlab程序,并給出了實(shí)際例子進(jìn)行求解。3.1第一類邊界條件的插值求解程序function[f,f0]=spline1(x,y,y_1,y_N,x0)symst;f=0.0;f0=0.0;if(length(x)==length(y))n=length(x);elsedisp('x和y維數(shù)不相等');return;end%維數(shù)檢查fori=1:nif(x(i)<=x0)&&(x(i+1)>=x0)index=i;break;endend%找到待求
8、解x0值所在的區(qū)間A=diag(2*ones(1,n));%求解m的系數(shù)矩陣u=zeros(n-2,1);lamda=zeros(n-1,1);c=zeros(n,1);fori=2:n-1u(i-1)=(x(i)-x(