public decimal GetdNdt( C19M.M.C.A.Gumel2006.Interfaces.Parameters.DiseaseInducedMortalityRate.Id d, Iμ μ, IΠ Π, double I, double N) { return (Π.Value.Value.Value - μ.Value.Value.Value * (decimal)N - d.Value.Value.Value * (decimal)I); }
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 decimal GetdSdt( FhirDateTime t_IndexElement, Iβ β, C19M.M.C.A.Gumel2004.Interfaces.Parameters.TransmissionCoefficientModificationFactorAsymptomaticIndividuals.Iε ε_E, C19M.M.C.A.Gumel2004.Interfaces.Parameters.TransmissionCoefficientModificationFactorIsolatedIndividuals.Iε ε_J, C19M.M.C.A.Gumel2004.Interfaces.Parameters.TransmissionCoefficientModificationFactorQuarantinedIndividuals.Iε ε_Q, Iμ μ, IΠ Π, double E, double I, double J, double N, double Q, double S) { return (Π.Value.Value.Value - (decimal)(S / N) * (β.Value.Value.Value) * ((decimal)I + ε_E.Value.Value.Value * (decimal)E + ε_Q.Value.Invoke(t_IndexElement).Value.Value *(decimal)Q + ε_J.Value.Invoke(t_IndexElement).Value.Value *(decimal)J) - μ.Value.Value.Value * (decimal)S); }
// https://stackoverflow.com/a/55004295 private Func <double, MathNet.Numerics.LinearAlgebra.Vector <double>, MathNet.Numerics.LinearAlgebra.Vector <double> > f( It t, Interfaces.Parameters.DiseaseInducedDeathRateSymptomaticIndividuals.Id d_1, Interfaces.Parameters.DiseaseInducedDeathRateIsolatedIndividuals.Id d_2, Ip p, Iβ β, C19M.M.C.A.Gumel2004.Interfaces.Parameters.QuarantineRateAsymptomaticIndividuals.Iγ γ_1, C19M.M.C.A.Gumel2004.Interfaces.Parameters.IsolationRateSymptomaticIndividuals.Iγ γ_2, C19M.M.C.A.Gumel2004.Interfaces.Parameters.TransmissionCoefficientModificationFactorAsymptomaticIndividuals.Iε ε_E, C19M.M.C.A.Gumel2004.Interfaces.Parameters.TransmissionCoefficientModificationFactorIsolatedIndividuals.Iε ε_J, C19M.M.C.A.Gumel2004.Interfaces.Parameters.TransmissionCoefficientModificationFactorQuarantinedIndividuals.Iε ε_Q, C19M.M.C.A.Gumel2004.Interfaces.Parameters.DevelopmentClinicalSymptomsRateAsymptomaticIndividuals.Iκ κ_1, C19M.M.C.A.Gumel2004.Interfaces.Parameters.DevelopmentClinicalSymptomsRateQuarantinedIndividuals.Iκ κ_2, Iμ μ, IΠ Π, C19M.M.C.A.Gumel2004.Interfaces.Parameters.RecoveryRateSymptomaticIndividuals.Iσ σ_1, C19M.M.C.A.Gumel2004.Interfaces.Parameters.RecoveryRateIsolatedIndividuals.Iσ σ_2, C19M.M.C.A.Gumel2004.Interfaces.Variables.AsymptomaticIndividuals.IE E, C19M.M.C.A.Gumel2004.Interfaces.Variables.SymptomaticIndividuals.II I, C19M.M.C.A.Gumel2004.Interfaces.Variables.IsolatedIndividuals.IJ J, C19M.M.C.A.Gumel2004.Interfaces.Variables.QuarantinedIndividuals.IQ Q, C19M.M.C.A.Gumel2004.Interfaces.Variables.RecoveredIndividuals.IR R, C19M.M.C.A.Gumel2004.Interfaces.Variables.SusceptibleIndividuals.IS S) { return((T, x) => { return MathNet.Numerics.LinearAlgebra.Vector <double> .Build.Dense(new[] { (double)E.GetdEdt( new FhirDateTime( new DateTimeOffset( t.StartDate.ToDateTimeOffset(TimeSpan.Zero).UtcDateTime.Date.AddDays(T))), p, β, γ_1, γ_2, ε_E, ε_J, ε_Q, κ_1, μ, E: x[0], I: x[1], J: x[2], N: x.Sum(), Q: x[3], S: x[5]), (double)I.GetdIdt( new FhirDateTime( new DateTimeOffset( t.StartDate.ToDateTimeOffset(TimeSpan.Zero).UtcDateTime.Date.AddDays(T))), d_1, γ_2, κ_1, μ, σ_1, E: x[0], I: x[1]), (double)J.GetdJdt( new FhirDateTime( new DateTimeOffset( t.StartDate.ToDateTimeOffset(TimeSpan.Zero).UtcDateTime.Date.AddDays(T))), d_2, γ_2, κ_2, μ, σ_2, I: x[1], J: x[2], Q: x[3]), (double)Q.GetdQdt( new FhirDateTime( new DateTimeOffset( t.StartDate.ToDateTimeOffset(TimeSpan.Zero).UtcDateTime.Date.AddDays(T))), γ_1, κ_2, μ, E: x[0], Q: x[3]), (double)R.GetdRdt( μ, σ_1, σ_2, I: x[1], J: x[2], R: x[4]), (double)S.GetdSdt( new FhirDateTime( new DateTimeOffset( t.StartDate.ToDateTimeOffset(TimeSpan.Zero).UtcDateTime.Date.AddDays(T))), β, ε_E, ε_J, ε_Q, μ, Π, E: x[0], I: x[1], J: x[2], N: x.Sum(), Q: x[3], S: x[5]) }); }); }