Почему многочлен по многим точкам раскачивается
Базисный многочлен ℓₖ обязан быть равен нулю во всех чужих узлах. Если узлов 11, у него 10 корней, и между ними он вынужден колебаться. У середины таблицы колебания маленькие, а у краев, где с одной стороны узлов уже нет, их ничто не сдерживает, и размах растет. Рисунок справа показывает три базисных многочлена для узлов 0, 1, 2: каждый равен 1 в своем узле и 0 в двух других.
В сумме L(x) = Σ yₖ · ℓₖ(x) большие колебания отдельных слагаемых должны погасить друг друга. Пока точки лежат на гладкой кривой, это почти получается. Но небольшой сдвиг одной точки, ошибка замера или округление, сразу дает волну у краев. Это и есть эффект Рунге.
Сплайн устроен иначе: каждый кусок зависит в основном от ближайших точек. Сдвинь одну точку, и кривая изменится рядом с ней, а вдали почти нет. Поэтому для таблиц с большим числом строк берут сплайн или просто ломаную, а один многочлен только по 3-4 точкам.
- 2 точки
- прямая, это линейная интерполяция
- 3 точки
- парабола, хорошо для плавных паспортных кривых
- много точек
- кусочно: ломаная или сплайн, но не один многочлен
- за краем таблицы
- это уже экстраполяция, любой способ может сильно ошибиться