2011-02-14 4 views
0

Je suis relativement nouveau à C# et je fais un projet en utilisant la simulation de Monte Carlo. Fondamentalement, ma question est la suivante.Forfait de simulation C# Monte Carlo requis

J'ai deux entrées variables incertaines, A et B, et elles vont passer par un modèle et donner une sortie C. Donc C = f (A, B). Je connais la distribution de probabilité de A (triangulaire) et la distribution de probabilité de B (discrète). Comment puis-je obtenir la distribution de probabilité de C?

Ce que j'ai fait maintenant, c'est que je peux générer des nombres aléatoires basés sur la distribution triangulaire de A ainsi que la distribution discrète de B. Chaque paire de A et B générée aléatoirement donne une résultante C. J'ai exécuté ce modèle 1000 fois, donc je peux obtenir 1000 valeurs possibles de C. La difficulté est d'obtenir les probabilités correspondantes de chaque valeur de C. Évidemment, ce n'est pas 1/1000 sauf si C est uniformément distribué. Existe-t-il un package/une bibliothèque Monte Carlo Simulation que je peux utiliser?

+1

Ça sent comme une question de devoirs. De toute façon, vous n'avez pas besoin d'un paquet, vous avez besoin d'un livre de statistiques et de Monte Carlo, comme vous l'avez fait avec les maths. – TomTom

Répondre

2

Les mettre dans un histogramme.

Par exemple créer 1 000 bins correspondant chacun à un petit intervalle. Ensuite, exécutez le modèle TotalN = 1000000 fois et comptez combien de valeurs tombent dans chaque intervalle.

Calculez ensuite n[i]/TotalN/WidthOfBin pour obtenir la densité de probabilité approximative dans cet intervalle.

0

Pour obtenir une compréhension intuitive des concepts abordés dans la question, lisez The Flaw Of Averages de Sam Savage. Il fournit des exemples de code, des projets de démonstration et des tableurs montrant comment modéliser la question ci-dessus.

Questions connexes