コード例 #1
0
        public async Task <IActionResult> CompareWithRealData(double alpha, double beta, double ratePercents)
        {
            var gompertzLawParams = new GompertzLawParams(alpha, beta, ratePercents);
            var path = await _gompertzComputingService.CompareWithRealDataPlot(gompertzLawParams);

            return(PhysicalFile(path, "image/jpeg"));
        }
コード例 #2
0
        public async Task <IActionResult> GetPlot(double alpha, double beta, double ratePercents)
        {
            var gompertzLawParams = new GompertzLawParams(alpha, beta, ratePercents);
            var path = await _gompertzComputingService.BuildPlot(gompertzLawParams);

            // var path = await _gompertzComputingService.ParamsPlotComparison();
            return(PhysicalFile(path, "image/jpeg"));
        }
コード例 #3
0
        public async Task <string> CompareWithRealDataPlot(GompertzLawParams gompertzLawParams)
        {
            var mortalityTableModelRaws = ComputeMortalityTableModelRaws(gompertzLawParams);

            return(BuildPlot(new List <PlotLine>
            {
                new("Computed Gompertz", mortalityTableModelRaws.Select(x => x.X).ToArray(),
                    mortalityTableModelRaws.Select(x => x.Lx).ToArray()),
                new("Real data", RealData.Select(x => x.X).ToArray(),
                    RealData.Select(x => x.Lx).ToArray())
            }));
コード例 #4
0
        public async Task <IActionResult> FindAbsoluteError([FromBody] GompertzLawParams gompertzLawParams)
        {
            var absoluteError = await _gompertzComputingService.CompareWithRealDataAbsoluteError(gompertzLawParams);

            return(Ok(absoluteError));
        }
コード例 #5
0
        public async Task <IActionResult> GetMortalityTable([FromBody] GompertzLawParams gompertzLawParams)
        {
            var table = await _gompertzComputingService.BuildMortalityTable(gompertzLawParams);

            return(Ok(table));
        }
コード例 #6
0
 private static double ComputeGompertzCoef(GompertzLawParams gompertzLawParams, int x) =>
 Math.Exp(-gompertzLawParams.Beta * ((Math.Exp(gompertzLawParams.Alpha * x) - 1) / gompertzLawParams.Alpha));
コード例 #7
0
 public async Task <List <MortalityTableModelRaw> > BuildMortalityTable(GompertzLawParams gompertzLawParams)
 {
     return(ComputeMortalityTableModelRaws(gompertzLawParams));
 }