Ejemplo n.º 1
0
        public double Interpolate(double x)
        {
            var interval = PointFunctions.FindInterval(x, _points);

            if (interval.left is null || interval.right is null || interval.left.Equals(interval.right))
            {
                throw new ArgumentOutOfRangeException($"Wrong interpolation point (x = {x}).");
            }
            return(interval.left.Y + (((x - interval.left.X) / (interval.right.X - interval.left.X)) * (interval.right.Y - interval.left.Y)));
        }
Ejemplo n.º 2
0
        public double Interpolate(double x)
        {
            var interval = PointFunctions.FindInterval(x, _points);

            if (interval.Item1 is null || interval.Item2 is null || interval.Item1.Equals(interval.Item2))
            {
                throw new ArgumentOutOfRangeException($"Wrong interpolation point (x = {x}).");
            }

            double deltaX = interval.Item2.X - interval.Item1.X;

            double _xt = (1.0 - Math.Cos((x - interval.Item1.X) / deltaX * Math.PI)) / 2.0;

            return(interval.Item1.Y * (1.0 - _xt) + interval.Item2.Y * _xt);
        }