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())); }
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)); }
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]) }); }); }