Message Boards Message Boards

0
|
3168 Views
|
1 Reply
|
0 Total Likes
View groups...
Share
Share this post:

How to simulate a Brownian motion with reflective barrier?

Posted 3 years ago

I am trying to simulate a one-dimensional Brownian motion with a barrier, i.e. it is not allowed to go below (for above) a certain value, in which case it is reflected as if it hit a wall. Unfortunately, the functions in Mathematica (Ito process, Weiner process, transformed process) do not allow this simple extension natively. I have searched the whole WWW to no avail.

Of course, one can always simulate it from scratch, but I wonder if there is a better alternative?

POSTED BY: Jorge Laval
Posted 1 year ago

Reflection at zero of the Wiener process is relatively simple. The Wiener differential definitiion using SetDelayed:to yield an independent value at each call

dW  : = sigma (dt)^(1/2) RandomReal[NormalDistribution[0,1]] 

Typical is that the variance scales with t, teh standard deviation with t^(1/2)

A Wiener process wirth reflection at the origin is

W[n_,x0_]:.= Fold[ Abs[( #1 + #2) ]]&,  x0, Array[ (dW &)]

The Abs function reflects the path back onto the positive half line in the moment of tha passage through 0.

Its transition distribution follows from the mirror principle: It is the sum of the distribution with start point x0 and .-x0. This distribution is an even function, solves the diffusion equation on the half line, has the delta distribuition at x0 and has derivative zero at the boundary indicating that the diffusion current over the boundary is zero.

The common sense explanation for the Brownian motion with reflection is that any particle leaving over the boundary is replaced by an equally probable reflected path entering at the same moment.

POSTED BY: Updating Name
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract