Matlab插值函式

2022-02-24 11:44:07 字數 1856 閱讀 3295

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...