※數據插值和應用樣例分析

數據插值可以根據有限個點的取值情況,合理估算出附近其它點的取值,從而節約大量的實驗和測試資源,節省大量的人力物力和財力。
從數學上講,數據插值是一種函數逼近的方法。
interp1()

一維插值函數

例:
Y1=interp1(X,Y,X1,method)
根據X、Y的值,計算函數在X1處的值,其中,X、Y是兩個等長的已知向量,分別表示採樣點和採樣值,X1是一個向量或標量,表示要插值的點。

method函數:

1.linear線性插值,默認方法,將於插值點靠近的兩個數據點用直線鏈接,然後在直線上選取對應插值點的數據。
2.nearest最近點插值,選擇最近樣本點的值作爲插值數據。
3.pchip分段三次埃爾米特插值,除滿足插值條件之外,還需要滿足在若干節點處相鄰段插值函數的一階導數相等,使得曲線光滑的同時,還具有保型性。(就是說曲線連續)
4.spline三次樣條插值,每個分段內構造一個三次多項式,使其插值函數除了滿足插值條件以外,還要求在個結點處具有連續的一階和二階導數。

爲什麼不用更高階的多項式?

多項式並非越高越好,次數越高,越容易產生震盪而偏離原函數,這種現象稱爲龍格(Runge)現象。

函數插值的簡單使用範例:

我用y=x^2來作爲示範

>> x=-2:1:2;
>> y=[4,1,0,1,4];
>> x1=-2:0.01:2;
>> y1=interp1(x,y,x1,'spline');
>> plot(x1,y1)

我們先給定了x和y的五個相對應的函數值,然後用數據插值函數得到步長爲0.01的很多不同的x對應的y值
效果圖:
在這裏插入圖片描述
作爲對比,如果不進行插值,圖像 plot(x,y)是這樣的:
在這裏插入圖片描述
所以插值函數確實很神奇,也在數據分析中及其有用,這也是我做這個博客的目的。
tips:x,y必須是取值一一對應的,否則會返回

錯誤使用 griddedInterpolant
網格矢量未定義與給定值匹配的點網格。
四種method函數的比較
先看一個實例:
在這裏插入圖片描述

>> x=[0,3,5,7,9,11,12,13,14,15];
>> y=[0,1.2,1.7,2.0,2.1,1.8,1.2,1.0,1.6];
>> x1=0:0.1:1.5;
>> y1=interp1(x,y,x1,'spline');
錯誤使用 griddedInterpolant
網格矢量未定義與給定值匹配的點網格。

出錯 interp1 (line 161)
        F = griddedInterpolant(X,V,method);
 
>> y=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6];
>> y1=interp1(x,y,x1,'spline');
>> plot(x1,y1);
>>  x1=0:0.1:15;
>> y1=interp1(x,y,x1,'spline');
>>  plot(x1,y1);
>> 

在這裏插入圖片描述

機動車剎車距離問題

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章