import numpy as np import numpy.random as rnd import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec import pandas as pd from scipy.integrate import odeint,quad from scipy.stats import kde,beta import seaborn as sns #%matplotlib from importlib import reload pi=np.pi from scipy.optimize import brentq from numpy import linalg as LA from scipy.linalg import expm from bdp import periodise def partiefrac(x,T): y=x/T return(T*(y-int(y))) def zchi(lam,mu,A,T,N): r"""genere N points du processus ponctuel forme des phases des differents individus dans un processus de naissance et de mort inhomogene Si le processus s'éteint avant on a moins de N points""" z=[[0,0]] #initialisation : un individu au temps 0 (donc sa phase est 0) S=0 #S et linstant de saut courant du processus de Poisson deparametre A i=0 #i+1 doit etre l longueur de z while (len(z) <= N): echelle=len(z)*A S=S+rnd.exponential(scale=1/echelle) p=(lam(S) + mu(S))/A #print("S,p,z",S,p,z) u=rnd.uniform() if (u< p): #on accepte le temps de saut q=lam(S)/(lam(S)+mu(S)) v=rnd.uniform() if (v