介紹一種二維線性插值計算方法

scanp002發表於2021-03-17

插值計算方法是工程實踐中經常用到的方法。當獲取的原始資料為離散點狀資料時,就需要通過插值計算方法來獲取離散點之間的資料。常用的插值計算方法有線性插值、樣條插值等,但是這些插值方法通常是一維插值方法,即y=f(x)的情況,對於二維資料即z=f(x,y)的情況應用起來存在一些困難。

首先來簡單介紹一下最簡單的一維插值計算方法。原始資料為一系列的散點,即(x1,y1)、(x2,y2)....(xi,yi),對於任意的x,求取其對應的y值。其計算過程為,首先求取x值位於哪兩個三點之間,假如xj≤x<xj+1,則y=(x-xj)×(yj+1-yj)/(xj+1-xj)+yj。該方法可以較準確地求取任意x值對應的y值,且該方法一般只應用於內插,當x值超出原始散點x範圍時,採用線性外插方法。

而對於二維插值卻存在一定問題。原始資料為一系列的散點(x1,y1,z1)、(x2,y2,z2)....(xi,yi,zi),此時對於任意的(x,y)值,要想求取其對應的z值。

通常容易想到的方法是,首先基於已知的散點資料(x1,y1,z1)、(x2,y2,z2)....(xi,yi,zi),通過某種擬合方法獲得一個適用的計算公式,即z=f(x,y),然後通過該公式來計算任意的(x,y)對應的z值。該方法能夠一定程度上解決無法獲取散點之外資料的問題。但是,該方法擬合過程引入的偏差是不可忽略的,一種檢驗的方法是,選取原始散點中的某一個點的資料(xj,yj,zj)進行檢驗,將該點的資料代入計算公式z=f(x,y)獲得一個值z計算=f(xj,yj),對比可以發現z計算≠zj,且進一步計算其相對偏差量可以發現,相對偏差量(z計算 -  zj)/zj不是一個小量,某些時候甚至能夠達到30%,因此該方法很難實現有效的工程應用。

本文推薦一種二維線性插值計算方法,可以有效避免原始資料代入計算結果不一致的問題。該方法適用的一個前提是,原始散點資料需滿足一定特徵,即某些原始散點的x值需相等,且可以基於x值將原始散點進行分組。即原始散點具備如下特徵,可進行如下分組分類:

(x1,y1,z1 (x1,y2,z2   (x1,ym,zm
(x2,ym+1,zm+1 (x2,ym+2,zm+2 . (x2,y2m,z2m
    ...  
(xn,ynm-m+1,znm-m+1 (xn,ynm-m+2,znm-m+2   (xn,ynm,znm

 對於該型別的原始散點,求取對應於(x未知,y未知)值時的Z未知值,其計算過程如下

1)首先計算x值位於哪個區間,通過逐個比較獲得xj≤x<xj+1;

2)對於xj所在的陣列,獲得其對應原始散點的y、z值組成二維散點(yjm-m+1,zjm-m+1)、(yjm-m+2,zjm-m+2)...(yjm,zjm),在該二維散點中,通過一維線性插值計算獲得當y=y未知時,對應的z值為zxj,未知

3)同理,對於xj+1所在的陣列,獲得其對應原始散點的y、z值組成二維散點(yjm+1,zjm+1)、(yjm+2,zjm+2)...(yjm+m,zjm+m),在該二維散點中,通過一維線性插值計算獲得當y=y未知時,對應的z值為zxj+1,未知

4)通過步驟(2)、(3)獲得的兩個點(xj,y未知,zxj,未知)、(xj+1,y未知,zxj+1,未知),與所求點(x未知,y未知,z未知),三個點必定在同一條直線上,因此可以基於(xj,y未知,zxj,未知)、(xj+1,y未知,zxj+1,未知)兩點,通過一維線性插值計算獲得點(x未知,y未知,z未知)的值。

以上為所述二維線性插值計算方法的全過程。

 

 

 

 

 

 

相關文章