Esempio n. 1
0
    def test_linear_rates(self):

        S, E, I, R = sympy.symbols("S E I R")
        epi = SymbolicEpiModel([S, E, I, R])
        epi.add_transition_processes([
            (E, 1, I),
            (I, 1, R),
        ])
        linear_rates = [E, I]
        linear_events = [Matrix([[0, -1, +1, 0]]), Matrix([[0, 0, -1, +1]])]
        for r0, r1 in zip(linear_rates, epi.linear_rate_functions):
            assert (r0 == r1)
        for e0, e1 in zip(linear_events, epi.linear_event_updates):
            assert (all([_e0 == _e1 for _e0, _e1 in zip(e0, e1)]))
Esempio n. 2
0
    epi = SymbolicSIRSModel(eta, rho, omega)
    print()
    print(epi.ODEs())
    print(epi.find_fixed_points())

    import sympy
    from epipack import SymbolicEpiModel

    S, I, eta, rho = sympy.symbols("S I eta rho")

    SIS = SymbolicEpiModel([S, I])
    SIS.add_transmission_processes([
        (I, S, eta, I, I),
    ])
    SIS.add_transition_processes([
        (I, rho, S),
    ])

    print(SIS.find_fixed_points())

    print(SIS.get_eigenvalues_at_fixed_point({S: 1}))

    print("==========")
    SIS = SymbolicEpiModel([S, I])
    SIS.set_processes([
        (I, S, eta / (1 - I), I, I),
        (I, rho, S),
    ])
    print(SIS.jacobian())
    print(SIS.get_eigenvalues_at_disease_free_state())