x=0:2*pi;
y=sin(x);
xx=0:0.5:2*pi;
%interp1對sin函式進行分段線性插值,呼叫interp1的時候,預設的是分段線性插值
y1=interp1(x,y,xx);
figure
plot(x,y,'o',xx,y1,'r')
title('分段線性插值')
%臨近插值
y2=interp1(x,y,xx,'nearest');
figure
plot(x,y,'o',xx,y2,'r');
title('臨近插值')
%球面線性插值
y3=interp1(x,y,xx,'spline');
figure
plot(x,y,'o',xx,y3,'r')
title('球面插值')
%三次多項式插值法
y4=interp1(x,y,xx,'cubic');
figure
plot(x,y,'o',xx,y4,'r');
title('三次多項式插值')
(1) nearest方法速度最快,占用記憶體最小,但一般來說誤差最大,插值結果最不光滑。
(2) spline三次樣條插值是所有插值方法中執行耗時最長的,插值函式及其一二階導函式都連續,是最光滑的插值方法。占用記憶體比cubic方法小,但是已知資料分布不均勻的時候可能出現異常結果。
(3) cubic三次多項式插值法中,插值函式及其一階導數都是連續的,所以插值結果比較光滑,速度比spline快,但是占用記憶體最多。
語法形式
說明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函式替代
『cubic』
同』pchip』,三次hermite多項式插值
matlab 插值函式
matlab中的插值函式為interp1,其呼叫格式為 yi interp1 x,y,xi,method 其中x,y為插值點,yi為在被插值點xi處的插值結果 x,y為向量,method 表示採用的插值方法,matlab提供的插值方法有幾種 method 是最鄰近插值,linear 線性插值 spl...
函式插值計算(Matlab程式)
runge函式插值計算 參考教材 數值分析 李乃成,梅立泉,科學出版社 計算方法教程 第二版 凌永祥,陳明逵 runge函式f x 1 25x 2 1 1clear clc close all format short fprintf 輸入n 5,10,15,20 n n input ni 0 n ...
小觀matlab插值函式
插值與擬合是數值分析中的重要內容,我們來看看matlab中的插值函式。x,y,z,v flow 8 flow是matlab自帶的測試函式 slice x,y,z,v,3,5 2,2,3 畫切片圖 title 插值前 xi,yi,zi meshgrid 0.1 0.25 10,3 0.25 3,3 0...