MATLAB插值函式interp1

2021-08-21 09:46:17 字數 2769 閱讀 4956

插值法又稱「內插法」,是利用函式f (x)在某區間中已知的若干點的函式值,作出適當的特定函式,在區間的其他點上用這特定函式的值作為函式f (x)的近似值,這種方法稱為插值法。如果這特定函式是多項式,就稱它為插值多項式。

線性插值法是指使用連線兩個已知量的直線來確定在這兩個已知量之間的乙個未知量的值的方法。

假設我們已知座標(x0,y0)與(x1,y1),要得到[x0,x1]區間內某一位置x在直線上的值。根據圖中所示,我們得到兩點式直線方程:

假設方程兩邊的值為α,那麼這個值就是插值係數—從x0到x的距離與從x0到x1距離的比值。由於x值已知,所以可以從公式得到α的值:

同樣:這樣,在代數上就可以表示成為:

y = (1 − α)y0 + αy1

或者,y = y0 + α(y1 − y0)

這樣通過α就可以直接得到 y。實際上,即使x不在x0到x1之間並且α也不是介於0到1之間,這個公式也是成立的。在這種情況下,這種方法叫作線性外插—參見 外插值。

已知y求x的過程與以上過程相同,只是x與y要進行交換。

%

x= 0

: 2

*pi;

y= sin

( x

);

xx =

0: 0

. 5

: 2

*pi;

% interp1對

sin函式進行分段線性插值,呼叫interp1的時候,預設的是分段線性插值

y1 = interp1(

x, y

,xx,

』linear』

);

subplot(

2, 2

, 1

);

plot(

x, y

, 』o』

,xx,y1,

』r』)

title(

』分段線性插值』

)

% 臨近插值

y2 = interp1(

x, y

,xx,

』nearest』

);

subplot(

2, 2

, 2

);

plot(

x, y

, 』o』

,xx,y2,

』r』);

title(

』臨近插值』

)

%球面線性插值

y3 = interp1(

x, y

,xx,

』spline』

);

subplot(

2, 2

, 3

);

plot(

x, y

, 』o』

,xx,y3,

』r』)

title(

』球面插值』

)

%三次多項式插值法

y4 = interp1(

x, y

,xx,

』pchip』

);

subplot(

2, 2

, 4

);

plot(

x, y

, 』o』

,xx,y4,

』r』);

title(

』三次多項式插值』

% 結果為:

27.8725

% 若要得到一天

24小時的溫度曲線,則:

xi =

0: 1

/ 3600

: 24

;

% 插值點可以是向量,則返回的也就是對應的向量

matlab 插值函式

matlab中的插值函式為interp1,其呼叫格式為 yi interp1 x,y,xi,method 其中x,y為插值點,yi為在被插值點xi處的插值結果 x,y為向量,method 表示採用的插值方法,matlab提供的插值方法有幾種 method 是最鄰近插值,linear 線性插值 spl...

Matlab插值函式

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

函式插值計算(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 ...