Exemplo n.º 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])
         });
     });
 }
Exemplo n.º 2
0
 public decimal GetdSdt(
     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ε ε,
     double I,
     double S)
 {
     return
         (-β.Value.Value.Value * (decimal)S * (decimal)I
          +
          ε.Value.Value.Value * (N.Value.Value.Value - ((decimal)S / (1m - p.Value.Value.Value))));
 }
Exemplo n.º 3
0
 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));
 }
Exemplo n.º 4
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);
 }