singlepost

Интерполяция сплайном. << На главную или назад  

Прошу помочь с такой вещью, как интерполяция сплайном.

Допустим, есть функция, заданная координатами пяти точек x и y:

float x[5] = {0.1, 3, 3.5, 10};
float y[5] = {31, 2.222, 6, 6, 10};

Кроме того, пользователем задается ордината точки, абсциссу которой нужно найти:

float point_x, point_y;
cin >> point_x;

Условно предположим, что введенное значение лежит в диапазоне от 0.1 до 10, не в этом суть. Суть – это алгоритм интерполяции, который описан во многих справочниках/учебниках по численным методам, но нигде не сопровождается комментариями или подробным описанием "куда чего совать" :-)

У меня уже был курс численных методов, но какой-то он был урезанный и сплайны обошли меня стороной. Поэтому прошу, кто знает, как это работает, объяснить на примере с комментариями или хотя бы своими словами:-)

4 ответов в теме “Интерполяция сплайном.”

  1. 4
    Александр Дикарев ответил:

    Имеется около 10 графиков, каждый задан количеством точек от 200 до 5000. Нужно для каждого графика найти около 1000 – 1500 значений и сделать это надо быстро. Лагранж, может, и работает быстро (в чем я сомневаюсь), но сплайны работают наверняка быстрее.

  2. 3
    Ефим Пышнограев ответил:

    Лагранж работает за квадрат. на тысяче точек будет всё хорошо.

  3. 2
    Александр Дикарев ответил:

    А если точек 200? То тогда использовать только 5 ближайших?

  4. 1
    Ефим Пышнограев ответил:

    Есть интерполяционный полином Лагранжа который для пяти точек будет прекрасно работать. Я его неоднократно использую для разных задач, он прост и литературы по нему полно. Советую)

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.