2010-08-17 72 views
10

假設我有一個雙精度數組,什麼是使用Akima interpolation來抽樣這個系列的好算法?我太愚蠢了,不能將數學描述翻譯成代碼。雙數陣列的Akima插值

// values is an array of doubles 
// idx is the index of the left-hand value for the current interpolation 
// t is the normalized parameter between values[idx] and values[idx+1] 
// Don't worry about array bounds, I'll handle that separately. 
public double InterpolateAkima(double[] values, int idx, double t) 
{ 
    ...? 
} 
+3

它看起來像一個大量的工作,沒有人會只編寫了你。它看起來非常直截了當,但一些好的編碼時間才能完成。不要猶豫,問你是否有一個你不明白的具體事情。 – 2010-08-17 19:14:40

+0

@Albin,我想是夠了。立方插值就像10行代碼,我希望所有這個數學可以精簡到20行...... – 2010-08-17 19:50:38

回答

27
+0

另外:[由Jens-Peer Kuska實施的Mathematica](https://groups.google.com/d/msg/comp.soft-sys.math .mathematica/XAWwuMCV_8w/FZDMf3Pgsz0J)。 – 2011-06-21 23:08:30

+0

還有alglib(僅在VB6和delphi下提到)有C++,C#,python和其他實現。 – Dan 2013-05-09 09:06:58

+0

另一個C實現(GSL):https://www.gnu.org/software/gsl/manual/html_node/Interpolation-Types.html#Interpolation-Types – alfC 2014-08-28 06:41:25

7

在google代碼搜索上找到了一些hits,但這不是我知道的地方。第一個結果是Math.NET,這可能會引起一些興趣。

+3

+1:Math.NET的確有一個實現 – Bertvan 2010-09-07 18:51:07

+0

它在'MathNet.Numerics.Interpolation'命名空間 – Keith 2010-09-08 07:56:21

+0

http://mathnetnumerics.codeplex.com/wikipage?title=插入 – 2013-01-13 18:49:22