Delphi 上的数值线性插值
Numeric Linear Interpolation on Delphi
我需要在 Delphi 中做一个简单的数值线性插值,正在考虑实现一个函数,但后来想得更好,我认为应该已经是某个库了。我在 google.
上什么也没找到
我的问题很简单,我有一个包含 X 和 Y 数据的数据集,以及其他新的数据集 X 数据 (Xb),它们将作为寻找新的 Y 数据 (Yin) 插值的基础。
例如,在 R 中,有一个函数 approx
可以轻松完成此操作。该函数还允许Xb长度为任意大小。
Yin <- approx (X, Y, Xb, method = "linear")$y
在 Delphi 中有一些统计库可以做到这一点吗?还是继续写我的函数(基于approx
)?
一维数据的线性插值非常简单:
- 在 X 数组中找到这样的索引,即
X[i] <= Xb < X[i+1]
(随机访问情况下的二进制搜索,逐步Xb变化情况下的线性搜索)
计算
Yb = Y[i] + (Y[i+1] - Y[i]) * (Xb - X[i]) / (X[i+1] - X[i])
我需要在 Delphi 中做一个简单的数值线性插值,正在考虑实现一个函数,但后来想得更好,我认为应该已经是某个库了。我在 google.
上什么也没找到我的问题很简单,我有一个包含 X 和 Y 数据的数据集,以及其他新的数据集 X 数据 (Xb),它们将作为寻找新的 Y 数据 (Yin) 插值的基础。
例如,在 R 中,有一个函数 approx
可以轻松完成此操作。该函数还允许Xb长度为任意大小。
Yin <- approx (X, Y, Xb, method = "linear")$y
在 Delphi 中有一些统计库可以做到这一点吗?还是继续写我的函数(基于approx
)?
一维数据的线性插值非常简单:
- 在 X 数组中找到这样的索引,即
X[i] <= Xb < X[i+1]
(随机访问情况下的二进制搜索,逐步Xb变化情况下的线性搜索)
计算
Yb = Y[i] + (Y[i+1] - Y[i]) * (Xb - X[i]) / (X[i+1] - X[i])