2011-02-14 5 views
0

저는 C#과 관련하여 새로운 몬테카를로 시뮬레이션을 사용하는 프로젝트를 진행하고 있습니다. 기본적으로 내 질문은 다음과 같습니다.C# Monte Carlo 시뮬레이션 패키지 필요

두 개의 불확실한 변수 입력 A와 B가 있으며 모델을 거쳐 출력 C가됩니다. 따라서 C = f (A, B)입니다. 저는 A의 확률 분포 (Triangular)와 B의 확률 분포 (Discrete)를 알고 있습니다. 어떻게 C의 확률 분포를 구할 수 있습니까?

내가 지금 한 것은 B의 이산 분포뿐만 아니라 A의 삼각형 분포를 기반으로 난수를 생성 할 수 있다는 것입니다. 무작위로 생성 된 A와 B의 각 쌍은 결과 C를 제공합니다.이 모델을 1000 번 실행 했으므로 C의 1000 가지 값을 얻을 수 있습니다. 어려움은 C의 각 값에 해당하는 확률을 얻는 것입니다. 분명히 1/C가 균등하게 분배되지 않는 한 1000. 사용할 수있는 Monte Carlo Simulation 패키지/라이브러리가 있습니까?

+1

냄새는 숙제 문제입니다. 어쨌든, 당신은 패키지가 필요 없어요, 당신은 수학 abuot 통계와 몬테 카를로, 당신은 수학과 havep 문제가 필요합니다. – TomTom

답변

2

히스토그램에 넣습니다.

예를 들어 작은 간격으로 각각 1000 개의 빈을 만듭니다. 그런 다음 TotalN = 1000000 번 모델을 실행하고 각 간격에 몇 개의 값이 포함되는지 계산합니다.

그런 다음 해당 간격의 대략적인 확률 밀도를 얻으려면 n[i]/TotalN/WidthOfBin을 계산하십시오.

0

질문에서 다루는 개념을 직관적으로 이해하려면 Sam Savage의 The Flaw Of Average를 읽으십시오. 위의 질문을 모델링하는 방법을 보여주는 예제 코드, 데모 프로젝트 및 스프레드 시트를 제공합니다.