triangular#
- class brainstate.random.triangular(size=None, key=None)#
Draw samples from the triangular distribution over the interval
[left, right].The triangular distribution is a continuous probability distribution with lower limit left, peak at mode, and upper limit right. Unlike the other distributions, these parameters directly define the shape of the pdf.
- Parameters:
size (
int|Sequence[int] |integer|Sequence[integer] |None) – Output shape. If the given shape is, e.g.,(m, n, k), thenm * n * ksamples are drawn. If size isNone(default), a single value is returned ifleft,mode, andrightare all scalars. Otherwise,np.broadcast(left, mode, right).sizesamples are drawn.key (
int|Array|ndarray|None) – The key for the random number generator. If not given, the default random number generator is used.
- Returns:
out – Drawn samples from the parameterized triangular distribution.
- Return type:
ndarray or scalar
Notes
The probability density function for the triangular distribution is
\[\begin{split}P(x;l, m, r) = \begin{cases} \frac{2(x-l)}{(r-l)(m-l)}& \text{for $l \leq x \leq m$},\\ \frac{2(r-x)}{(r-l)(r-m)}& \text{for $m \leq x \leq r$},\\ 0& \text{otherwise}. \end{cases}\end{split}\]The triangular distribution is often used in ill-defined problems where the underlying distribution is not known, but some knowledge of the limits and mode exists. Often it is used in simulations.
References
Examples
Draw values from the distribution and plot the histogram:
>>> import brainstate >>> import matplotlib.pyplot as plt # noqa >>> h = plt.hist(brainstate.random.triangular(-3, 0, 8, 100000), bins=200, ... density=True) >>> plt.show()