public HarmonicMethod(List<Sample> samples)
        {
            this.regression = new HarmonicRegression();
            this.samples = samples;

            this.CalculateModel();
        }
        private static void HarmonicRegressionTest()
        {
            var samples = new List<Sample>();
            samples.Add(new Sample() { Time = 1, Value = 0 });
            samples.Add(new Sample() { Time = 2, Value = 0.5 });
            samples.Add(new Sample() { Time = 3, Value = 1 });
            samples.Add(new Sample() { Time = 4, Value = 0.5 });
            samples.Add(new Sample() { Time = 5, Value = 0 });
            samples.Add(new Sample() { Time = 6, Value = -0.5 });
            samples.Add(new Sample() { Time = 7, Value = -1 });
            samples.Add(new Sample() { Time = 8, Value = -0.5 });
            samples.Add(new Sample() { Time = 9, Value = 0 });
            samples.Add(new Sample() { Time = 10, Value = 0.5 });
            samples.Add(new Sample() { Time = 11, Value = 1 });
            samples.Add(new Sample() { Time = 12, Value = 0.5 });
            samples.Add(new Sample() { Time = 13, Value = 0 });
            samples.Add(new Sample() { Time = 14, Value = -0.5 });
            samples.Add(new Sample() { Time = 15, Value = -1 });
            samples.Add(new Sample() { Time = 16, Value = -0.5 });

            HarmonicRegression hr = new HarmonicRegression();

            var model = hr.GetModel(samples);

            for (int i = 0; i < 50; i++)
                Console.WriteLine("Time = {0}, Value = {1}", i, hr.Predict(model, i));

            Console.ReadKey();
        }