Ich hätte gerne Ihren Rat: Könnten Sie eine Bibliothek empfehlen, mit der Sie PDFs (Wahrscheinlichkeitsdichtefunktionen) wie echte Zahlen addieren / subtrahieren / multiplizieren / teilen können?
Hinter den Kulissen müsste es ein Monte-Carlo machen, um das Ergebnis auszuarbeiten, also würde ich wahrscheinlich etwas Schnelles und Effizientes bevorzugen, das jede GPU im System nutzen kann.
Aktualisierung:
Dies ist die Art von C # -Code, die ich suche:
%Vor%Aktualisierung:
Was ich suche, ist eine Methode, um die Algebra auf "Wahrscheinlichkeitsformen" in Der Fehler der Mittelwerte von Sam Savage zu implementieren . Das Video Monte-Carlo-Simulation in Matlab erläutert den Effekt, den ich möchte - eine Bibliothek, die mathematische Berechnungen für eine Reihe von Eingabeverteilungen durchführt .
Aktualisierung:
Wenn Sie nach folgendem suchen, werden Informationen zu den entsprechenden Bibliotheken angezeigt:
Mit dem Kit @Risk Developer können Sie mit einer Reihe von Wahrscheinlichkeitsdichtefunktionen beginnen und anschließend Algebra ausführen die Eingänge, um etwas Ausgang zu erhalten, dh P = A + B.
Die Keywords auf dieser Seite können verwendet werden, um andere konkurrierende Angebote zu finden, z. versuche nach:
Es ist nicht so schwer, dies in einer Sprache wie C ++ oder .NET zu programmieren. Der Monte-Carlo-Anteil ist wahrscheinlich nur etwa 50 Zeilen Code:
@Gravitas - Basierend auf diesem Austausch mit @ user207442 klingt es so, als ob Sie nur ein Objekt wollen, das eine Faltung für Addition und Subtraktion abstrahiert. Es gibt sicherlich eine geschlossene Form für das Produkt von zwei Zufallsvariablen, aber es könnte von der Verteilung abhängen.
C # 's heiße neue Stiefschwester, F #, lassen Sie uns ein paar Spaß FP-Techniken machen, und es integriert sich nahtlos mit C #. Ihr Ziel, einen "zufälligen Variablen" -Typ zu abstrahieren, der "summiert" (gefaltet) oder "multipliziert" (??) sein kann, scheint nach eine Monade . Hier ist ein einfaches Beispiel .
Edit: müssen Sie mcmc in c # neu erfinden? Wir verwenden Winbugs dafür in meiner Schule ... das ist die C ++ - Bibliothek, die winbugs verwendet: Ссылка . Anstatt das Rad neu zu erfinden, könntest du deinen Code einfach um das C ++ wickeln (wieder scheint es, als würden Monaden hier in die Hand kommen)?
Tags und Links .net c# probability