Пример #1
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])
         });
     });
 }
Пример #2
0
 public decimal GetdIdt(
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.Iγ γ,
     C19M.M.C.A.Gumel2006.Interfaces.Parameters.Rescaled.Iε ε,
     double E,
     double I)
 {
     return
         (γ.Value.Value.Value * (decimal)E
          -
          (1m + ε.Value.Value.Value) * (decimal)I);
 }
Пример #3
0
 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);
 }