Steven R. Dunbar
Department of Mathematics
203 Avery Hall
University of Nebraska-Lincoln
Lincoln, NE 68588-0130
Voice: 402-472-3731
Fax: 402-472-8466

Stochastic Processes and
Advanced Mathematical Finance


Path Properties of Brownian Motion


Note: These pages are prepared with MathJax. MathJax is an open source JavaScript display engine for mathematics that works in all browsers. See for details on supported browsers, accessibility, copy-and-paste, and other features.




Mathematically Mature: may contain mathematics beyond calculus with proofs.


Section Starter Question

Section Starter Question

Provide an example of a continuous function which is not differentiable at some point. Why does the function fail to have a derivative at that point? What are the possible reasons that a derivative could fail to exist at some point?


Key Concepts

Key Concepts

  1. With probability 1 a Brownian Motion path is continuous but nowhere differentiable.
  2. Although a Brownian Motion path is continuous, it has many counter-intuitive properties not usually associated with continuous functions.




  1. Probability theory uses the term almost surely to indicate an event which occurs with probability 1. The complementary events occurring with probability 0 are sometimes called negligible events. In infinite sample spaces, it is possible to have meaningful events with probability zero. So to say an event occurs “almost surely” or is an negligible event is not an empty phrase.


Mathematical Ideas

Mathematical Ideas

Non-differentiability of Brownian Motion paths

Probability theory uses the term almost surely to indicate an event which occurs with probability 1. The complementary events occurring with probability 0 are sometimes called negligible events. In infinite sample spaces, it is possible to have meaningful events with probability zero. So to say an event occurs “almost surely” or is a negligible event is not an empty phrase.

Theorem 1. With probability 1 (i.e. almost surely) Brownian Motion paths are continuous functions.

To state this as a theorem may seem strange in view of property 4 of the definition of Brownian motion. Property 4 requires that Brownian motion is continuous. However, some authors weaken property 4 in the definition to only require that Brownian motion be continuous at t = 0. Then this theorem shows that the weaker definition implies the stronger definition used in this text. This theorem is difficult to prove, and well beyond the scope of this course. In fact, even the statement above is imprecise. Specifically, there is an explicit representation of the defining properties of Brownian Motion as a random variable W(t,ω) which is a continuous function of t with probability 1. We need the continuity for much of what we do later, and so this theorem is stated here as a fact without proof.

Theorem 2. With probability 1 (i.e. almost surely) a Brownian Motion is nowhere (except possibly on set of Lebesgue measure 0) differentiable.

This property is even deeper and requires more understanding of analysis to prove than does the continuity theorem, so we will not prove it here. Rather, we use this fact as another piece of evidence of the strangeness of Brownian Motion.

In spite of one’s intuition from calculus, Theorem 2 shows that continuous, nowhere differentiable functions are actually common. Indeed, continuous, nowhere differentiable functions are useful for stochastic processes. One can imagine non-differentiability by considering the function f(t) = |t| which is continuous but not differentiable at t = 0. Because of the corner at t = 0, the left and right limits of the difference quotient exist but are not equal. Even more to the point, the function t23 is continuous but not differentiable at t = 0 because of a sharp “cusp” there. The left and right limits of the difference quotient do not exist (more precisely, each approaches ±) at x = 0. One can imagine Brownian Motion as being spiky with tiny cusps and corners at every point. This becomes somewhat easier to imagine by thinking of the limiting approximation of Brownian Motion by scaled random walks. The re-scaled coin-flipping fortune graphs look spiky with many corners. The approximating graphs suggest why the theorem is true, although this is not sufficient for the proof.

Properties of the Path of Brownian Motion

Theorem 3. With probability 1 (i.e. almost surely) a Brownian Motion path has no intervals of monotonicity. That is, there is no interval [a,b] with W(t2) W(t1) > 0 (or W(t2) W(t1) < 0) for all t2,t1 [a,b] with t2 > t1

Theorem 4. With probability 1 (i.e. almost surely) Brownian Motion W(t) has

limsup nW(n) n = +, liminf nW(n) n = .

From Theorem 4 and the continuity we can deduce that for arbitrarily large t1, there is a t2 > t1 such that W(t2) = 0. That is, Brownian Motion paths always cross the time-axis at some time greater than any arbitrarily large value of t. Equivalently, Brownian Motion never eventually stays in the upper half-plane (or lower half-plane).

Theorem 5. With probability 1 (i.e. almost surely), 0 is an accumulation point of the zeros of W(t).

From Theorem 4 and the inversion tW(1t) also being a standard Brownian motion, we heuristically deduce that 0 is an accumulation point of the zeros of W(t). That is, Standard Brownian Motion crosses the time axis arbitrarily often near 0.

Theorem 6. With probability 1 (i.e. almost surely) the zero set of Brownian Motion

{t [0,) : W(t) = 0}

is an uncountable closed set with no isolated points.

Theorem 7. With probability 1 (i.e. almost surely) the graph of a Brownian Motion path has Hausdorff dimension 32.

Roughly, this means that the graph of a Brownian Motion path is “fuzzier” or “thicker” than the graph of, for example, a continuously differentiable function which would have Hausdorff dimension 1. In popular language, this theorem says that Brownian Motion is a fractal.


This section is adapted from Notes on Brownian Motion by Yuval Peres, University of California Berkeley, Department of Statistics.


Algorithms, Scripts, Simulations

Algorithms, Scripts, Simulations


For a given value of p and number of steps N on a time interval [0,T] create a scaled random walk ŴN(t) on [0,T]. Then for a given minimum increment h0 up to a maximum increment h1 create a sequence of equally spaced increments. Then at a fixed base-point, calculate the difference quotient for each of the increments. When plotting is available, plot the difference quotients versus the increments on a semi-logarithmic set of axes.

Because the difference quotients are computed using the scaled random walk approximation of the Wiener process, the largest possible slope is

TN(TN) = NT.

So the plotted difference quotients will “max out” once the increment is less than the scaled random walk step size.

The Geoegebra simulation finds the closest scaled random walk node less than the basepoint x0. Then using the slider to set the value of h, the Geogebra simulation finds the closest scaled random node greater than x0 + h. The Geogebra simulation draws the secant line through the two nodes to show that the difference quotients do not appear to converge as h decreases. The ultimate secant line for the smallest value of h is between two adjacent nodes and has a slope of NT.




R script for..

1p <- 0.5 
2N <- 1000 
4T <- 1 
6S <- array(0, c(N+1)) 
7rw <- cumsum( 2 * ( runif(N) <= p)-1 ) 
8S[2:(N+1)] <- rw 
10WcaretN <- function(x) { 
11    Delta <- T/N 
13    # add 1 since arrays are 1-based 
14    prior = floor(x/Delta) + 1 
15    subsequent = ceiling(x/Delta) + 1 
17    retval <- sqrt(Delta)*(S[prior] + ((x/Delta+1) - prior)*(S[subsequent] - S[prior])) 
20h0 <- 1e-7 
21h1 <- 1e-2 
22m = 30 
23basepoint = 0.5 
25h <- seq(h0, h1, length=m) 
26x0 <- array(basepoint, c(m)) 
28diffquotients <- abs(WcaretN( x0 + h) - WcaretN(x0) )/h 
30plot(h, diffquotients, type = "l", log = "y", xlab = expression(h), 
31      ylab = expression(abs(W(x0+h) - W(x0))/h)) 
32max(diffquotients, na.rm=TRUE)

Octave script for .

1p = 0.5; 
3global N = 1000; 
4global T = 1; 
6global S 
7S = zeros(N+1, 1); 
8S(2:N+1) = cumsum( 2 * (rand(N,1)<=p) - 1); 
10function retval = WcaretN(x) 
11  global N; 
12  global T; 
13  global S; 
14  step = T/N; 
16  # add 1 since arrays are 1-based 
17  prior = floor(x/step) + 1; 
18  subsequent = ceil(x/step) + 1; 
20  retval = sqrt(step)*(S(prior) + ((x/step+1) - prior).*(S(subsequent)-S(prior))); 
24h0 = 1e-7; 
25h1 = 1e-2; 
26m = 30; 
27basepoint = 0.5; 
29h = transpose(linspace(h0,h1, m)); 
30x0 = basepoint * ones(m,1); 
32diffquotients = abs( WcaretN( x0 + h) - WcaretN(x0) ) ./ h 
34semilogy( h, diffquotients) 
36ylabel("abs(W(x0+h) - W(x0))/h)")

Perl PDL script for .

1$p = 0.5; 
3$N = 1000; 
4$T = 1; 
6# the random walk 
7$S = zeros( $N + 1 ); 
8$S ( 1 : $N ) .= cumusumover( 2 * ( random($N) <= $p ) - 1 ); 
10# function WcaretN interpolating random walk 
11sub WcaretN { 
12    my $x = shift @_; 
13    $Delta = $T / $N; 
15    $prior      = floor( $x / $Delta ); 
16    $subsequent = ceil( $x / $Delta ); 
18    $retval = 
19        sqrt($Delta) 
20        * ( $S ($prior) 
21            + ( ( $x / $Delta ) - $prior ) 
22            * ( $S ($subsequent) - $S ($prior) ) ); 
25$h0        = 1e-7; 
26$h1        = 1e-2; 
27$m         = 30; 
28$basepoint = 0.5; 
30$h = zeroes($m)->xlinvals( $h0, $h1 ); 
31$x0 = $basepoint * ones($m); 
33$diffquotients = abs( WcaretN( $x0 + $h ) - WcaretN($x0) ) / $h; 
35# file output to use with external plotting programming 
36# such as gnuplot, R, octave, etc. 
37# Start gnuplot, then from gnuplot prompt 
38#    set logscale y 
39#   plot "pathproperties.dat" with lines 
41open( F, ">pathproperties.dat" ) || die "cannot write: $! "; 
42foreach $j ( 0 .. $m - 1 ) { 
43    print F $h->range( [$j] ), " ", $diffquotients->range( [$j] ), "\n"; 

Scientific Python script for .

2import scipy 
4p = 0.5 
6N = 1000 
7T = 1. 
9# the random walk 
10S = scipy.zeros(N+1) 
11S[1:N+1] = scipy.cumsum( 2*( scipy.random.random(N) <= p ) - 1 ) 
13def WcaretN(x): 
14    Delta = T/N 
15    prior = scipy.floor(x/Delta).astype(int) 
16    subsequent = scipy.ceil(x/Delta).astype(int) 
17    return scipy.sqrt(Delta)*(S[prior] + (x/Delta - prior)*(S[subsequent] - S[prior])) 
19h0 = 1e-7 
20h1 = 1e-2 
21m = 30 
22basepoint = 0.5 
24h = scipy.linspace( h0, h1, m) 
25x0 = basepoint * scipy.ones(30) 
27diffquotients = scipy.absolute( WcaretN( x0 + h ) - WcaretN( x0 ) )/h 
29# optional file output to use with external plotting programming 
30# such as gnuplot, R, octave, etc. 
31# Start gnuplot, then from gnuplot prompt 
32#    set logscale y 
33#    plot "pathproperties.dat" with lines 
34f = open(pathproperties.dat, w) 
35for j in range(0, m-1): 
36    f.write( str(h[j])+ +str(diffquotients[j])+\n); 


Problems to Work

Problems to Work for Understanding

  1. In an infinite sequence of fair coin flips, consider the event that there are only finitely many tails. What is the probability of this event? Is this event empty? Is this event impossible?
  2. Provide a more complete heuristic argument based on Theorem 4 that almost surely there is a sequence tn with lim ttn = such that W(t) = 0
  3. Provide a heuristic argument based on Theorem 5 and the shifting property that the zero set of Brownian Motion
    {t [0,) : W(t) = 0}

    has no isolated points.

  4. Looking in more advanced references, find another property of Brownian Motion which illustrates strange path properties.



Reading Suggestion:


[1]   David Freedman. Brownian Motion and Diffusions. Holden-Day, 1971. QA274.75F74.

[2]   I. Karatzas and S. E. Shreve. Brownian Motion and Stochastic Calculus. Graduate Texts in Mathematics. Springer Verlag, second edition, 1997.

[3]   S. Karlin and H. Taylor. A Second Course in Stochastic Processes. Academic Press, 1981.

[4]   Steven E. Shreve. Stochastic Calculus For Finance, volume II of Springer Finance. Springer Verlag, 2004.

[5]   Steven E. Shreve. Stochastic Calculus For Finance, volume I of Springer Finance. Springer Verlag, 2004.



Outside Readings and Links:


I check all the information on each page for correctness and typographical errors. Nevertheless, some errors may occur and I would be grateful if you would alert me to such errors. I make every reasonable effort to present current and accurate information for public use, however I do not guarantee the accuracy or timeliness of information on this website. Your use of the information from this website is strictly voluntary and at your risk.

I have checked the links to external sites for usefulness. Links to external websites are provided as a convenience. I do not endorse, control, monitor, or guarantee the information contained in any external website. I don’t guarantee that the links are active at all times. Use the links here with the same caution as you would all information on the Internet. This website reflects the thoughts, interests and opinions of its author. They do not explicitly represent official positions or policies of my employer.

Information on this website is subject to change without notice.

Steve Dunbar’s Home Page,

Email to Steve Dunbar, sdunbar1 at unl dot edu

Last modified: Processed from LATEX source on August 1, 2016