Esempio n. 1
0
        //响应概率计算
        public double ResponseProbabilityCalculation(double fq, double favg, double fsigma)
        {
            double rpc = LiftingDistributionSelection.PValue(LiftingMethodStandardSelection.InverseProcessValue(fq), LiftingMethodStandardSelection.InverseProcessValue(favg), fsigma);

            pub_function.resolution_getReso(rpc, 0.000001, out rpc);
            return(rpc);
        }
Esempio n. 2
0
        //
        public double[] VarianceFunctionResponsePointIntervalEstimated(double confidenceLevel, int textNumber, double fq, double favg, double fsigma, double fsigmaavg, double fsigmasigma)
        {
            double[] ie        = new double[8];
            double   Tfw       = updownMethod.get_t_shuangce(confidenceLevel, textNumber - 1);
            double   Tfw_dance = updownMethod.get_t_dance(confidenceLevel, textNumber - 1);

            if (fq != 0)
            {
                fq = LiftingDistributionSelection.PValue(LiftingMethodStandardSelection.InverseProcessValue(fq), LiftingMethodStandardSelection.InverseProcessValue(favg), fsigma);
                ie = GetDoubleArray(Tfw, Tfw_dance, fq, favg, fsigma, fsigmaavg, fsigmasigma);
            }
            return(ie);
        }
Esempio n. 3
0
        //响应点区间估计
        public List <IntervalEstimation> ResponsePointIntervalEstimated(double responseProbability, double confidenceLevel, double[] xArray, int[] vArray, double fq, double favg, double fsigma)
        {
            List <IntervalEstimation> intervalEstimations = new List <IntervalEstimation>();

            if (fq != 0)
            {
                responseProbability = LiftingDistributionSelection.PValue(LiftingMethodStandardSelection.InverseProcessValue(fq), LiftingMethodStandardSelection.InverseProcessValue(favg), fsigma);
                pub_function.resolution_getReso(responseProbability, 0.000001, out responseProbability);
            }
            xArray = LiftingMethodStandardSelection.InverseProcessArray(xArray);
            var Single = SingleSideEstimation(xArray, vArray, responseProbability, confidenceLevel, LiftingMethodStandardSelection.InverseProcessValue(favg), fsigma);

            intervalEstimations.Add(GetIntervalEstimationValue(Single));
            var Double = DoubleSideEstimation(xArray, vArray, responseProbability, confidenceLevel, LiftingMethodStandardSelection.InverseProcessValue(favg), fsigma);

            intervalEstimations.Add(GetIntervalEstimationValue(Double));
            return(intervalEstimations);
        }
Esempio n. 4
0
        private SideReturnData GetSideReturnDataValue(double Y_Ceiling, double Y_LowerLimit, int Y_PartitionNumber)
        {
            SideReturnData sideReturnData = new SideReturnData();
            double         Y_ScaleLength  = (LiftingDistributionSelection.QValue(Y_Ceiling) - LiftingDistributionSelection.QValue(Y_LowerLimit)) / Y_PartitionNumber;

            sideReturnData.responseProbability = new double[Y_PartitionNumber + 1];
            for (int i = 0; i <= Y_PartitionNumber; i++)
            {
                if (i == 0)
                {
                    sideReturnData.responseProbability[i] = Y_LowerLimit;
                }
                else
                {
                    sideReturnData.responseProbability[i] = LiftingDistributionSelection.PValue(LiftingDistributionSelection.QValue(Y_LowerLimit) + i * Y_ScaleLength, 0, 1);
                }
            }
            sideReturnData.Y_Ceilings     = new double[sideReturnData.responseProbability.Length];
            sideReturnData.Y_LowerLimits  = new double[sideReturnData.responseProbability.Length];
            sideReturnData.responsePoints = new double[sideReturnData.responseProbability.Length];
            return(sideReturnData);
        }