Beispiel #1
0
 public decimal GetdIdt(
     C19M.M.C.A.Safi2010.Interfaces.Parameters.NaturalRecoveryRateInfectiousIndividuals.Iγ γ_1,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.DiseaseInducedDeathRateInfectiousIndividuals.Iδ δ_1,
     Iκ κ,
     Iμ μ,
     Iϕ ϕ,
     double E,
     double I)
 {
     return
         (κ.Value.Value.Value * (decimal)E
          -
          (γ_1.Value.Value.Value + ϕ.Value.Value.Value + μ.Value.Value.Value + δ_1.Value.Value.Value) * (decimal)I);
 }
 public IDayDiseaseInducedDeaths Calculate(
     It t,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.DiseaseInducedDeathRateInfectiousIndividuals.Iδ δ_1,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.DiseaseInducedDeathRateHospitalizedIndividuals.Iδ δ_2,
     IH H,
     II I)
 {
     return(new C19M.M.C.A.Safi2010.Classes.Results.DayDiseaseInducedDeaths.DayDiseaseInducedDeaths(
                t.Value.Select(
                    w => new C19M.M.C.A.Safi2010.Classes.Calculations.DayDiseaseInducedDeaths.DayDiseaseInducedDeaths_ResultElement_Calculation().Calculate(
                        w,
                        δ_1,
                        δ_2,
                        H,
                        I))
                .ToImmutableList()));
 }
Beispiel #3
0
 public decimal GetdNdt(
     C19M.M.C.A.Safi2010.Interfaces.Parameters.DiseaseInducedDeathRateInfectiousIndividuals.Iδ δ_1,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.DiseaseInducedDeathRateHospitalizedIndividuals.Iδ δ_2,
     Iμ μ,
     IΠ Π,
     double H,
     double I,
     double N)
 {
     return
         (Π.Value.Value.Value
          -
          μ.Value.Value.Value * (decimal)N
          -
          (δ_1.Value.Value.Value * (decimal)I
           +
           δ_2.Value.Value.Value * (decimal)H));
 }
Beispiel #4
0
 public IDayDiseaseInducedDeaths_ResultElement Calculate(
     FhirDateTime t_IndexElement,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.DiseaseInducedDeathRateInfectiousIndividuals.Iδ δ_1,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.DiseaseInducedDeathRateHospitalizedIndividuals.Iδ δ_2,
     IH H,
     II I)
 {
     return(new C19M.M.C.A.Safi2010.Classes.ResultElements.DayDiseaseInducedDeaths.DayDiseaseInducedDeaths_ResultElement(
                t_IndexElement,
                new FhirDecimal(
                    δ_1.Value.Value.Value
                    *
                    I.GetElementAtAsdecimal(
                        t_IndexElement)
                    +
                    δ_2.Value.Value.Value
                    *
                    H.GetElementAtAsdecimal(
                        t_IndexElement))));
 }
 // https://stackoverflow.com/a/55004295
 private Func <double, MathNet.Numerics.LinearAlgebra.Vector <double>, MathNet.Numerics.LinearAlgebra.Vector <double> > f(
     It t,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.HospitalizationRateQuarantinedIndividuals.Iα α,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.EffectiveContactRate.Iβ β,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.NaturalRecoveryRateInfectiousIndividuals.Iγ γ_1,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.RecoveryRateHospitalizedIndividuals.Iγ γ_2,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.DiseaseInducedDeathRateInfectiousIndividuals.Iδ δ_1,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.DiseaseInducedDeathRateHospitalizedIndividuals.Iδ δ_2,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.EfficacyIsolationTreatmentHospitalizedIndividuals.Iη η,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.DevelopmentDiseaseSymptomsRateExposedIndividuals.Iκ κ,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.AcquireInfectionRateSusceptibleIndividuals.Iλ λ,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.NaturalDeathRate.Iμ μ,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.RecruitmentRateSusceptibleIndividuals.IΠ Π,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.QuarantineRateExposedIndividuals.Iσ σ,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.HospitalizationRateInfectiousIndividuals.Iϕ ϕ,
     C19M.M.C.A.Safi2010.Interfaces.Parameters.InfectionAcquiredImmunityLossRateRecoveredIndividuals.Iψ ψ,
     C19M.M.C.A.Safi2010.Interfaces.Variables.ExposedIndividuals.IE E,
     C19M.M.C.A.Safi2010.Interfaces.Variables.HospitalizedIndividuals.IH H,
     C19M.M.C.A.Safi2010.Interfaces.Variables.InfectiousIndividuals.II I,
     C19M.M.C.A.Safi2010.Interfaces.Variables.QuarantinedIndividuals.IQ Q,
     C19M.M.C.A.Safi2010.Interfaces.Variables.RecoveredIndividuals.IR R,
     C19M.M.C.A.Safi2010.Interfaces.Variables.SusceptibleIndividuals.IS S)
 {
     return((T, x) =>
     {
         return MathNet.Numerics.LinearAlgebra.Vector <double> .Build.Dense(new[] {
             (double)E.GetdEdt(
                 β,
                 η,
                 κ,
                 λ,
                 μ,
                 σ,
                 E: x[0],
                 H: x[1],
                 I: x[2],
                 N: x.Sum(),
                 S: x[5]),
             (double)H.GetdHdt(
                 α,
                 γ_2,
                 δ_2,
                 μ,
                 ϕ,
                 H: x[1],
                 I: x[2],
                 Q: x[3]),
             (double)I.GetdIdt(
                 γ_1,
                 δ_1,
                 κ,
                 μ,
                 ϕ,
                 E: x[0],
                 I: x[2]),
             (double)Q.GetdQdt(
                 α,
                 μ,
                 σ,
                 E: x[0],
                 Q: x[3]),
             (double)R.GetdRdt(
                 γ_1,
                 γ_2,
                 μ,
                 ψ,
                 H: x[1],
                 I: x[2],
                 R: x[4])
         });
     });
 }