2016-06-29 3 views
-1

Je travaille sur un modèle décrivant une protéine. La molécule peut être trouvée dans quelques états, les transitions d'un état à un autre sont décrites par une matrice contenant des taux de transition. Le modèle peut être résolu comme un ensemble d'équations différentielles ordinaires donnant de bons résultats numériques (à partir de la matrice d'adjacence -> matrice de taux de transition -> équations avant de Kolmogorow -> intégration numérique). Cependant, pour obtenir la nature stochastique du processus, je voudrais utiliser la méthode de Monte Carlo. Pour autant que je sache, l'algorithme de Gillespie est fait pour cela. Existe-t-il des packages que vous recommandez pour ce type de tâche?Paquet Python pour algorithme dynamique Monte Carlo/Gillespie

+0

Salut, bienvenue à SO. C'est une question assez spécifique, pas vraiment sur la programmation * en soi *. Troisième résultat de la page de résultats de Google pour 'algorithme Gillespie' fournit quelques conseils: http://scicomp.stackexchange.com/questions/338/python-implementations-of-gillespies-direct-method Si vous voulez savoir comment semer au hasard les nombres en Python utilisent 'numpy.random' ou' random'. –

Répondre

0

Vous pouvez simplement essayer d'utiliser le module random et effectuer la simulation Monte Carlo vous-même, en utilisant un flottant aléatoire pour les valeurs de votre matrice d'adjacence initiale. Assurez-vous de choisir au hasard un nombre dans la fourchette acceptée de ce que votre matrice peut prendre. Pour répéter la simulation, utilisez une boucle for ou while, en fonction du nombre de simulations que vous souhaitez exécuter.

0

En plus de travailler avec le module random tel que proposé par @PeterWang et de créer les matrices vous-même, vous pouvez également utiliser le module numpy, qui fournit également un échantillonnage aléatoire. De cette façon, vous pouvez créer des nombres aléatoires dans toutes les dimensions de la matrice que vous préférez. Surtout en ce qui concerne vos autres tâches, un module fonctionnant avec les matrices numpy pourrait être une bonne solution.

Pour plus de détails, voir reference of numpy.random