Числовая линейная интерполяция на Delphi
Мне нужно было сделать простую числовую линейную интерполяцию в Delphi, я думал о реализации функции, но потом подумал лучше, и я думаю, что это уже должна быть какая-то библиотека. Я ничего не нашел в Google.
Моя проблема проста, у меня есть набор данных с данными X и Y и другие новые данные X набора данных (Xb), которые будут основой для поиска новых данных Y (Yin), интерполированных.
В R, например, есть функция approx
это легко достигается Эта функция также позволяет использовать длину Xb любого размера.
Yin <- approx (X, Y, Xb, method = "linear")$y
Есть какая-то статистическая библиотека для этого в Delphi? Или продолжайте писать мою функцию (на основе approx
)?
1 ответ
Линейная интерполяция 1D-данных очень проста:
- Найти такой индекс в X-массиве, что
X[i] <= Xb < X[i+1]
(бинарный поиск для случая произвольного доступа, линейный поиск для случая пошагового изменения Xb)
подсчитывать
Yb = Y[i] + (Y[i+1] - Y[i]) * (Xb - X[i]) / (X[i+1] - X[i])