Интерполяция в точке

Вопрос скорее больше по математической части. У меня задание: получать точку, в которой нужно интерполировать точечно заданную функцию. Есть пример:

public override double CalculateValue(double x)
    {
        var nmax = Values.Length - 1;

        if (nmax < 0)
        {
            return base.CalculateValue(x);
        }

        if (x < 0)
        {
            return Values[0];
        }

        var n = (int)x;

        return (n >= nmax) ? Values[nmax] : (Values[n] + (Values[n + 1] - Values[n]) * (x - n));
    }

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


Ответы (0 шт):