Exemplo n.º 1
0
        private bool CalcQ()
        {
            BestA = 0.0;
            BestB = 0.0;
            BestC = 0.0;

            var f      = new DoubleParameterizedDelegate(AnalysisFunctions.ThreeParameterExponential);
            var fitter = new OneVariableFunctionFitter <TrustRegionMinimizer>(f);

            var lvect = new DoubleVector();
            var kvect = new DoubleVector();

            foreach (var pt in SpmVals)
            {
                lvect.Append(pt.X);
                kvect.Append(pt.Y);
            }
            var          start    = new DoubleVector(0.1, 0.1, 0.1);
            DoubleVector solution = fitter.Fit(lvect, kvect, start);

            BestA = solution[0];
            BestB = solution[1];
            BestC = solution[2];
            q     = BestA;
            return(true);
        }
Exemplo n.º 2
0
        private DoubleVector FitData(double[] xDataRaw, double[] yDataRaw)
        {
            DoubleParameterizedFunction func = new Function();

            var f = new DoubleParameterizedDelegate(
                func.Evaluate);

            var fitter =
                new OneVariableFunctionFitter <TrustRegionMinimizer>(f);
            DoubleVector x        = new DoubleVector(xDataRaw);
            DoubleVector y        = new DoubleVector(yDataRaw);
            DoubleVector init     = new DoubleVector((yDataRaw.Min()).ToString() + " " + 0.5 + " " + ((yDataRaw.Max() - yDataRaw.Min())).ToString());
            DoubleVector solution = fitter.Fit(x, y, init);



            double[] yData = new double[xDataRaw.Length * 600];
            double[] xData = new double[xDataRaw.Length * 600];

            for (int g = 0; g < yData.Length; g++)
            {
                double rads = ((xDataCourse[0] + g)) * 2 * Math.PI / 180;
                yData[g] = MyFunction(solution, (rads));
                xData[g] = xDataCourse[0] + g;

                Console.Writeline("x: " + xData[g] + "   y: " + yData[g]);
            }

            return(solution);
        }