Изучение возможностей кусочной интерполяции

Я был очарован этим методом, когда впервые услышал о нем, особенно о его происхождении. Этот пост покажет вам, как я решил это и сделал проще. Мы будем использовать нисходящий подход и стараемся, чтобы вы визуализировали во время чтения, чтобы лучше понять это.

Числовая интерполяция

Вкратце он спрашивает:

Как мы можем уместить все эти точки данных с помощью функции?

Функция, о которой мы говорим, также называется интерполирующей функцией или interpolant.

Различия между интерполяцией, аппроксимацией и аппроксимацией кривой

Интерполяцию обычно путают с аппроксимацией и подгонкой кривой. Ключ к их различиям - это степень соответствия данных и уместность их использования.

Интерполяция и приближение

При интерполяции вы подгоняете все точки данных точно, в то время как аппроксимация, как следует из названия, просто приближается.

Когда дело доходит до уместности, интерполяция подходит для сглаживания таких зашумленных данных и не подходит, когда точки данных подвержены экспериментальным ошибкам или другим источникам значительных ошибок. Наличие большого набора точек данных также может затруднить интерполяцию. С другой стороны, аппроксимация в основном подходит для разработки библиотечных подпрограмм для вычисления специальных функций. Это связано с природой этих функций - точные значения считаются несущественными и до некоторой степени неэффективными, когда работают приблизительные значения.

Интерполяция и аппроксимация кривой

При подборе кривой мы не подбираем все точки данных. Вот почему у нас есть понятие остатков. При интерполяции функция заставляет соответствовать всем точкам данных.

Теперь, когда мы знаем, о какой категории идет речь, давайте сузимся до семейств функций, используемых для интерполяции.

Семейства функций, используемых для интерполяции

(2) Здесь рассматриваются два семейства функций:

  1. Полиномиальная интерполяция
  2. Кусочная интерполяция

Спойлер: естественный кубический сплайн подвергается кусочной интерполяции. Но давайте объясним их обоих, чтобы оценить метод позже.

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

Полиномиальная интерполяция - это самый простой и наиболее распространенный тип интерполяции. Одна из его особенностей заключается в том, что всегда существует уникальный многочлен степени не выше n-1, проходящий через n точек данных.

Есть много способов вычислить или представить один многочлен, но все они сводятся к одной и той же математической функции. Некоторые из методов - это мономиальный базис, базис Лагранжа и базис Ньютона. Как вы заметили, они названы в честь своей основы.

Недостатки:

  1. Полином высокой степени → соответствующий выбор базисных функций и точек интерполяции может смягчить некоторые трудности, связанные с полиномом высокой степени
  2. Чрезмерная подгонка → подгонка одного полинома к большому количеству точек данных, что, вероятно, приведет к неудовлетворительному колебательному поведению в интерполянте

По мере того, как рождаются разные методы, кусочная интерполяция решает эти сложности.

2. Кусочная интерполяция

Кусочная интерполяция отвечает на эти вопросы, подгоняя большое количество точек данных полиномами низкой степени. Поскольку мы используем только полиномы низкой степени, мы исключаем излишние колебания и несходимость.

Общая концепция. Для заданного набора точек данных в каждом интервале используется другой полином, так что мы интерполируем несколько интерполянтов в последовательных точках. Вот почему существуют такие термины, как узлы, точки останова или контрольные точки - это абсциссы, на которых интерполянт переходит от одного полинома к другому.

Основное беспокойство: Похоже, что он жертвует гладкостью интерполяции интерполирующей функции, так что график может иметь «углы», что означает разрыв производной в таких точках.

ЦЕЛЬ. Объединив все эти концепции и основные задачи, мы стремимся найти функцию интерполяции, которая была бы плавной и не слишком сильно изменялась бы между узловыми точками.

Теперь, когда мы обсудили, к чему относится Natural Cubic Spline, этот метод также должен наследовать все эти общие функции. Теперь обсудим метод ниже. Не волнуйтесь, мы разберемся с каждой частью того, что собираемся обсудить.

МЕТОД: ЕСТЕСТВЕННЫЙ КУБИЧЕСКИЙ СПЛАЙН

I. Почему он называется "Естественный кубический сплайн"?

«Сплайн» - это просто означает кусочный многочлен степени k, который непрерывно дифференцируем k-1 раз.

Исходя из этого,

«Естественный кубический сплайн» - это кусочно-кубический многочлен, дважды непрерывно дифференцируемый. Он значительно «жестче», чем полином, в том смысле, что у него меньше склонности к колебаниям между точками данных.

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

Представим себе это как эластичную полоску, прикрепленную булавками к пробковой доске. Теперь представим основные моменты:

  1. Сегменты. Каждый сегмент сплайновой кривой представляет собой кубический многочлен.
  2. На штифтах: наклон (первая производная) и изгибающий момент (вторая производная) непрерывны.
  3. В конечных точках: изгибающих моментов нет. На математическом языке это означает, что вторая производная сплайна в конечных точках равна нулю. Поскольку эти конечные условия естественным образом возникают в модели балки, результирующая кривая называется естественным кубическим сплайном.
  4. Булавки: точки данных или термин, который используется в формуле позже «узлы».

Теперь, когда общие концепции понятны нам, давайте конкретизируем эти концепции. Мы укажем, как они возникли, используя производные.

II. Вывод

Это довольно длинный, но понятный тем, кто знает производные и интегралы.

А. БОЛЬШОЕ ИЗОБРАЖЕНИЕ

где есть n узлов (k’s), которые представляют собой точки данных (x, y), а f как интерполянт между двумя узлами.

Поскольку я рассматриваю математику как моделирование, мы начнем с иллюстрации. Это будет служить конкретным указанием на то, что мы хотим объяснить, а также на нашу карту, пока мы делаем вывод.

Б. Требования

С. Правильный вывод

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

Имея необходимые формулы, мы показываем, как их использовать.

III. Как использовать его для интерполяции?

Мы проиллюстрируем его использование на примере, а затем обобщим процесс.

Пример №1. Используйте естественный кубический сплайн, чтобы определить y при x = 1,5. Точки данных следующие: (2, 1), (1, 0), (5, 0), (3, 0), (4,1)

Решение:

Сначала мы понимаем, чего он хочет. В первую очередь это требуется - найти интерполянт для сегмента, который содержит x = 1,5, используя Natural Cubic Spline, который интерполирует все данные точки данных и знает соответствующую ему координату y.

или более минималистично: (1) Интерполянт (2) y при x = 1,5

Сначала получаем наши формулы:

для интерполянта

для узлов

и мы должны переставить значения, чтобы облегчить процесс

:(1, 0), (2, 1), (3, 0), (4,1), (5,0)

тогда мы знаем конкретные узлы

обратите внимание, что: k1 = k5 = 0, поэтому мы рассматриваем только i = 2, 3, 4

затем подставляем соответствующие значения так, чтобы:

которые, в свою очередь, создают систему линейных уравнений:

узлы могут быть решены с помощью методов поиска корней: исключения, замены, исключения Гаусса, разложения LU и т. д.

Здесь мы используем метод исключения Гаусса:

пропуская подробные вычисления, которые у нас есть:

тогда мы знаем фокус, чтобы получить y при x = 1,5

Мы выясняем, в каких узлах находится x: 1,5 находится между x1 = 1 и x2 = 2.

поэтому мы используем первый и второй узлы так, чтобы:

подставляя значения имеем:

Таким образом,

Теперь, когда мы увидели, как это работает, мы обобщаем процесс, чтобы дать решение проблемы нахождения y в некотором x с помощью естественного кубического сплайна.

Общий процесс:

Следует рассматривать только как предложение. Для этого есть много способов.

Дано: точки данных

Найти: Интерполянт fi, i + 1 (x) с учетом y при некотором x.

Процесс:

* Первый основной шаг: формула и подготовка

Нам понадобятся эти формулы, поэтому было бы неплохо уладить все ваши формулы, прежде чем вы начнете свои вычисления:

  1. для узлов

2. для интерполянта для сегмента

3. Убедитесь, что абсциссы (координаты x) расположены в порядке возрастания, поскольку мы рассматриваем функции для каждого сегмента.

* Второй основной шаг: решите узлы (k), используя формулу выше1

  1. Заменить i
  2. Заменить все значения
  3. Составив систему линейных уравнений, получим узлы из i = 2,3,…, n-1.

* Третий основной шаг: решите для fi, i + 1 (x_c)

  1. Сначала найдите, каким узлам принадлежит x_c
  2. получить fi, i + 1 (x)
  3. получить fi, i + 1 (x_c)

Общий,

Можно сказать, что Natural Cubic Spline - довольно интересный метод интерполяции. Зная, что интерполяция - это подгонка функции ко всем заданным точкам данных, мы знали, что полиномиальная интерполяция может служить нам в какой-то момент, используя только один полином для выполнения работы. Это особенно полезно, когда мы рассматриваем только полиномы низкой степени, но с многочленами высокой степени чрезмерная подгонка скрывается в глубоких нежелательных колебаниях, которые не дают никакого представления о данных. Одним из преимуществ является кусочная интерполяция, которая делает что-то с использованием различных многочленов низкой степени, что особенно полезно для больших наборов данных. Видно, что в поэтапной реализации предстоит проделать больше работы, но сложность метода, учитывающего большие наборы данных, превосходит довольно долгую реализацию.

Использованная литература:

Конспект лекций по классу CS131 сэра Дж. М. Сориано

М. Хит. Научные вычисления: вводный обзор.

К. Аткинсон и В. Хан. Элементарный численный анализ.

Я. Киусалаас. Численные методы в машиностроении с помощью Matlab.