MATLAB編程與應(yīng)用系列-第5章 多項(xiàng)式與數(shù)據(jù)分析(2)

本系列教程來(lái)源于出版設(shè)計(jì)《基于MATLAB編程基礎(chǔ)與典型應(yīng)用書(shū)籍》,如涉及版權(quán)問(wèn)題,請(qǐng)聯(lián)系:156204968@qq.com。 出版社:人民郵電出版社, 頁(yè)數(shù):525。

本系列教程目前基于MATLABR2006a,可能對(duì)于更高級(jí)版本的功能和函數(shù)有差異,教程中如有問(wèn)題,請(qǐng)聯(lián)系:156204968@qq.com

5.2 數(shù)據(jù)插值

插值運(yùn)算是根據(jù)數(shù)據(jù)點(diǎn)的規(guī)律,首先找到一個(gè)多項(xiàng)式連接這些已知的數(shù)據(jù)點(diǎn),然后根據(jù)該多項(xiàng)式計(jì)算出要得到的與已知數(shù)據(jù)點(diǎn)相鄰的點(diǎn)對(duì)應(yīng)的數(shù)值。數(shù)據(jù)的插值運(yùn)算在信號(hào)和圖象處理等領(lǐng)域使用比較廣泛。MATLAB提供了專用的函數(shù)來(lái)處理數(shù)據(jù)的插值問(wèn)題,下面將詳細(xì)的介紹使用這些插值函數(shù)的方法。

5.2.1 一維數(shù)據(jù)插值

一維插值是指對(duì)一個(gè)自變量的插值,實(shí)現(xiàn)一維數(shù)據(jù)插值的函數(shù)是interp1,該函數(shù)的調(diào)用格式為:

Y1=interp1(X,Y,X1,'method')

interp1函數(shù)的功能是根據(jù)X,Y的值,計(jì)算出在X1處的值,并返回給Y1。其中,X和Y是兩個(gè)等長(zhǎng)的已知向量,分別描述采樣點(diǎn)和樣本值;X1是一個(gè)向量或標(biāo)量,描述欲插值的點(diǎn),返回值Y1是與X1等長(zhǎng)的插值結(jié)果;method是插值函數(shù)的類型,允許的取值有“l(fā)inear”(線性插值)、“nearest”(用最接近的相鄰點(diǎn)插值)、“cubic”(三次插值)和“spline”(三次樣條插值),linear為默認(rèn)值。

注意:X1的取值范圍不能超出X的給定范圍,否則,會(huì)給出“NaN”錯(cuò)誤。

除此之外,MATLAB還提供了一個(gè)專門(mén)的用于3次樣條插值的函數(shù)spline,功能與函數(shù)Y1=interp1(X,Y,X1,‘spline’)完全相同,使用方法也類似。該函數(shù)的調(diào)用格式如下:

Y1=spline(X,Y,X1)

【例5.8】一維數(shù)據(jù)插值
在命令窗口輸入以下內(nèi)容,生成用于一維插值運(yùn)算的數(shù)據(jù)h和k。
>> h=0:0.3:5;
>> k=cos(h); %生成插值運(yùn)算數(shù)據(jù)點(diǎn)
下面分別采用不同的插值函數(shù)類型進(jìn)行插值,用戶可以通過(guò)該示例對(duì)比以下插值的計(jì)算結(jié)果。參數(shù)method分別取值‘linear’、‘nearest’、‘cubic’、‘spline’時(shí)的具體操作如下,讀者可自行比較采用不同插值方法的計(jì)算精度:
>> Y1=interp1(h,k,2,'linear') %采用線形函數(shù)插值
>> Y1=interp1(h,k,2,'nearest') %采用最近鄰插值
>> Y1=interp1(h,k,2,'cubic') %采用三次多項(xiàng)式插值
>> Y1=interp1(h,k,2,'spline') %采用三次樣條插值
>> Y1=spline(h,k,2) %三次樣條插值

注意:不同的插值函數(shù)具有不同的計(jì)算特性,適用的場(chǎng)合也不同,用戶使用時(shí)一定要根據(jù)具體的應(yīng)用選用不同的插值函數(shù)。linear最常用,計(jì)算的速度也較快,是插值函數(shù)的缺省設(shè)置;cubic和spline插值效果的平滑性較好,插值的精度比較高,但是計(jì)算的速度也相應(yīng)的減慢;nearst的計(jì)算速度最快,但是精度比較低,平滑性較差。

5.2.2 二維數(shù)據(jù)插值

除前面介紹的一維數(shù)據(jù)的插值,MATLAB還提供用于解決二維插值問(wèn)題的函數(shù)interp2,該函數(shù)的調(diào)用格式為:

Z1=interp2(X,Y,Z,X1,Y1,'method')

其中,X和Y是兩個(gè)向量,分別描述兩個(gè)參數(shù)的采樣點(diǎn),Z是與參數(shù)采樣點(diǎn)對(duì)應(yīng)的函數(shù)值,X1,Y1是兩個(gè)向量或標(biāo)量,描述欲插值的點(diǎn)。返回值Z1是根據(jù)相應(yīng)的插值方法得到的插值結(jié)果。method的取值與一維插值函數(shù)相同。X,Y,Z也可以是矩陣形式。

注意:X1,Y1的取值范圍不能超出X,Y的給定范圍,否則,會(huì)給出“NaN”錯(cuò)誤。

【例5.9】二維數(shù)據(jù)插值
在命令窗口輸入以下內(nèi)容,生成用于二維插值運(yùn)算的數(shù)據(jù)如下所示:
>> x=0:2.5:10
>> h=[0:30:60]'
>> T=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41]
>> xi=[0:10]
>> hi=[0:20:60]'
使用函數(shù)interp2進(jìn)行插值運(yùn)算,T必須為矩陣形式,即至少是2x2階以上的矩陣。在命令窗口中輸入如下內(nèi)容:
>> TI=interp2(x,h,T,xi,hi) %使用函數(shù)interp2進(jìn)行插值運(yùn)算

注意:Z必須為矩陣形式,即至少是2x2階以上的矩陣。

5.3 曲線擬合

多項(xiàng)式曲線擬合是用一個(gè)多項(xiàng)式來(lái)逼近一組給定的數(shù)據(jù),擬合的準(zhǔn)則是最小二乘法,即找出使\rm{min} \sum_{i=1}^n||f(x_i)-y_i||^2f(x).
在MATLAB中,用polyfit函數(shù)來(lái)求得最小二乘擬合多項(xiàng)式的系數(shù),計(jì)算得到多項(xiàng)式后可以用polyval函數(shù)計(jì)算所給出點(diǎn)的近似值。polyfit函數(shù)的調(diào)用格式為:

[P,S]=polyfit(X,Y,m)

polyfit函數(shù)根據(jù)采樣點(diǎn)X和采樣點(diǎn)函數(shù)值Y,返回一個(gè)m次多項(xiàng)式P及供polyval使用的結(jié)構(gòu)數(shù)組S,S有三個(gè)域:S.R給出QR分解后滿足Q·R=V的矩陣R,S.df給出相應(yīng)χ2量的自由度,S.normr給出擬合殘數(shù)的2—范數(shù)。其中X,Y是兩個(gè)等長(zhǎng)的向量,P是一個(gè)長(zhǎng)度為m+1的向量,P的元素為多項(xiàng)式系數(shù)。

【例5.10】曲線擬合
在命令窗口輸入以下內(nèi)容,生成用于曲線擬合的數(shù)據(jù)如下所示:
>> A=[1 2 3 4 5 5 3 4 8 5 6 8 7 6 9 2 6 8 2 1 2 7 9 3 9 ] %數(shù)據(jù)點(diǎn)X軸
>> B=[5 3 4 8 5 6 8 7 6 9 2 6 8 2 1 2 7 9 3 9 4 5 6 7 8 ] %數(shù)據(jù)點(diǎn)Y軸
>> x=1:1:10 %擬合數(shù)據(jù)點(diǎn)
①根據(jù)采樣點(diǎn)A和采樣點(diǎn)函數(shù)值B,產(chǎn)生一個(gè)2次多項(xiàng)式P及供polyval使用的結(jié)構(gòu)數(shù)組S。在命令窗口輸入:
>> [P,S]=polyfit(A,B,2) %產(chǎn)生一個(gè)2次多項(xiàng)式P
調(diào)用polyfit函數(shù)得到二次多項(xiàng)式各項(xiàng)系數(shù)如下:
P =
-0.0357 0.4527 4.4691
用ployval函數(shù)計(jì)算擬合多項(xiàng)式在給定點(diǎn)的函數(shù)值。在命令行窗口中輸入以下命令:

>> Y=polyval(P,x) %根據(jù)多項(xiàng)式系數(shù)向量計(jì)算對(duì)應(yīng)點(diǎn)x處的擬合函數(shù)值
即可計(jì)算得到擬合多項(xiàng)式在給定點(diǎn)的函數(shù)值。

注意:曲線擬合時(shí)正確選擇所要擬合的多項(xiàng)式的階是很重要的,并不是擬合多項(xiàng)式的階越高精度越好,為了保證擬合的精度,一般擬合多項(xiàng)式的階不超過(guò)5階。

作者:德特?cái)?shù)據(jù)
聯(lián)系方式:156204968@qq.com

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、基礎(chǔ)部分1.類型別名 2.if條件語(yǔ)句swift中,if條件語(yǔ)句里面必須是boolen類型的值,和oc不同3....
    crossyf閱讀 381評(píng)論 0 0
  • 春天,是多夢(mèng)的季節(jié)。十多天前,做完兩個(gè)夢(mèng)之后,我接著做了第三個(gè)夢(mèng)。夢(mèng)的內(nèi)容是—— 我的初中老師,后來(lái)轉(zhuǎn)行做了縣上的...
    海月先生閱讀 1,297評(píng)論 3 16
  • 回家 原來(lái),最想念的是家鄉(xiāng)的藍(lán)天白云
    久念落塵閱讀 203評(píng)論 0 1
  • 俗話說(shuō)什么因結(jié)什么果,這話可一點(diǎn)都沒(méi)錯(cuò)。 最近看到一篇文章,內(nèi)容主要說(shuō)如果你裸辭了,失業(yè)期間你是吃老本還是怎么辦?...
    LIli狐閱讀 231評(píng)論 0 0
  • 1.感恩此刻還活在天地間,太棒了,呼吸在一切在,我相信一切都會(huì)越來(lái)越好的,祝福我自己! 2.感恩我的父母,她們不在...
    利益眾生閱讀 120評(píng)論 0 0

友情鏈接更多精彩內(nèi)容