天天看點

matlab—回歸與内插(完結)

十七、拟合(回歸)與内插

17.1 polyfit()

    假設目前有一組身高資料,與其對應的有一組體重資料,我們要分析兩者之間是否有某種關聯,這時就需要用到曲線拟合函數polyfit,其調用格式為:fit = polyfit(xdata,ydata,n),其中n表示多項式的最高階數,xdata,ydata為将要拟合的資料,輸出的參數fit為n+1個系數,一般情況polyfit與polyval一起使用,進行繪圖

    示例:

matlab—回歸與内插(完結)

圖17-1 polyfit函數

17.2 scatter() and

corrcoef()

    這裡我們要介紹兩個函數,一個是畫散點圖的函數scatter,其調用格式為:scatter(xdata,ydata)

    另一個是求出x-y之間線性系數大小的函數corrcoef,其調用格式為:corrcoef(xdata,ydata),這裡要說明一點,corrcoef函數傳回的是一個2*2的矩陣,(1,1)和(2,2)分别是x-x和y-y的相關系數,必定是1,(1,2)和(2,1)分别是x-y和y-x的相關系數,必定相等

    示例:

matlab—回歸與内插(完結)

圖17-2 corrcoef and scatter

17.3 regress()

    Regress函數的作用也是做資料拟合,隻不過它所呈現的資訊更多,其調用格式為:[b,bint,r,rint,stats] =

regress(y,x,alpha)

    參數說明:

    y 多元拟合的變量值的向量

    x 多元拟合的自變量的值的矩陣

    alpha 顯著性水準,預設的時候為0.05

    b 回歸得到的自變量系數

    bint b的95%的置信區間矩陣

    r 殘差向量

    rint 區間矩陣

17.4 插值

    拟合與插值是數學模組化中常用的兩種資料分析的方法,前三節我們講的内容全部都是關于拟合的,下面我們要講的是插值。拟合與插值不同的地方在于,拟合出的函數曲線不一定會經過所有的點,隻能說大概呈現一個趨勢,而插值一定會經過所有的資料點

    那麼插值的作用是什麼呢,我們知道拟合的作用是呈現趨勢,插值的作用:比如我們已知t=1時,a=2,t=2時,a=3,那麼t=1.5時,a=多少呢?是以插值就是幫助我們求某處的資料值

    其調用格式為:yi=interp1(x,y,xi),其中,x,y是我們已知的資料值,我們現在要求,經過一系列(x,y)點的曲線在xi時對應的yi值

文法形式 說明
y=interp1(x,Y,xi) 由已知點集(x,Y)插值計算xi上的函數值
y=interp1(x,Y,xi) 相當于x=1:length(Y)的interp(x,Y,xi)
y=interp1(x,Y,xi,method) 用指定插值方法計算插值點xi上的函數值
y=interp1(x,Y,xi,method,’extrap’) 對xi中超出已知點集的插值點用指定插值方法計算函數值
y=interp1(x,Y,xi,method,’extrap’,extrapval) 用指定方法插值xi上的函數值,超出已知點集處函數值取extrapval
y=interp1(x,Y,xi,method,’pp’) 用指定方法插值,但傳回結果為分段多項式
Method 方法描述
Nearest 最鄰近插值:插值點處函數值與插值點最鄰近的已知點函數值相等
liner 分段線性插值:插值點處函數值由連接配接其最鄰近的兩側點的線性函數預測。Matlab中interp1的預設方法
spline 樣條插值:預設為三次樣條插值。可用spline函數替代
pchip 三次Hermite多項式插值,可用pchip函數替代

(1)Nearest方法速度最快,占用記憶體最小,但一般來說誤差最大,插值結果最不光滑

(2)Spline三次樣條插值是所有插值方法中運作耗時最長的,插值函數及其一二階導函數都連續,是最光滑的插值方法。占用記憶體比cubic方法小,但是已知資料分布不均勻的時候可能出現異常結果

(3)Cubic三次多項式插值法中,插值函數及其一階導數都是連續的,是以插值結果比較光滑,速度比Spline快,但是占用記憶體最多

    示例:

matlab—回歸與内插(完結)

圖17-3 插值

    當然,插值不止可以用于平面中,還可以用于三維圖中,函數是interp2,參數及方法類似,zi = interp2(x,y,z,xi,yi,method),讀者下去練習即可

十八、作者結語

    matlab系列文章已全部更完,如有任何錯誤或者建議歡迎指出,同時歡迎各位讀者加入部落格交流群689696631。最後,如果你是看了我的系列文章準備參加美賽,祝你取得好成績