@koliane

Какую интерполяцию выбрать для 1 миллиона точек?

Необходимо построить ф-ию по точкам и затем ее анализировать. Точек может быть до нескольких миллионов. Какую интерполяцию лучше выбрать с точки зрения эффективности и скорости нахождения значения функции по определенной точке в программе? Интерполяция Лагранжа не подходит, т.к. там степень ф-ии увеличивается с увеличением кол-ва точек.
Пока рассматриваю интерполяцию, используя разложение Фурье.
Может есть еще какие-нибудь типы интерполяций, более подходящих для моей задачи?
  • Вопрос задан
  • 333 просмотра
Пригласить эксперта
Ответы на вопрос 2
@MechanicZelenyy
С таким количеством точек вам и линейной хватит.
А вообще обычно для интерполяции используют кубические сплайны.
Ну или если вы примерно представляете вид функции можете много параметрический фит натянуть.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Кубическими сплайнами - думаю оптимально будет.
Там поиск линейно делается:
//*************************************************************************/
//Подсчет значения интерполянты в заданной точке
//*************************************************************************/
double Interpolate(double x)
{
	//double result;
	int i=0;

	while (KnotArray[i].x < x)
		i++;
	i--;
	return Coef[i][0] + Coef[i][1]*(x-KnotArray[i].x) + Coef[i][2]*powf((x-KnotArray[i].x),2) + Coef[i][3]*powf((x-KnotArray[i].x),3); 

}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы