예제 #1
0
        public void NewtonGaussFit(Comb.mzI[] experimentalData, Comb.mzI[] intensities, int charge, double deltaR, fitDataStrt initialParams)
        {
            //Clone the data to the class
            expData     = (Comb.mzI[])experimentalData.Clone();
            iCharge     = charge;
            dDeltaR     = deltaR;
            intensPeaks = (Comb.mzI[])intensities.Clone();

            //Assign parameters  HAY QUE CAMBIAR ESTO PARA QUE SEA AJUSTABLE DESDE FUERA
            alpha = 0.01;
            PRS   = 1e-8;
            RSH   = 1e-4;

            //assign initial parameters to the parameters' matrix
            mB[1] = initialParams.A;        //Amount of A
            mB[2] = initialParams.alpha;    //leptokurtosis
            mB[3] = initialParams.B;        //Amount of B
            mB[4] = initialParams.deltaMz;  //experimental mass/charge deviation
            mB[5] = initialParams.f;        //efficiency
            mB[6] = initialParams.sigma;    //Gaussian width
            mB[7] = initialParams.signoise; //signal/noise relation

            nIterations = 0;

            //assign initial parameters as new parameters
            for (int i = 1; i <= mB.GetUpperBound(0); i++)
            {
                mA[i] = mB[i];
            }

            //Calculate the initial fit
            fitData = Gaussians.calEnvelope(intensities, expData, initialParams, charge, deltaR);

            //first chi^2 test.
            sumSQ1 = sumSquares(expData, fitData);



            //control form of the iterations
            if (controlFit.IsDisposed)
            {
                controlFit = null;
                controlFit = new OPctrFit();
            }
            controlFit.Show();
            controlFit.Activate();
            //controlFit.Owner = this;
            controlFit.iterAdd(nIterations, initialParams, sumSQ1, false);
        }
예제 #2
0
 public int[] Classify(double[][] observations)
 {
     return(Gaussians.Nearest(observations));
 }
예제 #3
0
 public int Classify(double[] observation, out double[] responses)
 {
     return(Gaussians.Nearest(observation, out responses));
 }