Объясните, пожалуйста, что такое интерполяция и экстраполяция. И вообще, а для чего они, собственно, нужны (вообще и в программировании в частности)?
Заранее спасибо.
Здравствуйте, Int, Вы писали:
Int>Объясните, пожалуйста, что такое интерполяция и экстраполяция. И вообще, а для чего они, собственно, нужны (вообще и в программировании в частности)? Int>Заранее спасибо.
Посмотри например здесь.
Применяется это очень широко.
Например для построения численных моделей объектов.
Прости, что ответил так неконкретно, но это действительно так.
Например в той области где я сейчас работаю, применяются кубические
сплайны для представления характеристик реальной железяки, подключенной к компу.
Про этот объект нам известно некоторое конечное количество
характеристик, которые на самом деле являются точками в трехмерном пространстве.
По этим точкам мы строим поверхность, которая затем используется
для получения характеристик объекта в произвольных точках.
Обычно где-то на 2-м курсе универа об этом довольно
подробно и нудно рассказывают.
P.S.
Кстати, ту единственную ссылку, которую тут привел,
я нашел тупо скопировав тему твоего сообщения в яндексе
Здравствуйте, Int, Вы писали:
Int>Объясните, пожалуйста, что такое интерполяция и экстраполяция. И вообще, а для чего они, собственно, нужны (вообще и в программировании в частности)?
И то и другое это нахождение значений функции в точках, где оно по каким-то причинам неизвестно, при помощи значений в известных точках и разных хитрых формул.
Самое простое — найти ближайшую точку с известной функцией и взять значение там за значение здесь. Это называется ступенчатая интерполяция.
Чуть умнее — взять две ближайшие точки — слева и справа и построить прямую между ними. Получишь формулу линейной интерполяции.
y(x)=(y(x1)*(x2-x)+y(x2)*(x-x1))/(x2-x1)
Если провести параболу черех 3 ближайшие точки (а это можно сделать только одним способом) будет квадратичная интерполяция.
Очень удобна сплайн-интерполяция (потому что не рвётся нигде и не переламывается). Там формулы сложные, но известные. Понимать это можно как железную гибкую линейку, которую пустили промеж вбитых гвоздей.
Экстраполяция в отличие от интерполяции пытается найти приближённые значения левее самой левой известной точки и правее самой правой. Там небольшие нюансы, но суть та же.
В программировании бех этой фигни нельзя просто потому, что все функции из реальной жизни заданы как массивы. Например, замеры амплитуды звука в звуковом файле. Если ты, скажем, хочешь перевести wav с одной частотой записи в другую, то придётся во всём этом разобраться.
Кроме того, часто это нужно для скорости. Например sin(x) прекрасно вычисляется для любого double x, но быстрее предварительно вычислить его в отдельных точках и занести в массив, а потом юзать сабж (например, просто брать ближайшее значение слева).
Здравствуйте, Int, Вы писали:
Int>Объясните, пожалуйста, что такое интерполяция и экстраполяция. И вообще, а для чего они, собственно, нужны (вообще и в программировании в частности)? Int>Заранее спасибо.
Если на пальцах. Допустим, нам известны несколько точек на кривой (координаты и значения) в заданном отрезке. Интерполяцией можно найти неизвестные точки внутри отрезка, а экстраполицией вне.
Int>А что в этой формуле значит y (без индекса)?y
А подумать? вот х без индекса что значит?
Тебе дали формулу х = f(y). Позволяет вычислить икс по любому игреку.
А сама функция f — линейная, т.е. вида ay+b, где a и b подобраны так, чтобы две заданные точки ей удовлетворяли:
х1 = f(y1)
x2 = f(y2)
... << RSDN@Home 1.0 beta 5 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.