Esempio n. 1
0
        private void DrawBeta(int Alpha, int Beta, string Name)
        {
            Series series = new Series(Name);

            series.BorderWidth = 3;
            series.ChartType   = SeriesChartType.Spline;

            double Temp = 0;

            for (double i = 0.01; i < 1; i = i + 0.05)
            {
                Temp = Stat.BetaPDF(i, Alpha, Beta);
                if (MaxValue < Temp)
                {
                    MaxValue = Temp;
                }

                series.Points.AddXY(i, Temp);
            }
            chart_PosteriorDensity.Series.Add(series);
            var XAxis = chart_PosteriorDensity.ChartAreas[0].AxisX;

            XAxis.MajorGrid.Enabled = false;
            var YAxis = chart_PosteriorDensity.ChartAreas[0].AxisY;

            YAxis.MajorGrid.Enabled = false;
            XAxis.Maximum           = 1;
            XAxis.Minimum           = 0;
            YAxis.Maximum           = Math.Ceiling(MaxValue);
        }
Esempio n. 2
0
        private void DrawBeta(int AlphaIndex, List <int> AlphaList, string Name, int[] CountTimes, int PriorOrPost = 0)
        {
            //PriorOrPost = 0为先验,即减去样本数
            //PriorOrPost = 1为后验
            int InterestAlpha = 0;

            if (PriorOrPost == 0)
            {
                InterestAlpha = AlphaList[AlphaIndex] - CountTimes[AlphaIndex];
            }
            else
            {
                InterestAlpha = AlphaList[AlphaIndex];
            }
            int OtherAlphas = 0;

            if (PriorOrPost == 0)
            {
                OtherAlphas = AlphaList.Sum() - CountTimes.Sum() - InterestAlpha;
            }
            else
            {
                OtherAlphas = AlphaList.Sum() - InterestAlpha;
            }
            if (chart_PosteriorDensity.Series.IndexOf(Name) != -1)
            {
                MessageBox.Show("图上已经存在相应分布,请勿重复添加!");
                return;
            }
            Series series = new Series(Name);

            series.BorderWidth = 3;
            series.ChartType   = SeriesChartType.Spline;

            double Temp = 0;

            for (double i = 0.01; i < 1; i = i + 0.05)
            {
                Temp = Stat.BetaPDF(i, InterestAlpha, OtherAlphas);
                if (MaxValue < Temp)
                {
                    MaxValue = Temp;
                }

                series.Points.AddXY(i, Temp);
            }
            chart_PosteriorDensity.Series.Add(series);
            var XAxis = chart_PosteriorDensity.ChartAreas[0].AxisX;

            XAxis.MajorGrid.Enabled = false;
            var YAxis = chart_PosteriorDensity.ChartAreas[0].AxisY;

            YAxis.MajorGrid.Enabled = false;
            XAxis.Maximum           = 1;
            XAxis.Minimum           = 0;
            YAxis.Maximum           = Math.Ceiling(MaxValue);
        }