徑向基-薄板樣條插值數學公式、原理,以及程式碼實現基本過程
阿新 • • 發佈:2018-12-21
徑向基插值部分
徑向基函式RBF (Radial Basis Function)有以下五種基函式
其中r代表代待求點X與已知點Xi之間的向量距離
上邊的公式是適用於以上五種基函式的計算公式,其中X代表向量,不是一個數字
對於薄板樣條插值,其公式(是經過上邊的公式變形所得到的公式)為:
這個公式是用於二維的插值,對於三維的插值,應該加上+dz,以及等式:AjZj(對j=1到j=n取和)=0,之後分解該公式,構造出矩陣,對矩陣取逆;
對矩陣取逆,用該矩陣左乘value(或Z座標值)構成的一個向量,得到一個向量,該向量代表了A1-An,以及a、b、c、d(A代表一個數字,不是矩陣),將A帶入公式即可計算出待求點的屬性值
矩陣操作
對於矩陣(非稀疏矩陣)操作部分,採用的庫為Eigen數學庫
標頭檔案:#include <Eigen/Dense>
矩陣定義:
方法1:Eigen::Matrix<double, 5, 5, Eigen::RowMajor> matrix
方法2:
Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> matrix
matrix.resize(rowNum, colNum) //分配記憶體、空間
矩陣賦值:
matrix(i, j) = 3.6
矩陣取逆:
matrix = matrix.inverse()
矩陣轉置:
matrix = matrix.transpose()
對於矩陣間的運算,或者矩陣與向量間的運算直接用*即可