Как я могу произвести многоточечную линейную интерполяцию?
У меня есть методы линейной интерполяции. Это вычисляет интерполированное значение, когда (x1,y1) (x2,y2) и x0 известны. это рассчитать значение y0. Но мне нужно сделать это, когда известно несколько точек.
Я не говорю о билинейной или трилинейной интерполяции.
1 ответ
Для многоточечной интерполяции есть 3 варианта:
кусочно-линейная интерполяция
выберите 2 ближайшие точки к вашей известной координате, если вы используете параметр, затем выберите точки, содержащие диапазон параметров, и измените диапазон / масштаб параметра на диапазон интерполяции (обычно
<0,1>
) и интерполировать как линейную интерполяцию.полиномиальная интерполяция
это не линейно!!! Взять все известные очки, вычислить
n-th
Степень полинома от него (по полиному Лагранжа или по краевым условиям или путем регрессии / подгонки кривой или любым другим) и вычислить точку из параметра как функцию этого полинома. Обычно у вас есть один многочлен на ось, чем больше точек и / или степень многочлена, тем менее устойчивый результат (колебания).кусочно-полиномиальная интерполяция
Это комбинация № 1, № 2 (
n
низкий, чтобы избежать колебаний). Вам нужно правильно вызвать последовательность точек, чтобы управлять непрерывностью между сегментами, граничные условия должны учитывать предыдущий и следующий сегмент...
[заметки]
SPLINE, BEZIER,... являются кривыми аппроксимации, а не интерполяции (они не обязательно пересекают контрольные точки). Существует способ преобразования промежуточных кривых различных типов путем пересчета контрольных точек. Например, посмотрите это: