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