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")); }
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")); }
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()) }));
public async Task <IActionResult> FindAbsoluteError([FromBody] GompertzLawParams gompertzLawParams) { var absoluteError = await _gompertzComputingService.CompareWithRealDataAbsoluteError(gompertzLawParams); return(Ok(absoluteError)); }
public async Task <IActionResult> GetMortalityTable([FromBody] GompertzLawParams gompertzLawParams) { var table = await _gompertzComputingService.BuildMortalityTable(gompertzLawParams); return(Ok(table)); }
private static double ComputeGompertzCoef(GompertzLawParams gompertzLawParams, int x) => Math.Exp(-gompertzLawParams.Beta * ((Math.Exp(gompertzLawParams.Alpha * x) - 1) / gompertzLawParams.Alpha));
public async Task <List <MortalityTableModelRaw> > BuildMortalityTable(GompertzLawParams gompertzLawParams) { return(ComputeMortalityTableModelRaws(gompertzLawParams)); }