コード例 #1
0
 private Func <double, MathNet.Numerics.LinearAlgebra.Vector <double>, MathNet.Numerics.LinearAlgebra.Vector <double> > f(
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.DiseaseInducedMortalityRate.Id d,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.DevelopmentClinicalSymptomsRate.Iα α,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.EffectiveContactRate.Iβ β,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.RecoveryRate.Iδ δ,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.NaturalMortalityRate.Iμ μ,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.VaccinationCoverageRate.Iξ ξ,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.RecruitmentRateSusceptibleHumans.IΠ Π,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.VaccineEfficacy.Iτ τ,
     C19M.M.C.A.Gumel2006.Interfaces.Variables.LatentIndividuals.IE E,
     C19M.M.C.A.Gumel2006.Interfaces.Variables.InfectedIndividuals.II I,
     C19M.M.C.A.Gumel2006.Interfaces.Variables.TreatedIndividuals.IR R,
     C19M.M.C.A.Gumel2006.Interfaces.Variables.SusceptibleIndividuals.IS S,
     C19M.M.C.A.Gumel2006.Interfaces.Variables.VaccinatedIndividuals.IV V)
 {
     return((T, x) =>
     {
         return MathNet.Numerics.LinearAlgebra.Vector <double> .Build.Dense(new[] {
             (double)E.GetdEdt(
                 α,
                 β,
                 μ,
                 τ,
                 E: x[0],
                 I: x[1],
                 S: x[3],
                 V: x[4]),
             (double)I.GetdIdt(
                 d,
                 α,
                 δ,
                 μ,
                 E: x[0],
                 I: x[1]),
             (double)R.GetdRdt(
                 δ,
                 μ,
                 I: x[1],
                 R: x[2]),
             (double)S.GetdSdt(
                 β,
                 μ,
                 ξ,
                 Π,
                 I: x[1],
                 S: x[3]),
             (double)V.GetdVdt(
                 β,
                 μ,
                 ξ,
                 τ,
                 I: x[1],
                 S: x[3],
                 V: x[4])
         });
     });
 }
 public IDayDiseaseInducedDeaths_ResultElement Calculate(
     FhirDateTime t_IndexElement,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.DiseaseInducedMortalityRate.Id d,
     II I)
 {
     return(new C19M.M.C.A.Gumel2006.Classes.ResultElements.DayDiseaseInducedDeaths.DayDiseaseInducedDeaths_ResultElement(
                t_IndexElement,
                new FhirDecimal(
                    d.Value.Value.Value
                    *
                    I.GetElementAtAsdecimal(
                        t_IndexElement))));
 }
コード例 #3
0
 public IDayDiseaseInducedDeaths Calculate(
     It t,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.DiseaseInducedMortalityRate.Id d,
     II I)
 {
     return(new C19M.M.C.A.Gumel2006.Classes.Results.DayDiseaseInducedDeaths.DayDiseaseInducedDeaths(
                t.Value.Select(
                    w => new C19M.M.C.A.Gumel2006.Classes.Calculations.DayDiseaseInducedDeaths.DayDiseaseInducedDeaths_ResultElement_Calculation().Calculate(
                        w,
                        d,
                        I))
                .ToImmutableList()));
 }
コード例 #4
0
ファイル: I.cs プロジェクト: JustinBritt/COVID-19-Modelling
 // Equation (4)
 public decimal GetdIdt(
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.DiseaseInducedMortalityRate.Id d,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.DevelopmentClinicalSymptomsRate.Iα α,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.RecoveryRate.Iδ δ,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.NaturalMortalityRate.Iμ μ,
     double E,
     double I)
 {
     return
         (α.Value.Value.Value * (decimal)E
          -
          δ.Value.Value.Value * (decimal)I
          -
          d.Value.Value.Value * (decimal)I
          -
          μ.Value.Value.Value * (decimal)I);
 }