Как я могу произвести многоточечную линейную интерполяцию?

У меня есть методы линейной интерполяции. Это вычисляет интерполированное значение, когда (x1,y1) (x2,y2) и x0 известны. это рассчитать значение y0. Но мне нужно сделать это, когда известно несколько точек.

Я не говорю о билинейной или трилинейной интерполяции.

1 ответ

Решение

Для многоточечной интерполяции есть 3 варианта:

IMG

  1. кусочно-линейная интерполяция

    выберите 2 ближайшие точки к вашей известной координате, если вы используете параметр, затем выберите точки, содержащие диапазон параметров, и измените диапазон / масштаб параметра на диапазон интерполяции (обычно <0,1>) и интерполировать как линейную интерполяцию.

  2. полиномиальная интерполяция

    это не линейно!!! Взять все известные очки, вычислить n-th Степень полинома от него (по полиному Лагранжа или по краевым условиям или путем регрессии / подгонки кривой или любым другим) и вычислить точку из параметра как функцию этого полинома. Обычно у вас есть один многочлен на ось, чем больше точек и / или степень многочлена, тем менее устойчивый результат (колебания).

  3. кусочно-полиномиальная интерполяция

    Это комбинация № 1, № 2 (n низкий, чтобы избежать колебаний). Вам нужно правильно вызвать последовательность точек, чтобы управлять непрерывностью между сегментами, граничные условия должны учитывать предыдущий и следующий сегмент...

[заметки]

SPLINE, BEZIER,... являются кривыми аппроксимации, а не интерполяции (они не обязательно пересекают контрольные точки). Существует способ преобразования промежуточных кривых различных типов путем пересчета контрольных точек. Например, посмотрите это:

Другие вопросы по тегам