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]) }); }); }
private Func <double, MathNet.Numerics.LinearAlgebra.Vector <double>, MathNet.Numerics.LinearAlgebra.Vector <double> > f( C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.IN N, C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.Ip p, C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.Iβ β, C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.Iγ γ, C19M.M.C.A.Gumel2006.Interfaces.Parameters.RecoveryRate.Iδ δ, C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.Iε ε, C19M.M.C.A.Gumel2006.Interfaces.Parameters.NaturalMortalityRate.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( γ, ε, E: x[0], I: x[1]), (double)R.GetdRdt( δ, μ, I: x[1], R: x[2]), (double)S.GetdSdt( N, p, β, ε, I: x[1], S: x[3]), (double)V.GetdVdt( p, β, τ, ε, I: x[1], S: x[3], V: x[4]) }); }); }
public decimal GetdVdt( C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.Ip p, C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.Iβ β, C19M.M.C.A.Gumel2006.Interfaces.Parameters.VaccineEfficacy.Iτ τ, C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.Iε ε, double I, double S, double V) { return (-(1m - τ.Value.Value.Value) * β.Value.Value.Value * (decimal)V * (decimal)I + ε.Value.Value.Value * (((p.Value.Value.Value * (decimal)S) / (1m - p.Value.Value.Value)) - (decimal)V)); }
public decimal GetdEdt( C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.Iβ β, C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.Iγ γ, C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.Iε ε, C19M.M.C.A.Gumel2006.Interfaces.Parameters.VaccineEfficacy.Iτ τ, double E, double I, double S, double V) { return (β.Value.Value.Value * ((decimal)S + (1m - τ.Value.Value.Value) * (decimal)V) * (decimal)I - (γ.Value.Value.Value + ε.Value.Value.Value) * (decimal)E); }
// Equation (2) public decimal GetdVdt( C19M.M.C.A.Gumel2006.Interfaces.Parameters.EffectiveContactRate.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.VaccineEfficacy.Iτ τ, double I, double S, double V) { return (ξ.Value.Value.Value * (decimal)S - (1m - τ.Value.Value.Value) * β.Value.Value.Value * (decimal)V * (decimal)I - μ.Value.Value.Value * (decimal)V); }
// Equation (3) public decimal GetdEdt( 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.NaturalMortalityRate.Iμ μ, C19M.M.C.A.Gumel2006.Interfaces.Parameters.VaccineEfficacy.Iτ τ, double E, double I, double S, double V) { return (β.Value.Value.Value * (decimal)S * (decimal)I + (1m - τ.Value.Value.Value) * β.Value.Value.Value * (decimal)V * (decimal)I - α.Value.Value.Value * (decimal)E - μ.Value.Value.Value * (decimal)E); }