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])
         });
     });
 }
Exemplo n.º 2
0
 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])
         });
     });
 }