[R] simple loop problemo (Geo brownian motion)

Yihui Xie xie at yihui.name
Sat Nov 20 02:51:33 CET 2010


Maybe you can consider the brownian.motion() function in the animation
package, e.g.

library(animation)
ani.options(interval = 0.05, nmax = 150)
brownian.motion(pch = 21, cex = 5, col = "red", bg = "yellow", main =
"Demonstration of Brownian Motion")

Or here is another (awkward) example of several "parallel" groups of
random walks:

https://github.com/hadley/ggplot2/wiki/Using-ggplot2-animations-to-demonstrate-several-parallel-numerical-experiments-in-a-single-layout

Regards,
Yihui
--
Yihui Xie <xieyihui at gmail.com>
Phone: 515-294-2465 Web: http://yihui.name
Department of Statistics, Iowa State University
2215 Snedecor Hall, Ames, IA



On Fri, Nov 19, 2010 at 12:09 PM, newbster <gpm8342 at yahoo.com> wrote:
>
> I would like to plot multiple random walks onto the same graph.  My p
> variable dictates how may random walks there will be.
>
>
> par(mfrow=c(1,1))
> p <- 100
> N <- 1000
> S0 <- 10
> mu <- 0.03
> sigma <- 0.2
> nu <- mu-sigma^2/2
> x <- matrix(rep(0,(N+1)*p),nrow=(N+1))
> y <- matrix(rep(0,(N+1)*p),nrow=(N+1))
> t<- (c(0:N))/N
> for (j in 1:p)
> {
> z <- rnorm(N,0,1)
> x[1,j] <- 0
> y[1,j] <- S0
> for (i in 1:N)
> {
> x[i+1,j] <- (1/sqrt(N))*sum(z[1:i])
> y[i+1,j] <- y[1,j]*exp(nu*t[i+1]+sigma*x[i+1,j])
> }
>
> plot(t,y,type="l",xlab="time", ylab="Geometric Brownian motion")
>
> }
>
>
> Any help would be appreciated, thanks.
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/simple-loop-problemo-Geo-brownian-motion-tp3050762p3050762.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list