Интерполяция, интерполирование — в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.
Многим из тех, кто сталкивается с научными и инженерными расчётами, часто приходится оперировать наборами значений, полученных опытным путём или методом случайной выборки. Как правило, на основании этих наборов требуется построить функцию, на которую могли бы с высокой точностью попадать другие получаемые значения. Такая задача называется аппроксимацией. Интерполяцией называют такую разновидность аппроксимации, при которой кривая построенной функции проходит точно через имеющиеся точки данных.
Проще говоря: способ приближенного вычисления значения величины, находящегося между двумя известными значениями.
Примечание! Для удобства можно воспользоваться другими удобными формами для рассчета:
– Линейная интерполяция по графику
– Двойная интерполяция
Загрузить PDF
Загрузить PDF
Линейная интерполяция (или просто интерполяция)[1]
— процесс нахождения промежуточных значений величины по ее известным значениям. Многие люди могут провести интерполяцию, полагаясь исключительно на интуицию, но в этой статье описан формализованный математический подход к проведению интерполяции.
Шаги
-
1
Определите величину, для которой вы хотите найти соответствующее значение. Интерполяция может быть проведена для вычисления логарифмов или тригонометрических функций или для вычисления соответствующего объема или давления газа при данной температуре.[2]
Научные калькуляторы в значительной степени заменили логарифмические и тригонометрические таблицы; поэтому в качестве примера проведения интерполяции мы вычислим давление газа при температуре, значение которой не указано в справочных таблицах (или на графиках).- В уравнении, которое мы выведем, «x» будет обозначать известную величину, а «у» — неизвестную величину (интерполированное значение). При построении графика эти значения откладываются соответственно их обозначениям — величина «x» — по оси X, величина «у» — по оси Y.
- В нашем примере под «x» будет подразумеваться температура газа, равная 37 °С.
-
2
В таблице или на графике найдите ближайшие значения, расположенные ниже и выше значения «x». В нашей справочной таблице не приведено давление газа при 37 °С, но приведены значения давления при 30 °С и при 40 °С. Давление газа при температуре 30 °С = 3 кПа, а давление газа при 40 °С = 5 кПа.
- Так как мы обозначили температуру в 37 °С как «x», то теперь обозначим температуру в 30 °С как x1, а температуру в 40 °С как x2.
- Так как мы обозначили неизвестное (интерполированное) давление газа как «у», то теперь обозначим давление в 3 кПа (при 30 °С) как у1, а давление в 5 кПа (при 40 °С) как у2.
- Так как мы обозначили температуру в 37 °С как «x», то теперь обозначим температуру в 30 °С как x1, а температуру в 40 °С как x2.
-
3
Найдем интерполированное значение. Уравнение для нахождения интерполированного значения можно записать в виде y = y1 + ((x – x1)/(x2 – x1) * (y2 – y1))[3]
- Подставим значения x, x1, x2 и получим: (37 – 30)/(40 – 30) = 7/10 = 0,7.
- Подставим значения у1, у2 и получим: (5 – 3) = 2.
- Умножив 0,7 на 2, получим 1,4. Сложим 1,4 и у1: 1,4 + 3 = 4,4 кПа. Проверим ответ: найденное значение 4,4 кПа лежит между 3 кПа (при 30 °С) и 5 кПа (при 40 °С), а так как 37 °С ближе к 40 °С, чем к 30 °С, то и окончательный результат (4,4 кПа) должен быть ближе к 5 кПа, чем к 3 кПа.
Реклама
- Подставим значения x, x1, x2 и получим: (37 – 30)/(40 – 30) = 7/10 = 0,7.
Советы
- Если вы умеете работать с графиками, вы можете сделать грубую интерполяцию, отложив известное значение по оси X и найдя соответствующее значение на оси Y.[4]
В приведенном выше примере можно построить график, на котором по оси X откладывается температура (в десятках градусов), а по оси Y — давление (в единицах кПа). На этом графике вы можете нанести точку 37 градусов, а затем найти точку на оси Y, соответствующую этой точке (она будет лежать между точками 4 и 5 кПа). Приведенное выше уравнение просто формализует процесс мышления и обеспечивает получение точного значения. - В отличие от интерполяции, экстраполяция позволяет вычислить приблизительные значения величины вне диапазона значений, приведенных в таблицах или отображенных на графиках.[5]
Реклама
Об этой статье
Эту страницу просматривали 97 543 раза.
Была ли эта статья полезной?
Инструкция для онлайн калькулятора для нахождения линейной интерполяци
- Укажите «х1» и «у1»
- Укажите «х2» и «у2»
- Укажите «х» при котором хотите найти «у»
Ответом будет посчитанный «у», который Вы сможете увидеть напротив вводимого значения «х», на графике или в разделе «Решение».
На графике искомые значения будут показаны красным цветом.
В разделе решение, в зависимости от заданных х1, у1, х2, у2 и х, будет определен метод расчета (интерполяция или экстраполяция).
Формула линейной интерполяции
y = y1 + ((x – x1)/(x2 - x1) * (y2 - y1))
где:
- y – искомое;
- x – показатель для которого определяется значение (искомое);
- x1 – наименьший показатель;
- x2 – наибольший показатель;
- y1 – значение наименьшего показателя;
- y2 – значение наибольшего показателя.
Что такое интерполяция
Интерполяция – это способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.
Интерполяция использует значения некоторой функции, заданные в ряде точек, чтобы предсказать значения функции между ними. Перечисленные ниже методы предназначены для создания ряда с более высокой частотой наблюдений на основе ряда с низкой частотой. Например, вычислить ряд с квартальной динамикой на основе ряда годовых данных.
Предположим, что есть система несовпадающих точек xi(i ϵ 0, 1, …, N) из некоторой области G. Значения функции f известны только в этих точках: yi = f(xi), i = 1, …, N.
Процесс интерполяции состоит в поиске такой функции f из заданного класса функций, что F(xi) = yi, i = 1, …, N.
Точки xi являются узлами интерполяции, а их совокупность – интерполяционной сеткой.
Пары (xi, yi) являются точками данных (базовыми точками).
Разность между «соседними» значениями ∆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].
Интерполяция для других динамик осуществляется аналогичным образом.
Интерполяция многочленом Лагранжа
Интерполяционный многочлен Лагранжа – это многочлен минимальной степени, который принимает данные значения в данном наборе точек. Для n + 1 пар чисел (x0, y0), (x1, y1), …, (xn, yn), где все 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.
Через две заданные красные точки принадлежащие интерполируемой функции проведена синяя линия — график интерполирующей функции (линейный интерполянт), значение в произвольной точке принадлежащей отрезку, можно найти с помощью формулы линейной интерполяции
Лине́йная интерполя́ция — интерполяция алгебраическим двучленом функции заданной в двух точках и отрезка .
В случае, если заданы значения в нескольких точках, функция заменяется кусочно-линейной функцией.
Формула линейной интерполяции является частным случаем интерполяционной формулы Лагранжа и интерполяционной формулы Ньютона.
Геометрическая интерпретация[править | править код]
Геометрически это означает замену графика функции прямой, проходящей через точки и .
Уравнение такой прямой имеет вид:
отсюда для
Это и есть формула линейной интерполяции, при этом:
- где — погрешность формулы линейной интерполяции.
Если интерполируемая функция имеет непрерывную вторую производную на отрезке интерполяции, то:
При этом, исходя из теоремы Ролля, справедлива оценка ошибки интерполяции:
Применение[править | править код]
На графике — пример кусочно-линейной интерполяции — график заданной функции приближённо представлен в виде ломаной линии
Линейная интерполяция применяется для сокращения размера таблиц таблично заданных функций, при этом значения функции заданы в сокращённом количестве точек, а её значения в точках, отсутствующих в таблице, вычисляются по формуле линейной интерполяции.
Другой пример применения линейной интерполяции — приближенное представление данных в виде кусочно-линейной функции.
См. также[править | править код]
- Билинейная интерполяция
- Интерполяция алгебраическими многочленами
- Обратная матрица
From Wikipedia, the free encyclopedia
Given the two red points, the blue line is the linear interpolant between the points, and the value y at x may be found by linear interpolation.
In mathematics, linear interpolation is a method of curve fitting using linear polynomials to construct new data points within the range of a discrete set of known data points.
Linear interpolation between two known points[edit]
In this geometric visualisation, the value at the green circle multiplied by the horizontal distance between the red and blue circles is equal to the sum of the value at the red circle multiplied by the horizontal distance between the green and blue circles, and the value at the blue circle multiplied by the horizontal distance between the green and red circles.
If the two known points are given by the coordinates and , the linear interpolant is the straight line between these points. For a value x in the interval , the value y along the straight line is given from the equation of slopes
which can be derived geometrically from the figure on the right. It is a special case of polynomial interpolation with n = 1.
Solving this equation for y, which is the unknown value at x, gives
which is the formula for linear interpolation in the interval . Outside this interval, the formula is identical to linear extrapolation.
This formula can also be understood as a weighted average. The weights are inversely related to the distance from the end points to the unknown point; the closer point has more influence than the farther point. Thus, the weights are and , which are normalized distances between the unknown point and each of the end points. Because these sum to 1,
yielding the formula for linear interpolation given above.
Interpolation of a data set[edit]
Linear interpolation on a data set (red points) consists of pieces of linear interpolants (blue lines).
Linear interpolation on a set of data points (x0, y0), (x1, y1), …, (xn, yn) is defined as the concatenation of linear interpolants between each pair of data points. This results in a continuous curve, with a discontinuous derivative (in general), thus of differentiability class .
Linear interpolation as approximation[edit]
Linear interpolation is often used to approximate a value of some function f using two known values of that function at other points. The error of this approximation is defined as
where p denotes the linear interpolation polynomial defined above:
It can be proven using Rolle’s theorem that if f has a continuous second derivative, then the error is bounded by
That is, the approximation between two points on a given function gets worse with the second derivative of the function that is approximated. This is intuitively correct as well: the “curvier” the function is, the worse the approximations made with simple linear interpolation become.
History and applications[edit]
Linear interpolation has been used since antiquity for filling the gaps in tables. Suppose that one has a table listing the population of some country in 1970, 1980, 1990 and 2000, and that one wanted to estimate the population in 1994. Linear interpolation is an easy way to do this. It is believed that it was used in the Seleucid Empire (last three centuries BC) and by the Greek astronomer and mathematician Hipparchus (second century BC). A description of linear interpolation can be found in the ancient Chinese mathematical text called The Nine Chapters on the Mathematical Art (九章算術),[1] dated from 200 BC to AD 100 and the Almagest (2nd century AD) by Ptolemy.
The basic operation of linear interpolation between two values is commonly used in computer graphics. In that field’s jargon it is sometimes called a lerp (from linear interpolation). The term can be used as a verb or noun for the operation. e.g. “Bresenham’s algorithm lerps incrementally between the two endpoints of the line.”
Lerp operations are built into the hardware of all modern computer graphics processors. They are often used as building blocks for more complex operations: for example, a bilinear interpolation can be accomplished in three lerps. Because this operation is cheap, it’s also a good way to implement accurate lookup tables with quick lookup for smooth functions without having too many table entries.
Extensions[edit]
Comparison of linear and bilinear interpolation some 1- and 2-dimensional interpolations.
Black and red/yellow/green/blue dots correspond to the interpolated point and neighbouring samples, respectively.
Their heights above the ground correspond to their values.
Accuracy[edit]
If a C0 function is insufficient, for example if the process that has produced the data points is known to be smoother than C0, it is common to replace linear interpolation with spline interpolation or, in some cases, polynomial interpolation.
Multivariate[edit]
Linear interpolation as described here is for data points in one spatial dimension. For two spatial dimensions, the extension of linear interpolation is called bilinear interpolation, and in three dimensions, trilinear interpolation. Notice, though, that these interpolants are no longer linear functions of the spatial coordinates, rather products of linear functions; this is illustrated by the clearly non-linear example of bilinear interpolation in the figure below. Other extensions of linear interpolation can be applied to other kinds of mesh such as triangular and tetrahedral meshes, including Bézier surfaces. These may be defined as indeed higher-dimensional piecewise linear function (see second figure below).
Example of bilinear interpolation on the unit square with the z values 0, 1, 1 and 0.5 as indicated. Interpolated values in between represented by colour.
A piecewise linear function in two dimensions (top) and the convex polytopes on which it is linear (bottom)
Programming language support[edit]
Many libraries and shading languages have a “lerp” helper-function (in GLSL known instead as mix), returning an interpolation between two inputs (v0, v1) for a parameter (t) in the closed unit interval [0, 1]. Signatures between lerp functions are variously implemented in both the forms (v0, v1, t) and (t, v0, v1).
// Imprecise method, which does not guarantee v = v1 when t = 1, due to floating-point arithmetic error. // This method is monotonic. This form may be used when the hardware has a native fused multiply-add instruction. float lerp(float v0, float v1, float t) { return v0 + t * (v1 - v0); } // Precise method, which guarantees v = v1 when t = 1. This method is monotonic only when v0 * v1 < 0. // Lerping between same values might not produce the same value float lerp(float v0, float v1, float t) { return (1 - t) * v0 + t * v1; }
This lerp function is commonly used for alpha blending (the parameter “t” is the “alpha value”), and the formula may be extended to blend multiple components of a vector (such as spatial x, y, z axes or r, g, b colour components) in parallel.
See also[edit]
- Bilinear interpolation
- Spline interpolation
- Polynomial interpolation
- de Casteljau’s algorithm
- First-order hold
- Bézier curve
References[edit]
- ^ Joseph Needham (1 January 1959). Science and Civilisation in China: Volume 3, Mathematics and the Sciences of the Heavens and the Earth. Cambridge University Press. pp. 147–. ISBN 978-0-521-05801-8.
- Meijering, Erik (2002), “A chronology of interpolation: from ancient astronomy to modern signal and image processing”, Proceedings of the IEEE, 90 (3): 319–342, doi:10.1109/5.993400.
External links[edit]
- Equations of the Straight Line at cut-the-knot
- Well-behaved interpolation for numbers and pointers
- “Linear interpolation”, Encyclopedia of Mathematics, EMS Press, 2001 [1994]
- “Finite-increments formula”, Encyclopedia of Mathematics, EMS Press, 2001 [1994]