Matlab - How to Generate Random Numbers from a Specific Probability Density

3 ビュー (過去 30 日間)
Judith
Judith 2012 年 4 月 13 日
Hi,
I'm trying to run a Monte Carlo type simulation. I have two different probability densities, one for the speed of the objects, Pv, and one for the angle, Pa. Both are given by complicated distributions that correspond to the physical system I am trying to model.
How would I go about generating random speeds and angles given these two distributions?
All of the rand based functions seem to pull random values from a set normalized distribution, which would not match my distribution...
Pv is a function of velocity,v, that goes as c(v^2)exp(-v/a)exp(-b/v) Pa is a function of angle, a, that goes as cos(a)
Any help would be greatly appreciated. I feel like I'm probably missing something pretty easy here.

回答 (1 件)

Richard Willey
Richard Willey 2012 年 4 月 13 日
If Pv and Pa can both be described as functions of a, you might be able to use a univariate generator to generate plausible values for "a" using some known distribution and then derive Pv and Pa from this...
If this isn't feasible, you might be forced to cosnider something more complicated like a Markov Chain. The following url has a good introduction to Markov Chain Monte Carlo, along with MATLAB code.

カテゴリ

Help Center および File ExchangeExploration and Visualization についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by