Как я могу реализовать n-мерную интерполяцию в C ++? В идеальном случае я хотел бы, чтобы он был общим для реального ядра, чтобы я мог переключаться между, например, линейной и полиномиальной интерполяцией (возможно, в качестве начала: линейная интерполяция). Эта статья ( http://pimiddy.wordpress.com/2011/01/20/n-dimensional-interpolation/ ) обсуждает этот материал, но у меня есть две проблемы:
1) Я не мог понять, как реализовать метод «интерполировать», показанный в статье в C ++
2) Что более важно, я хочу использовать его в сценарии, где у вас есть «несколько независимых переменных (X)» и «1 зависимая переменная (Y)» и как-то интерполировать оба (?)
Например, если n = 3 (т.е. 3-мерное) и у меня есть следующие данные:
#X1 X2 X3 Y
10 10 10 3.45
10 10 20 4.52
10 20 15 5.75
20 10 15 5.13
….
Как узнать значение Y (зависимой переменной) для конкретной комбинации X (независимых переменных): 17 17 17
Я знаю, что существуют другие способы, такие как деревья решений и SVM, но здесь я заинтересован в интерполяции.
Вы можете взглянуть на набор алгоритмов интерполяции (включая реализацию C ++) на ALGLIB.
Также следует отметить, что нейронные сети (обратное распространение например, сети) считаются хорошими интерполяторами.
Если ваш вопрос касается конкретной статьи, это не в моих знаниях.
Других решений пока нет …