Формула интерполяции между двумя значениями

Содержание

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

Формула интерполяции между двумя значениями

Интерполяция – это способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.

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

Предположим, что есть система несовпадающих точек xi(i ϵ 0, 1, …, N) из некоторой области G. Значения функции f известны только в этих точках: yi = f(xi), i = 1, …, N.

Процесс интерполяции состоит в поиске такой функции f из заданного класса функций, что F(xi) = yi,  i = 1, …, N.

Точки xi являются узлами интерполяции, а их совокупность – интерполяционной сеткой.

Пары (xiyi) являются точками данных (базовыми точками).

Разность между «соседними» значениями ∆xi = xi –xi – 1  – называют шагом интерполяционной сетки. Шаг может быть переменным или постоянным.

Функцию F(x) – интерполирующей функцией (интерполянтой).

Линейная интерполяция

При линейной интерполяции существующие точки данных М(xi, yi) (i = 0, 1, …, n) соединяются прямыми линиями и функция f(x) приближается к ломаной с вершинами в данных точках.

Уравнения каждого отрезка ломаной линии в общем случае разные.

Поскольку имеется n интервалов (xi, xi+1), то для каждого из них в качестве уравнения интерполяционного полинома используется уравнение прямой, проходящей через две точки.

В частности, для i-го интервала можно написать уравнение прямой, проходящей через точки (xi, yi) и (xi+1, yi+1), в виде:

Отсюда:

Геометрическая интерполяция

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

Рассмотрим принцип геометрического метода на примере вычисления квартальных данных на основе годовых.

  • X[t] – исходные данные по годам;
  • Inc[t] = exp(log(X[t+1] / X[t]) / 4) – значение инкремента;
  • Factor[t] = (1 + Inc[t] + Inc[t]2 + Inc[t]3) / 4 – значение фактора;
  • X[t,1], X[t,2], X[t,3], X[t,4] – квартальные данные в год t.

Из этого следует:

  • X[t,1] = X[t] / Factor[t];
  • X[t,2] = X[t] * Inc[t] / Factor[t];
  • X[t,3] = (X[t] * Inc[t]2) / Factor[t];
  • X[t,4] = (X[t] * Inc[t]3) / Factor[t].

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

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

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

Основные идеи теории кубических сплайнов сформировались в результате попыток математически описать гибкие рейки из упругого материала (механические сплайны), которыми издавна пользовались чертежники в тех случаях, когда возникала необходимость проведения через заданные точки достаточно гладкой кривой. Известно, что рейка из упругого материала, закрепленная в некоторых точках и находящаяся в положении равновесия, принимает форму, при которой ее энергия является минимальной. Это фундаментальное свойство позволяет эффективно использовать сплайны при решении практических задач обработки экспериментальной информации.

В общем случае для функции f(x) требуется найти приближение = ϕ(x) таким образом, чтобы f(xi) = ϕ(xi) в точках xi, а в остальных точках отрезка [a, b] значения функций f(x) и ϕ(x) были близкими между собой.

При малом числе экспериментальных точек (например, 6-8) для решения задачи интерполяции можно использовать один из методов построения интерполяционных полиномов. Однако при большом числе узлов интерполяционные полиномы становятся практически непригодными.

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

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

Кубические сплайны лишены этого недостатка.

Исследования теории балок показали, что гибкая тонкая балка между двумя узлами достаточно хорошо описывается кубическим полиномом, и поскольку она не разрушается, то аппроксимирующая функция должна быть, по меньшей мере, непрерывно дифференцируемой. Это означает, что функции ϕ(x), ϕ'(x), ϕ''(x) должны быть непрерывными на отрезке [a, b].

Кубическим интерполяционным сплайном, соответствующим данной функции f(x) и данным узлам xi, называется функция S(x), удовлетворяющая следующим условиям:

  • на каждом сегменте [xi-1, xi], i = 1, 2, …, n функция S(x) является полиномом третьей степени;
  • функция S(x), а также ее первая и вторая производные непрерывны на отрезке [a, b];
  • S(xi) = f(x), i = 0, 1, …, n.

На каждом из отрезков [xi-1, xi], i = 0, 1, …, n находится функция S(x) = Si(x) в виде полинома третьей степени:

Условие непрерывности всех производных до второго порядка записываются в виде:

Условие интерполяции:

ai, bi, ci, di – коэффициенты сплайна, подлежащие определению на всех n элементарных отрезках:

Если функция f(x) является полиномом третьей или меньше степени, данные воспроизводятся более точно, если граничные условия сплайна c0 и cn равны точным значениям второй производной кубического полинома.

Интерполяция многочленом Лагранжа

Интерполяционный многочлен Лагранжа – это многочлен минимальной степени, который принимает данные значения в данном наборе точек.

Для + 1 пар чисел (x0, y0), (x1, y1), …, (xnyn), где все xi различны (i = 0, 1, …

, n), существует единственный многочлен L(x) степени не более n, для которого L(xi) = yi.

В самом простом случае (n = 1) – это линейный многочлен и его график – прямая, проходящая через две заданные точки.

Лагранж предложил методику вычисления подобных многочленов:

Где базисные полиномы определяются по следующей формуле:

lj(x) обладают свойствами:

  • являются многочленами степени n;
  • lj(xj)= 1;
  • lj(xi) = 0 при i ≠ j.

Из этого следует, что L(x), как линейная комбинация lj(x), может иметь степень не больше n, и L(xj) = yj.

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

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

Данный метод представляет полином n-ой степени P0, 1, …, n-1, n, проходящий через n точек (с 0-ой по n-ую), как функцию двух полиномов n-1-ой степени по формуле:

К полученным полиномам рекурсивно применяется та же формула, до тех пор, пока мы не дойдем до полиномов вида Pi, которые вычисляются по формуле Pi = yi.

Достоинством данного метода является простота реализации, недостатком – сравнительно невысокое быстродействие.

Равномерная интерполяция

Значение исходного ряда делится на число наблюдений, попадающих в один период результирующего ряда. Полученное значение присваивается всем наблюдениям нового ряда, в пределах одного периода.

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

Значения исходного ряда повторяются на всех наблюдениях ряда с более высокой частотой динамики.

Интерполяция по шаблону

Пусть Input – входной ряд, Output – выходной ряд, Pattern – шаблонный ряд. Обозначим за t текущую дату входного ряда, а за n – количество точек выходного ряда в одном периоде.

Рассмотрим три метода интерполяции по шаблону:

Перове значение

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

Последнее значение

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

См. также:

Контейнер моделирования: модель «Интерполяция» | Анализ временных рядов: «Интерполяция» | IModelling.Interpolate | IModelling.InterpolateP

Источник: http://help.prognoz.com/ru/mergedProjects/Lib/03_transformations/uimodelling_interpolation.htm

Интерполяция данных: соединяем точки так, чтобы было красиво

Формула интерполяции между двумя значениями

Как построить график по n точкам? Самое простое — отметить их маркерами на координатной сетке. Однако для наглядности их хочется соединить, чтобы получить легко читаемую линию. Соединять точки проще всего отрезками прямых.

Но график-ломаная читается довольно тяжело: взгляд цепляется за углы, а не скользит вдоль линии. Да и выглядят изломы не очень красиво. Получается, что кроме ломаных нужно уметь строить и кривые.

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

Немного матчасти

Восстановление промежуточных значений функции, которая в данном случае задана таблично в виде точек P1 … Pn, называется интерполяцией. Есть множество способов интерполяции, но все они могут быть сведены к тому, что надо найти n – 1 функцию для расчёта промежуточных точек на соответствующих сегментах.

При этом заданные точки обязательно должны быть вычислимы через соответствующие функции. На основе этого и может быть построен график:

Функции fi могут быть самыми разными, но чаще всего используют полиномы некоторой степени.

В этом случае итоговая интерполирующая функция (кусочно заданная на промежутках, ограниченных точками Pi) называется сплайном.

В разных инструментах для построения графиков — редакторах и библиотеках — задача «красивой интерполяции» решена по-разному. В конце статьи будет небольшой обзор существующих вариантов. Почему в конце? Чтобы после ряда приведённых выкладок и размышлений можно было поугадывать, кто из «серьёзных ребят» какие методы использует.

Ставим опыты

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

Давайте добавим немного конкретики. Вот набор точек (взяты почти с потолка):

0 020 045 -4753 33557 2662 38774 10489 095 100100 0 Результат линейной интерполяции этих точек выглядит так: Однако, как отмечалось выше, иногда хочется получить в итоге гладкую кривую.

Что есть гладкость? Бытовой ответ: отсутствие острых углов. Математический: непрерывность производных.

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

То есть, если функция имеет гладкость порядка 1 на отрезке [ab], это означает, что на [ab] она имеет непрерывную первую производную, а вот вторая производная уже терпит разрыв в каких-то точках.
У сплайна в контексте гладкости есть понятие дефекта. Дефект сплайна — это разность между его степенью и его гладкостью. Степень сплайна — это максимальная степень использованных в нём полиномов.

Важно отметить, что «опасными» точками у сплайна (в которых может нарушиться гладкость) являются как раз Pi, то есть точки сочленения сегментов, в которых происходит переход от одного полинома к другому. Все остальные точки «безопасны», ведь у полинома на области его определения нет проблем с непрерывностью производных.

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

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

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

Другое традиционное решение, кроме кубических сплайнов дефекта 1 — полиномы Лагранжа. Это полиномы степени n – 1, принимающие заданные значения в заданных точках. То есть членения на сегменты здесь не происходит, вся последовательность описывается одним полиномом.

Но вот что получается: Гладкость, конечно, присутствует, но наглядность пострадала так сильно, что… пожалуй, стоит поискать другие методы. На некоторых наборах данных результат выходит нормальный, но в общем случае ошибка относительно линейной интерполяции (и, соответственно, ложные экстремумы) может получаться слишком большой — из-за того, что тут всего один полином на все сегменты.

В компьютерной графике очень широко применяются кривые Безье, представленные полиномами k-й степени.

Они не являются интерполирующими, так как из k + 1 точек, участвующих в построении, итоговая кривая проходит лишь через первую и последнюю. Остальные k – 1 точек играют роль своего рода «гравитационных центров», притягивающих к себе кривую. Вот пример кубической кривой Безье:

Как это можно использовать для интерполяции? На основе этих кривых тоже можно построить сплайн. То есть на каждом сегменте сплайна будет своя кривая Безье k-й степени (кстати, k = 1 даёт линейную интерполяцию). И вопрос только в том, какое k взять и как найти k – 1 промежуточную точку.

Здесь бесконечно много вариантов (поскольку k ничем не ограничено), однако мы рассмотрим классический: k = 3.
Чтобы итоговая кривая была гладкой, нужно добиться дефекта 1 для составляемого сплайна, то есть сохранения непрерывности первой и второй производных в точках сочленения сегментов (Pi), как это делается в классическом варианте кубического сплайна.
Решение этой задачи подробно (с исходным кодом) рассмотрено здесь. Вот что получится на нашем тестовом наборе: Стало лучше: ложные экстремумы всё ещё есть, но хотя бы не так сильно отличаются от реальных.

Думаем и экспериментируем

Можно попробовать ослабить условие гладкости: потребовать дефект 2, а не 1, то есть сохранить непрерывность одной только первой производной.

Достаточное условие достижения дефекта 2 в том, что промежуточные контрольные точки кубической кривой Безье, смежные с заданной точкой интерполируемой последовательности, лежат с этой точкой на одной прямой и на одинаковом расстоянии:

В качестве прямых, на которых лежат точки Ci – 1(2), Pi и Ci(1), целесообразно взять касательные к графику интерполируемой функции в точках Pi. Это гарантирует отсутствие ложных экстремумов, так как кривая Безье оказывается ограниченной ломаной, построенной на её контрольных точках (если эта ломаная не имеет самопересечений).

Методом проб и ошибок эвристика для расчёта расстояния от точки интерполируемой последовательности до промежуточной контрольной получилась такой:Эвристика 1

Первая и последняя промежуточные контрольные точки равны первой и последней точке графика соответственно (точки C1(1) и Cn – 1(2) совпадают с точками P1 и Pn соответственно). В этом случае получается вот такая кривая: Как видно, ложных экстремумов уже нет. Однако если сравнивать с линейной интерполяцией, местами ошибка очень большая. Можно сделать её ещё меньше, но тут в ход пойдут ещё более хитрые эвристики. К текущему варианту мы пришли, уменьшив гладкость на один порядок. Можно сделать это ещё раз: пусть сплайн будет иметь дефект 3. По факту, тем самым формально функция не будет гладкой вообще: даже первая производная может терпеть разрывы. Но если рвать её аккуратно, визуально ничего страшного не произойдёт.

Отказываемся от требования равенства расстояний от точки Pi до точек Ci – 1(2) и Ci(1), но при этом сохраняем их все лежащими на одной прямой:

Эвристика для вычисления расстояний будет такой:Эвристика 2Расчёт l1 и l2 такой же, как в «эвристике 1».
При этом, однако, стоит ещё проверять, не совпали ли точки Pi и Pi + 1 по ординате, и, если совпали, полагать l1 = l2 = 0. Это защитит от «вспухания» графика на плоских отрезках (что тоже немаловажно с точки зрения правдивого отображения данных).
Результат получается такой: В результате на шестом сегменте ошибка уменьшилась, а на седьмом — увеличилась: кривизна у Безье на нём оказалась больше, чем хотелось бы. Исправить ситуацию можно, принудительно уменьшив кривизну и тем самым «прижав» Безье ближе к отрезку прямой, которая соединяет граничные точки сегмента. Для этого используется следующая эвристика:Эвристика 3Если абсцисса точки пересечения касательных в точках Pi(xiyi) и Pi + 1(xi + 1, yi + 1) лежит в отрезке [xixi + 1], то l1 либо l2 полагаем равным нулю. В том случае, если касательная в точке Pi направлена вверх, нулю полагаем максимальное из l1 и l2, если вниз — минимальное.
Результат следующий: На этом было принято решение признать цель достигнутой.

Может быть, кому-то пригодится код.

А как люди-то делают?

Обещанный обзор. Конечно, перед решением задачи мы посмотрели, кто чем может похвастаться, а уже потом начали разбираться, как сделать самим и по возможности лучше. Но вот как только сделали, не без удовольствия ещё раз прошлись по доступным инструментам и сравнили их результаты с плодами наших экспериментов. Итак, поехали.

MS Excel

Это очень похоже на рассмотренный выше сплайн дефекта 1, основанный на кривых Безье. Правда, в отличие от него в чистом виде, тут всего два ложных экстремума — первый и второй сегменты (у нас было четыре). Видимо, к классическому поиску промежуточных контрольных точек тут добавляются ещё какие-то эвристики. Но ото всех ложных экстремумов они не спасли.

LibreOffice Calc

В настройках это названо кубическим сплайном. Очевидно, он тоже основан на Безье, и вот тут уже точная копия нашего результата: все четыре ложных экстремума на месте. Есть там ещё один тип интерполяции, который мы тут не рассматривали: B-сплайн. Но для нашей задачи он явно не подходит, так как даёт вот такой результат 🙂

Highcharts, одна из самых популярных JS-библиотек для построения диаграмм

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

amCharts, ещё одна популярная JS-библиотека

Картина очень похожа на экселевскую, те же два ложных экстремума в тех же местах.

Coreplot, самая популярная библиотека построения графиков для iOS и OS X

Есть ложные экстремумы и видно, что используется сплайн дефекта 1 на основе Безье. Библиотека открытая, так что можно посмотреть в код и убедиться в этом.

aChartEngine, вроде как самая популярная библиотека построения графиков для Android

Больше всего похоже на кривую Безье степени n – 1, хотя в самой библиотеке график называется «cubic line». Странно! Как бы то ни было, тут не только присутствуют ложные экстремумы, но и в принципе не выполняются условия интерполяции.

Вместо заключения

В конечном счёте получается, что из «больших ребят» лучше всех проблему решили Highcharts. Но метод, описанный в этой статье, обеспечивает ещё меньшую ошибку относительно линейной интерполяции.

Вообще, заняться этим пришлось по просьбе покупателей, которые зарепортили нам «острые углы» в качестве бага в нашем движке диаграмм. Будем рады, если описанный опыт кому-то пригодится.

  • графики и диаграммы
  • визуализация данных
  • интерполяция

Источник: https://habr.com/post/264191/

Интерполяция в Excel: особенности, порядок действий и примеры

Формула интерполяции между двумя значениями

Табличный процессор Excel позволяет не только быстро производить различные вычисления, но и решать достаточно сложные задачи.

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

В Excel для этого предусмотрены различные инструменты, пользоваться которыми научит эта статья.

Метод интерполяции: что это такое?

В вычислительной математике так называют способ нахождения промежуточных неизвестных значений функции Y(X) по дискретному набору уже известных.

Интерполяция функции Y(X) может осуществляться только для тех ее аргументов, которые находятся внутри интервала [X0, Xn], такого, что известны значения Y(X0) и Y(Xn).

Если X не принадлежит [X0, Xn], то можно использовать метод экстраполяции.

В классической постановке интерполяционной задачи требуется найти приближенную аналитическую функцию φ(X), у которой значения в узловых точках Xi совпадают со значениями Y(Xi) исходной таблицы, т. е. соблюдается условие φ (Xi)=Yi (i = 0,1,2,…,n).

Линейная интерполяция в Excel

В самом известном табличном процессоре от Microsoft присутствует крайне полезный оператор «ПРЕДСКАЗ».

Рассмотрим данные, размещенные в в таблице, представленной ниже.

ABCDE
1xf(x)
2538
31068
41598
520128
625158
730188

В первом столбце находятся аргументы x, а во втором — соответствующие им значения некоторой линейной функции f(x). Предположим, что нам нужно узнать значение для аргумента x=28. Для этого:

  • выделяют любую пустую ячейку на листе табличного процессора, куда будет выводиться результат от осуществленных действий, например C1;
  • кликают по значку «fx» («Вставить функцию»), размещенному слева от строки формул;
  • в окошке «Мастера функций» заходят в категорию «Математические»;
  • находят оператор «ПРЕДСКАЗ» и нажимают на «OK».

В окне аргументов есть 3 поля. В первое вводят с клавиатуры значение аргумента (в конкретной задаче это 28). Для того чтобы заполнить поле «Известные значения _ y», нажимают на иконку с красной стрелкой слева от соответствующего окошка и выделяют соответствующую область на листе. В конкретном случае это часть столбца В с адресами из диапазона B2:B7.

Точно так же заполняют поле «Известные значения _ x» и нажимают на кнопку «Ок».

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

Графический метод: подготовка

Интерполяция в Excel, пример которой представлен выше, далеко не единственный способ, позволяющий выяснить промежуточные неизвестные значения функции Y(X) по дискретному набору уже известных.

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

ячейку с адресом B9).

ABCDE
1xf(x)
2538
31068
41598
520128
625158
730188
835218
940
1045278
1150308

Интерполяция в Excel в таком случае начинается с построения графика. Для этого:

  • во вкладке «Вставка» выделяют табличный диапазон;
  • в блоке инструментов «Диаграммы» выбирают значок «График»;
  • в появившемся списке выбирают тот, который лучше подходит для решения конкретной задачи.

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

Интерполяция в Excel: решение графическим методом

Займемся обработкой графика. Для этого выделяют сплошную синюю линию и удаляют ее нажатием кнопки Delete, которая находится на клавиатуре.

Затем:

  • выделяют плоскость, на которой находится график;
  • в контекстном меню выбирают кнопку «Выбрать данные…»;
  • в окне «Выбор источника данных» в правом блоке нажимают «Изменить»;
  • нажимают на иконку с красной стрелкой справа от поля «Диапазон подписей осей»;
  • выделяют диапазон А2:А11;
  • нажимают на кнопку «OK»;
  • вновь вызывают окно «Выбор источника данных»;
  • нажимают на кнопку «Скрытые и пустые ячейки» в нижнем левом углу;
  • в строке «Показывать пустые ячейки» переключатель переставляют в позицию «Линия» и нажимают «OK»;
  • подтверждают эти действия тем же способом.

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

Использование специальной функции НД

Теперь, когда вы знаете, как сделать интерполяцию в Excel графическим методом или посредством оператора «ПРЕДСКАЗ», решение многих практических задач для вас не составит большого труда. Однако это еще не все. Табличный процессор от Microsoft представляет возможность найти неизвестное значение функции с помощью функции НД.

Предположим, что график уже построен, на нем уже установлены корректные подписи шкалы. Попробуем ликвидировать разрыв. Для этого:

  • выделяют в таблице ячейку, в которой отсутствует значение функции;
  • выбирают значок «Вставить функцию»;
  • в «Мастере функций» в окошке «Категории» находят строку «Полный алфавитный перечень» (в некоторых версиях процессора «Проверка свойств и значений»);
  • нажимают на запись «НД» и жмут на кнопку «OK».

После этого в ячейке B9 появляется значение ошибки «#Н/Д». Однако обрыв графика автоматически устраняется.

Вы можете поступить даже проще: внести с клавиатуры в ячейку B9 символы «#Н/Д» (без кавычек).

Билинейная интерполяция

Круг задач, для решения которых можно использовать моделирование посредством функций одной переменной, достаточно ограничен. Поэтому имеет смысл рассмотреть, как используется формула двойной интерполяции в Excel. Примеры могут быть самыми разными. Например: имеется таблица (см. ниже).

ABCDEFG
12004006008001000Пролет
2201020160210260
3304060190240290
440130180230280330
550180230280330380
660240290340390440
770310360410460510
880390440490540590
990750800850900950
10Высота278

Требуется вычислить давление ветра при величине пролета 300 м на высоте 25 м.

В таблицу добавляют новые записи так, как представлено на рисунке (см. ниже).

Как видно, в нее добавлены ячейки для высоты и пролета в J1 и J2.

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

  • копируют текст формулы из ячейки с адресом J17 в ячейку J19;
  • заменяют в формуле ссылку на J15 значением в ячейке J15: J7+(J8-J7)*J11/J13;
  • повторяют эти действия до получения необходимой формулы.

Использование spline

Предыдущий метод достаточно громоздкий, поэтому в некоторых случаях предпочтительнее интерполяция сплайнами. В Excel ее суть заключается в нахождении интерполирующей функции φ(Х) по формулам одного и того же типа для различных подмножеств аргумента.

Далее осуществляется стыковка значений φ(Х) и ее производных на граничных значениях аргументов каждого из подмножеств. В Excel для этих целей предусмотрены специальные функции, а также возможно написание макросов на VBA.

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

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

Источник: https://FB.ru/article/321859/interpolyatsiya-v-excel-osobennosti-poryadok-deystviy-i-primeryi

1. Методы интерполяции

Формула интерполяции между двумя значениями

Интерполяция. Введение. Общая постановка задачи

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

Таблично заданные в математических моделях функции обычно записываются в таблицы вида:

Х

Х0

Х1

Хn

Y1(X)

Y(Х0)

Y(Х1)

Y(Хn)

( 1 )

Ym(X)

Y(Х0)

Y(Х1)

Y(Хn)

Ограниченность информации, представленной такими таблицами, в ряде случаев требует получить значения функций Yj(X) (j=1,2,…,m) в точках Х, не совпадающих с узловыми точками таблицы Хi (i=0,1,2,…,n).

В таких случаях необходимо определить некоторое аналитическое выражение φj(Х) для вычисления приближенных значений исследуемой функции Yj(X) в произвольно задаваемых точках Х. Функция φj(Х) используемая для определения приближенных значений функции Yj(X) называется аппроксимирующей функцией (от латинского approximo – приближаюсь).

Близость аппроксимирующей функции φj(Х) к аппроксимируемой функции Yj(X) обеспечивается выбором соответствующего алгоритма аппроксимации.

Все дальнейшие рассмотрения и выводы мы будем делать для таблиц, содержащих исходные данные одной исследуемой функции (т. е. для таблиц с m=1).

1.1 Постановка задачи интерполяции

Наиболее часто для определения функции φ(Х) используется постановка, называемая постановкой задачи интерполяции.

В этой классической постановке задачи интерполяции требуется определить приближенную аналитическую функцию φ(Х), значения которой в узловых точках Хi совпадают со значениями Y(Хi) исходной таблицы, т.е. условий

ϕ( X i ) =Yi (i = 0,1,2,…, n)

(2)

Построенная таким образом аппроксимирующая функция φ(Х) позволяет получить достаточно близкое приближение к интерполируемой функции Y(X) в пределах интервала значений аргумента [Х0; Хn], определяемого таблицей. При задании значений аргумента Х, не принадлежащих этому интервалу, задача интерполяции преобразуется в задачу экстраполяции. В этих случаях точность

значений, получаемых при вычислении значений функции φ(Х), зависит от расстояния значения аргумента Х от Х0 , если Х < Х0 , или от Хn , если Х > Хn .

При математическом моделировании интерполирующая функция может быть использована для вычисления приближенных значений исследуемой функции в промежуточных точках подынтервалов [Хi; Хi+1]. Такая процедура называется уплотнением таблицы.

Алгоритм интерполяции определяется способом вычисления значений функции φ(Х). Наиболее простым и очевидным вариантом реализации интерполирующей функции является замена исследуемой функции Y(Х) на интервале [Хi; Хi+1] отрезком прямой, соединяющим точки Yi , Yi+1. Этот метод называется методом линейной интерполяции.

1.2 Линейная интерполяция

При линейной интерполяции значение функции в точке Х, находящейся между узлами Хi и Хi+1, определяется по формуле прямой, соединяющей две соседние точки таблицы

Y( X ) =Y( Xi )+

Y( Xi+1 ) −Y( Xi )

( X −Xi ) (i =0,1,2, …,n),

(3)

Xi+1 −Xi

На рис. 1 приведен пример таблицы, полученной в результате измерений некоторой величины Y(X). Строки, исходной таблицы выделены заливкой. Справа от таблицы построена точечная диаграмма, соответствующая этой таблице. Уплотнение таблицы выполнено благодаря вычислению по формуле

(3) значений аппроксимируемой функции в точках Х, соответствующих серединам подынтервалов [Xi; Xi+1] (i=0, 1, 2, … , n).

Рис.1. Уплотненная таблица функции Y(X) и соответствующая ей диаграмма

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

интерполяции, существенно зависит от характера интерполируемой функции и от расстояния между узлами таблицы Xi,, Xi+1.

Очевидно, что если функция плавная, то, даже при сравнительно большом расстоянии между узлами, график, построенный путем соединения точек отрезками прямых, позволяет достаточно точно оценить характер функции Y(Х). Если же функция изменяется достаточно быстро, а расстояния между узлами большие, то линейная интерполирующая функция не позволяет получить достаточно точное приближение к реальной функции.

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

1.3 Интерполяция каноническим полиномом

Метод интерполяции функции каноническим полиномом основывается на построении интерполирующей функции как полинома в виде [ 1 ]

ϕ( x) = Pn ( x) = c0 + c1 x + c2 x 2 + … + cn x n

( 4 )

Коэффициенты сi полинома (4) являются свободными параметрами интерполяции, которые определяются из условий Лагранжа:

Pn ( xi ) = Yi , ( i = 0 , 1 , … , n )

Используя (4) и (5) запишем систему уравнений

c

+c x +c x 2

+…+c x n =Y

0

1

0

2

0

n

0

0

c

+c x +c x 2

+…+c x n

=Y

0

1

1

2

1

.

n

1

1

.

.

.

.

.

c

+c x

+c x 2

+…+c x n =Y

0

1

n

2

n

n

n

n

Вектор решения сi ( i = 0, 1, 2, …, n) системы линейных алгебраических уравнений (6) существует и может быть найден, если среди узлов хi нет совпадающих. Определитель системы (6) называется определителем Вандермонда1 и имеет аналитическое выражение [ 2 ].

1 Определителем Вандермонда называется определитель

.

Он равен нулю тогда и только тогда, когда xi = xj для некоторых . (Материал из Википедии — свободной энциклопедии)

Для определения значений коэффициентов сi (i = 0, 1, 2, … , n)

уравнений (5) можно записать в векторно-матричной форме

__

A* C =Y ,

где А, матрица коэффициентов, определяемых таблицей степеней вектора аргументов X= (xi0, xi, xi2, … , xin)T (i = 0, 1, 2, … , n)

1

x0

x02

x0n

А=

1

x

x2

xn

1

1

1

( 8 )

. .

.

.

.

,

1

xn

xn2

xnn

__

С – вектор-столбец коэффициентов сi (i = 0, 1, 2, … , n), а Y – вектор-столбец значений Yi (i = 0, 1, 2, … , n) интерполируемой функции в узлах интерполяции.

https://www.youtube.com/watch?v=mGqmaSjf_NM

Решение этой системы линейных алгебраических уравнений может быть получено одним из методов, описанных в [ 3 ]. Например, по формуле

где А-1 – матрица обратная матрице А. Для получения обратной матрицы А-1 можно воспользоваться функцией МОБР(), входящей в набор стандартных функций программы Microsoft Excel.

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

Запишем матрицу А для таблицы, приведенной на рис.1, без учёта строк уплотняющих таблицу.

Рис.2 Матрица системы уравнений для вычисления коэффициентов канонического полинома

Используя функцию МОБР(), получим матрицу А-1 обратную матрице А (рис. 3). После чего, по формуле (9) получим вектор коэффициентов С={c0, c1, c2, …, cn }T, приведенный на рис. 4.

Для вычисления значений канонического полинома в ячейку столбца Yканонич, соответствующую значению х0, введем преобразованную к следующему виду формулу, соответствующую нулевой строке системы (6)

=(((( c5

* х0+ c4)* х0+ c3)* х0+ c2)* х0+ c1)* х0+ c0

(10)

или

= c0 +x *(c1 + x *(c2 + x*(c3+ x*( c4+ x* c5))))

Вместо записи “ci” в формуле, вводимой в ячейку таблицы Excel, должна стоять абсолютная ссылка на соответствующую ячейку, содержащую этот коэффициент (см. рис. 4). Вместо “х0” – относительная ссылка на ячейку столбца Х (см. рис. 5).

Рис.4.

Вектор коэффициентов

Рис.3 Обратная матрица системы уравнений (5)

канонического полинома

О правильности ввода формулы свидетельствует

получение в ячейке

Yканонич(0) значения, совпадающего со значением в ячейке Yлин(0). При протягивании формулы, записанной в ячейку Yканонич(0), должны также совпасть и значения Yканонич(i), соответствующие узловым точкам исходной

таблицы (см. рис.5).

Рис. 5. Диаграммы, построенные по таблицам линейной и канонической интерполяции

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

Источник: https://StudFiles.net/preview/2640053/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.