Exemple #1
0
        //批量区间估计
        public ActionResult BatchIntervalCalculation(double BatchConfidenceLevel, double yMin, double yMax, int Y_Axis, int intervalTypeSelection, double favg, double fsigma, int langlryExpTableId)
        {
            LangleyExperimentTable  langlryExpTable = dbDrive.GetLangleyExperimentTable(langlryExpTableId);
            List <LangleyDataTable> ldts            = dbDrive.GetAllLangleyDataTable(langlryExpTable.let_Id);

            ldts.RemoveRange(ldts.Count - 1, 1);
            var xOrVArray = LangleyPublic.XAndVArrays(ldts);

            xOrVArray.vArray = LangleyPublic.IsFlipTheResponse(langlryExpTable, xOrVArray.vArray);
            var lr  = LangleyPublic.SelectState(langlryExpTable);
            var srd = lr.BatchIntervalCalculate(yMax, yMin, Y_Axis, BatchConfidenceLevel, favg, fsigma, xOrVArray.xArray, xOrVArray.vArray, intervalTypeSelection);

            LangleyPublic.sideReturnData = srd;
            LangleyPublic.aArray.Clear();
            LangleyPublic.bArray.Clear();
            LangleyPublic.cArray.Clear();
            double ceiling = srd.responsePoints.Min();
            double lower   = srd.responsePoints.Max();

            for (int i = 0; i < srd.responseProbability.Length; i++)
            {
                LangleyPublic.aArray.Add("[" + srd.responsePoints[i] + "," + srd.responseProbability[i] + "]");
                if (double.IsInfinity(srd.Y_Ceilings[i]))
                {
                    LangleyPublic.bArray.Add("[" + lower + "," + srd.responseProbability[i] + "]");
                }
                else
                {
                    LangleyPublic.bArray.Add("[" + srd.Y_Ceilings[i] + "," + srd.responseProbability[i] + "]");
                }
                if (double.IsInfinity(srd.Y_LowerLimits[i]))
                {
                    LangleyPublic.cArray.Add("[" + ceiling + "," + srd.responseProbability[i] + "]");
                }
                else
                {
                    LangleyPublic.cArray.Add("[" + srd.Y_LowerLimits[i] + "," + srd.responseProbability[i] + "]");
                }
            }
            if (intervalTypeSelection == 0)
            {
                LangleyPublic.incredibleIntervalType = "拟然比区间计算-单侧置信区间";
            }
            else
            {
                LangleyPublic.incredibleIntervalType = "拟然比区间计算-双侧置信区间";
            }
            LangleyPublic.incredibleLevelName = BatchConfidenceLevel.ToString();
            return(Json(true));
        }
Exemple #2
0
        public ActionResult ResponsePointIntervalEstimate(double reponseProbability2, double confidenceLevel2, double cjl, double favg, double fsigma, int langlryExpTableId)
        {
            LangleyExperimentTable  langlryExpTable = dbDrive.GetLangleyExperimentTable(langlryExpTableId);
            List <LangleyDataTable> ldts            = dbDrive.GetAllLangleyDataTable(langlryExpTable.let_Id);

            ldts.RemoveRange(ldts.Count - 1, 1);
            var xOrVArray = LangleyPublic.XAndVArrays(ldts);

            xOrVArray.vArray = LangleyPublic.IsFlipTheResponse(langlryExpTable, xOrVArray.vArray);
            var lr  = LangleyPublic.SelectState(langlryExpTable);
            var ies = lr.ResponsePointIntervalEstimate(xOrVArray.xArray, xOrVArray.vArray, reponseProbability2, confidenceLevel2, cjl, favg, fsigma);

            string[] value = { "(" + ies[0].Confidence.Down.ToString("f6") + "," + ies[0].Confidence.Up.ToString("f6") + ")", "(" + ies[0].Mu.Down.ToString("f6") + "," + ies[0].Mu.Up.ToString("f6") + ")", "(" + ies[0].Sigma.Down.ToString("f6") + "," + ies[0].Sigma.Up.ToString("f6") + ")", "(" + ies[1].Confidence.Down.ToString("f6") + "," + ies[1].Confidence.Up.ToString("f6") + ")", "(" + ies[1].Mu.Down.ToString("f6") + "," + ies[1].Mu.Up.ToString("f6") + ")", "(" + ies[1].Sigma.Down.ToString("f6") + "," + ies[1].Sigma.Up.ToString("f6") + ")" };
            return(Json(value));
        }
Exemple #3
0
        public ActionResult InsertData(string response, string sq, int langlryExpTableId)
        {
            LangleyExperimentTable  langlryExpTable   = dbDrive.GetLangleyExperimentTable(langlryExpTableId);
            List <LangleyDataTable> langleyDataTables = dbDrive.GetAllLangleyDataTable(langlryExpTable.let_Id);
            var xOrVArray = LangleyPublic.XAndVArrays(langleyDataTables);

            if (sq != null && sq != "")
            {
                xOrVArray.xArray[langleyDataTables.Count - 1] = double.Parse(sq);
            }
            if (response != null && response != "")
            {
                xOrVArray.vArray[langleyDataTables.Count - 1] = int.Parse(response);
            }
            else
            {
                xOrVArray.vArray[langleyDataTables.Count - 1] = 0;
            }
            var lr = LangleyPublic.SelectState(langlryExpTable);

            dbDrive.Update(LangleyPublic.UpdateLangleyDataTable(langlryExpTable, lr, xOrVArray.xArray, xOrVArray.vArray, langleyDataTables[langleyDataTables.Count - 1]));

            //增加一条新数据
            double StimulusQuantity = lr.CalculateStimulusQuantity(xOrVArray.xArray, xOrVArray.vArray, langlryExpTable.let_StimulusQuantityCeiling, langlryExpTable.let_StimulusQuantityFloor, langlryExpTable.let_PrecisionInstruments);
            var    isTrue           = dbDrive.Insert(LangleyPublic.LangleyDataTables(langlryExpTableId, dbDrive, double.Parse(StimulusQuantity.ToString("f6"))));
            var    xOrVArray2       = LangleyPublic.XAndVArrays(dbDrive.GetAllLangleyDataTable(langlryExpTable.let_Id));

            xOrVArray2.vArray = LangleyPublic.IsFlipTheResponse(langlryExpTable, xOrVArray2.vArray);
            if (langlryExpTable.let_FlipTheResponse == 1)
            {
                for (int i = 0; i < xOrVArray2.vArray.Length - 1; i++)
                {
                    if (xOrVArray2.vArray[i] == 0)
                    {
                        xOrVArray2.vArray[i] = 1;
                    }
                    else
                    {
                        xOrVArray2.vArray[i] = 0;
                    }
                }
            }
            string[] value = { isTrue.ToString(), (xOrVArray2.xArray.Length - 1).ToString(), lr.GetNM(xOrVArray2.xArray, xOrVArray2.vArray), StimulusQuantity.ToString() };
            return(Json(value));
        }