資源描述:
《matlab中插值擬合與查表》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、MATLAB中的插值、擬合與查表插值法是實(shí)用的數(shù)值方法,是函數(shù)逼近的重要方法。在生產(chǎn)和科學(xué)實(shí)驗(yàn)中,自變量x與因變量y的函數(shù)y=f(x)的關(guān)系式有時不能直接寫出表達(dá)式,而只能得到函數(shù)在若干個點(diǎn)的函數(shù)值或?qū)?shù)值。當(dāng)要求知道觀測點(diǎn)之外的函數(shù)值時,需要估計函數(shù)值在該點(diǎn)的值。如何根據(jù)觀測點(diǎn)的值,構(gòu)造一個比較簡單的函數(shù)y=φ(x),使函數(shù)在觀測點(diǎn)的值等于已知的數(shù)值或?qū)?shù)值。用簡單函數(shù)y=φ(x)在點(diǎn)x處的值來估計未知函數(shù)y=f(x)在x點(diǎn)的值。尋找這樣的函數(shù)φ(x),辦法是很多的。φ(x)可以是一個代數(shù)多項(xiàng)式,或是三角多項(xiàng)式,也可以是有理分式;φ(x
2、)可以是任意光滑(任意階導(dǎo)數(shù)連續(xù))的函數(shù)或是分段函數(shù)。函數(shù)類的不同,自然地有不同的逼近效果。在許多應(yīng)用中,通常要用一個解析函數(shù)(一、二元函數(shù))來描述觀測數(shù)據(jù)。根據(jù)測量數(shù)據(jù)的類型:1.測量值是準(zhǔn)確的,沒有誤差。2.測量值與真實(shí)值有誤差。這時對應(yīng)地有兩種處理觀測數(shù)據(jù)方法:1.插值或曲線擬合。2.回歸分析(假定數(shù)據(jù)測量是精確時,一般用插值法,否則用曲線擬合)。MATLAB中提供了眾多的數(shù)據(jù)處理命令。有插值命令,有擬合命令,有查表命令。2.2.1插值命令命令1interp1功能一維數(shù)據(jù)插值(表格查找)。該命令對數(shù)據(jù)點(diǎn)之間計算內(nèi)插值。它找出一元函數(shù)
3、f(x)在中間點(diǎn)的數(shù)值。其中函數(shù)f(x)由所給數(shù)據(jù)決定。各個參量之間的關(guān)系示意圖為圖2-14。格式y(tǒng)i=interp1(x,Y,xi)%返回插值向量yi,每一元素對應(yīng)于參量xi,同時由向量x與Y的內(nèi)插值決定。參量x指定數(shù)據(jù)Y的點(diǎn)。若Y為一矩陣,則按Y的每列計算。yi是階數(shù)為length(xi)*size(Y,2)的輸出矩陣。yi=interp1(Y,xi)%假定x=1:N,其中N為向量Y的長度,或者為矩陣Y的行數(shù)。yi=interp1(x,Y,xi,method)%用指定的算法計算插值:’nearest’:最近鄰點(diǎn)插值,直接完成計算;’l
4、inear’:線性插值(缺省方式),直接完成計算;’spline’:三次樣條函數(shù)插值。對于該方法,命令interp1調(diào)用函數(shù)spline、ppval、mkpp、umkpp。這些命令生成一系列用于分段多項(xiàng)式操作的函數(shù)。命令spline用它們執(zhí)行三次樣條函數(shù)插值;’pchip’:分段三次Hermite插值。對于該方法,命令interp1調(diào)用函數(shù)pchip,用于對向量x與y執(zhí)行分段三次內(nèi)插值。該方法保留單調(diào)性與數(shù)據(jù)的外形;’cubic’:與’pchip’操作相同;’v5cubic’:在MATLAB5.0中的三次插值。對于超出x范圍的xi的分量,
5、使用方法’nearest’、’linear’、’v5cubic’的插值算法,相應(yīng)地將返回NaN。對其他的方法,interp1將對超出的分量執(zhí)行外插值算法。yi=interp1(x,Y,xi,method,'extrap')%對于超出x范圍的xi中的分量將執(zhí)行特殊的外插值法extrap。yi=interp1(x,Y,xi,method,extrapval)%確定超出x范圍的xi中的分量的外插值extrapval,其值通常取NaN或0。例2-31>>x=0:10;y=x.*sin(x);>>xx=0:.25:10;yy=interp1(x,y
6、,xx);>>plot(x,y,'kd',xx,yy)例2-32>>year=1900:10:2010;>>product=[75.99591.972105.711123.203131.669150.697179.323203.212226.505249.633256.344267.893];>>p1995=interp1(year,product,1995)>>x=1900:1:2010;>>y=interp1(year,product,x,'pchip');>>plot(year,product,'o',x,y)插值結(jié)果為:p1995
7、=252.9885命令2interp2功能二維數(shù)據(jù)內(nèi)插值(表格查找)格式ZI=interp2(X,Y,Z,XI,YI)%返回矩陣ZI,其元素包含對應(yīng)于參量XI與YI(可以是向量、或同型矩陣)的元素,即Zi(i,j)←[Xi(i,j),yi(i,j)]。用戶可以輸入行向量和列向量Xi與Yi,此時,輸出向量Zi與矩陣meshgrid(xi,yi)是同型的。同時取決于由輸入矩陣X、Y與Z確定的二維函數(shù)Z=f(X,Y)。參量X與Y必須是單調(diào)的,且相同的劃分格式,就像由命令meshgrid生成的一樣。若Xi與Yi中有在X與Y范圍之外的點(diǎn),則相應(yīng)地返
8、回nan(NotaNumber)。ZI=interp2(Z,XI,YI)%缺省地,X=1:n、Y=1:m,其中[m,n]=size(Z)。再按第一種情形進(jìn)行計算。ZI=interp2(Z,n)