Jump to content

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

Учитывая две красные точки, синяя линия представляет собой линейный интерполянт между точками, а значение y в точке x можно найти путем линейной интерполяции.

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

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

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

Если две известные точки заданы координатами и , линейный интерполянт — это прямая линия между этими точками. За ценность в интервале , значение по прямой определяется из уравнения наклонов

которое можно вывести геометрически из рисунка справа. Это частный случай полиномиальной интерполяции с .

Решая это уравнение для , что является неизвестным значением в , дает

что представляет собой формулу линейной интерполяции в интервале . За пределами этого интервала формула идентична линейной экстраполяции .

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

что дает формулу для линейной интерполяции, приведенную выше.

Интерполяция набора данных [ править ]

Линейная интерполяция набора данных (красные точки) состоит из фрагментов линейных интерполянтов (синие линии).

Линейная интерполяция набора точек данных ( x 0 , y 0 ), ( x 1 , y 1 ), ..., ( x n , y n ) определяется как кусочно-линейная , возникающая в результате объединения интерполянтов линейных сегментов между каждую пару точек данных. В результате получается непрерывная кривая с разрывной производной (вообще), то есть класса дифференцируемости. .

Линейная интерполяция как приближение [ править ]

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

где p линейной интерполяции, обозначает полином определенный выше:

, можно доказать Используя теорему Ролля , что если f имеет непрерывную вторую производную, то ошибка ограничена величиной

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

История и приложения [ править ]

Линейная интерполяция использовалась с древности для заполнения пробелов в таблицах. Предположим, что у вас есть таблица с населением некоторой страны в 1970, 1980, 1990 и 2000 годах, и вы хотите оценить численность населения в 1994 году. Линейная интерполяция — простой способ сделать это. Считается, что он использовался в Империи Селевкидов (последние три века до н. э.) и греческим астрономом и математиком Гиппархом (второй век до н. э.). Описание линейной интерполяции можно найти в древнем китайском математическом тексте под названием «Девять глав математического искусства» (九章算術). [1] датируется 200 г. до н. э. — 100 г. н. э., и « Альмагест» (2 век н. э.) Птолемея .

Основная операция линейной интерполяции между двумя значениями обычно используется в компьютерной графике . жаргоне этой области его иногда называют лерпом ( от линейной интерполяции На ). Этот термин может использоваться как глагол или существительное для операции. например: « Алгоритм Брезенхэма постепенно перемещается между двумя конечными точками линии».

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

Расширения [ править ]

Сравнение линейной и билинейной интерполяции, некоторые 1- и 2-мерные интерполяции.
Черные и красные / желтые / зеленые / синие точки соответствуют интерполируемой точке и соседним выборкам соответственно.
Их высота над землей соответствует их значениям.

Точность [ править ]

Если С 0 функции недостаточно, например, если известно, что процесс, создавший точки данных, более плавный, чем C. 0 , обычно линейную интерполяцию заменяют сплайн-интерполяцией или, в некоторых случаях, полиномиальной интерполяцией .

Многомерный [ править ]

Линейная интерполяция, описанная здесь, предназначена для точек данных в одном пространственном измерении. Для двух пространственных измерений расширение линейной интерполяции называется билинейной интерполяцией , а в трех измерениях — трилинейной интерполяцией . Обратите внимание, однако, что эти интерполянты больше не являются линейными функциями пространственных координат, а являются продуктами линейных функций; это иллюстрируется явно нелинейным примером билинейной интерполяции на рисунке ниже. Другие расширения линейной интерполяции могут применяться к другим типам сеток, таким как треугольные и тетраэдральные сетки, включая поверхности Безье . Их можно определить как действительно многомерные кусочно-линейные функции (см. второй рисунок ниже).

Пример билинейной интерполяции на единичном квадрате со значениями z 0, 1, 1 и 0,5, как указано. Интерполированные значения между ними представлены цветом.
Кусочно-линейная функция в двух измерениях (вверху) и выпуклые многогранники, на которых она линейна (внизу)

Поддержка языков программирования [ править ]

Многие библиотеки и языки шейдеров имеют вспомогательную функцию «lerp» (в GLSL известную как mix ), возвращающую интерполяцию между двумя входными данными. (v0, v1) для параметра t в замкнутом единичном интервале [0, 1]. Сигнатуры между функциями lerp по-разному реализованы в обеих формах. (v0, v1, t) и (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;
}

Эта функция lerp обычно используется для альфа-смешивания (параметр « t » является «значением альфа»), и формула может быть расширена для смешивания нескольких компонентов вектора (например, пространственных x , y , z осей или r , g). , b цветовые компоненты) параллельно.

См. также [ править ]

Ссылки [ править ]

  1. ^ Джозеф Нидэм (1 января 1959 г.). Наука и цивилизация в Китае: Том 3, Математика и науки о небе и Земле . Издательство Кембриджского университета. стр. 147–. ISBN  978-0-521-05801-8 .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5216ce6569a94c0a988551156ccb5a43__1717898040
URL1:https://arc.ask3.ru/arc/aa/52/43/5216ce6569a94c0a988551156ccb5a43.html
Заголовок, (Title) документа по адресу, URL1:
Linear interpolation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)