Интерполяция функций: полиномы Лагранжа, Ньютона и сплайны
Как восстановить функцию по таблице: полином Лагранжа с примером, разности Ньютона, проблема Рунге и сплайны. Пошаговый разбор, сравнение методов.
Термометр писал температуру каждый час: в 12:00 — 21.4°, в 13:00 — 22.1°, в 14:00 — 22.6°. А сколько было в 13:30? Таблица молчит между точками. Единственный честный источник — сама таблица, и интерполяция предлагает контракт: проведём через все точки одну гладкую кривую и спросим значение у неё. Вопрос лишь в том, какую кривую выбрать — и почему наивный выбор иногда разваливается на осцилляции.
Постановка: по таблице восстановить функцию#
Даны точек с различными узлами . Требуется функция , проходящая через каждую: — и по ней оцениваются промежуточные значения. Классический ответ — интерполяционный полином степени не выше : у него ровно коэффициентов, по одному условию на каждую точку, система квадратная.
Где это живёт? Калибровочная кривая датчика: пять замеров по эталонам — и прибор умеет переводить напряжение в температуру между точками. Таблицы логарифмов, которыми пользовались до калькуляторов, снабжались колонками поправок — это чистая интерполяция. Анимация и компьютерная графика: ключевые кадры заданы, между ними кривую достраивает интерполяция. Везде одна и та же математика — отличается только цена ошибки: где-то испорченный график, а где-то траектория манипулятора.
Почему через n+1 точку проходит ровно один полином#
Единственность доказывается в три строки. Пусть нашлись два полинома и степени не выше , проходящие через все точки. Их разность — тоже полином степени не выше , и она обнуляется во всех узлах. Но ненулевой полином степени имеет не более корней. Противоречие — значит, , и полином один. Существование докажет формула Лагранжа: она предъявит кандидата явно.
Полином Лагранжа: собираем базис#
Лагранж не решает систему, а собирает ответ из деталей. Для каждого узла строится базисный полином — тот, который равен единице в своём узле и нулю во всех остальных. Тогда сумма автоматически проходит через всю таблицу:
Знаменатель не равен нулю, потому что узлы различны, — так что базис всегда построится. Разберём полный пример с тремя точками: , , .
- Базис первого узла:
- Базис второго: ; третьего:
- Собираем:
- Раскрываем скобки:
- Проверка в узлах: , , — все три условия выполнены
Проверка в узлах — обязательный ритуал: если хоть одно значение не сошлось, где-то потерян знак. Полиномом можно пользоваться и дальше: — оценка температуры в полдень между замерами.
Полином Ньютона: таблица разделённых разностей#
Ньютон идёт другим путём: строит полином последовательно, как лестницу, на ступеньках которой стоят разделённые разности. Разность первого порядка: — наклон секущей. Разности второго порядка считаются из разностей первого, и так до вершины. Для нашей таблицы:
| Узел | y | Разность I | Разность II |
|---|---|---|---|
| 2 | |||
| 4 | |||
| 3 |
Подставляем: . Раскройте скобки — получится тот же . Полиномы Лагранжа и Ньютона — это одно и то же решение в разных одеждах; единственность гарантирует совпадение. Зачем тогда Ньютон? Смотрите, что происходит при добавлении точки : считаем лишь новые разности — , , — и дописываем один член . Всё, что было посчитано раньше, остаётся в силе. Лагранжу пришлось бы пересобирать весь базис заново.
Проблема Рунге: почему равномерная сетка подставляет#
Интуиция подсказывает: больше точек — точнее полином. Рунге нашёл функцию, на которой интуиция ломается: на . Возьмём 11 узлов с шагом и построим интерполяционный полином десятой степени:
| Точка x | Функция f(x) | Полином P₁₀(x) | Что вышло |
|---|---|---|---|
| 0.75 | 0.0664 | −0.2315 | даже знак неверен |
| 0.85 | 0.0525 | 0.7195 | завышение в 14 раз |
| 0.95 | 0.0424 | 1.9236 | завышение в 45 раз |
Максимум ошибки достигается у краёв — около — и составляет , хотя сама функция всюду меньше единицы. Причина в поведении произведения , которым оценивается погрешность интерполяции: на равномерной сетке у краёв это произведение разрастается, и чем больше узлов, тем хуже. Добавление узлов не лечит, а усугубляет: степень растёт, осцилляции у краёв становятся выше. Лечатся два пути: распределить узлы кучнее у краёв — узлы Чебышёва гасят рост — или отказаться от одного глобального полинома.
Как это выглядит на нашем учебном примере с тремя узлами ? Ошибка в точке пропорциональна . В точке произведение — крошечное, потому и полином второй степени там честен. Вся геометрия узлов живёт в : на равномерной сетке у краёв оно в разы больше, чем в центре, а с ростом числа узлов — растёт лавинообразно. Маленькое — щит интерполяции; узлы Чебышёва минимизируют его максимум по отрезку — в этом и есть их секрет.
Кубические сплайны: кусочные кубики с гладким стыком#
Сплайн — гибкая рейка чертёжника: между узлами функция кусочно-кубическая, но стыки согласованы так, что первая и вторая производные непрерывны — гладкость . Считаем условия: на отрезках по 4 коэффициента кубики — всего неизвестных. Проход через узлов даёт условий, непрерывность и во внутренних стыках — по , плюс два условия на краях (например, естественный сплайн на концах). Итого — система решается, причём трёхдиагональным алгоритмом за линейное время.
Почему сплайн не осциллирует? Кубик на каждом отрезке видит только своих четырёх соседей — ошибка не успевает накопиться и расползтись по всему отрезку, как у глобального полинома. Числа для той же функции Рунге: естественный кубический сплайн по тем же 11 узлам даёт максимум ошибки против у полинома десятой степени — разница почти в девяносто раз. В точке сплайн возвращает против истинных : три верных значащих цифры там, где полином выдавал .
Слово «сплайн» пришло из чертёжной практики: гибкая рейка, прижатая гвоздиками к опорным точкам, изгибается так, как требует минимум энергии — кусочные кубики с непрерывной кривизной. Отсюда и слава сплайнов в инженерии: кузова автомобилей, обводы кораблей, траектории станков — везде, где нужна гладкость второй производной, сплайн — рабочий инструмент, а не только учебная задача.
Когда интерполяция уместна, а когда нужен МНК#
Интерполяция предполагает, что данные точные: табличные значения функции, калибровочные константы, показания, которым можно верить в упор. Если же точки — результат измерений с шумом, требование пройти через каждую превращает инструмент в копирку чужих ошибок: полином будет вилять, стараясь угодить каждому выбросу. Для зашумлённых данных кривую проводят близко, минимизируя сумму квадратов отклонений, — это метод наименьших квадратов, термин разобран в словаре: МНК.
| Признак | Интерполяция | Аппроксимация (МНК) |
|---|---|---|
| Проходит через точки | строго через все | близко, сглаживая шум |
| Число параметров | равно числу точек | задано моделью (например, 2) |
| Данные | точные, табличные | с погрешностью измерений |
| Главный риск | осцилляции (проблема Рунге) | неверная модель зависимости |
Правило выбора простое: доверяете точкам — интерполируйте, не доверяете — сглаживайте. А если таблицу предстоит дифференцировать или интегрировать, сначала выберите представление поосторожнее: у численного дифференцирования есть свои шаблоны разностей, и шум данных в них усиливается. Погрешность каждого этажа расчёта раскладывается по той же схеме, что и в уроке про источники погрешностей: модель, метод, округление. Родство с анализом неслучайно — полиномиальные приближения растут из формулы Тейлора, а приём «приблизить и посчитать» — общая идеология курса численных методов, которая дальше приведёт к численному интегрированию.
Через 5 точек проходит интерполяционный полином степени…
Точки , , . Чему равен интерполяционный полином в ?
Интерполяция на 11 равномерных узлах осциллирует у краёв. Что поможет?
Частые вопросы
Чем интерполяция отличается от аппроксимации?
Интерполяция обязана пройти строго через каждую точку таблицы; аппроксимация (например, МНК) проходит близко, минимизируя суммарное отклонение. Интерполяцию выбирают для точных данных — таблицы функций, калибровки. Аппроксимацию — для измерений с шумом, где точное прохождение через выброс только испортит кривую. Формально обе строят приближение, но контракт с данными у них разный.
Что такое проблема Рунге простыми словами?
Это рост колебаний интерполяционного полинома у концов отрезка при интерполяции на равномерной сетке. Классический пример — функция 1/(1+25x²): с 11 узлами полином у края завышает значение в 45 раз. Причина — разрастание произведения ω(x) = Π(x−x_j) у краёв. Лечение — узлы Чебышёва или сплайны.
Зачем нужен сплайн, если есть полином Лагранжа?
Сплайн не осциллирует на плотных сетках: каждый кубик отвечает только за свой отрезок, ошибка не накапливается глобально. Для функции Рунге максимум ошибки сплайна 0.022 против 1.92 у полинома десятой степени. Плюс сплайн решается устойчиво трёхдиагональным алгоритмом и даёт гладкость C², чего хватает большинству инженерных задач.
Как добавить новую точку в интерполяцию без пересчёта?
Формой Ньютона: посчитать лишь новые разделённые разности, связанные с новой точкой, и дописать один член вида f[x₀,…,xₙ, x_нов]·(x−x₀)…(x−x_нов). Всё, что было построено раньше, сохраняется — в этом главное практическое преимущество перед формой Лагранжа, где базис пересобирается целиком.
Готовитесь к контрольной?
Чеклист тем по «Численные методы»: что вы уже умеете, что повторить и в каком порядке.
Открыть чеклист предмета →
Проверьте себя в бою
Босс-экзамен по «Численные методы»: квизы всех уроков плюс бесконечный поток сгенерированных задач. Каждая попытка — новый расклад.
Начать босс-экзамен →