123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #import std
- #import nat
- #import flo
- #import plo
- #import ren
- ---------------------------- constants --------------------------------
- imean = 100. # mean at time 0
- sigma = 0.3 # larger numbers make the variance increase faster
- mu = 0.6 # larger numbers make the mean drift upward faster
- ------------------------ functions of time ----------------------------
- expectation = times/imean+ exp+ times/mu
- theta = minus^(ln+ ~&l,div\2.+ ln+ plus)^/sqr+expectation marv
- lambda = sqrt+ ln+ plus/1.+ div^/marv sqr+ expectation
- marv = # variance of the marginal distribution
- times/sqr(imean)+ times^(
- exp+ times/2.+ times/mu,
- minus\1.+ exp+ //times sqr sigma)
- rho = # takes a positive time value to a probability density function
- "t". 0.?=/0.! "x". div(
- exp negative div\2. sqr div(minus/ln"x" theta "t",lambda "t"),
- times/sqrt(times/2. pi) times/lambda"t" "x")
- ------------------------- image specifications -----------------------
- #binary+
- #output dot'tex' //rendering ('ihn+',1.5,1.)
- spread =
- visualization[
- margin: 35.,
- headroom: 25.,
- picture_frame: ((350.,350.),(-15.,-25.)),
- pegaxis: axis[variable: '\textsl{time}'],
- abscissa: axis[variable: '\textsl{estimate}'],
- ordinates: <
- axis[variable: '$\rho$',hatches: ari5/0. .04,alias: (10.,0.)]>,
- curves: ~&H(
- * curve$[peg: ~&hr,points: * ^/~&l ^H\~&l rho+ ~&r],
- |=&r ~&K0 (ari41/75. 175.,ari31/0.1 .6))]
|