Vervaat tarafından aşağıdaki yapı kullanılarak bir köprüden bir Brownian gezisi yapılabilir:
https://projecteuclid.org/download/pdf_1/euclid.aop/1176995155
@ Whuber'ın BB kodunu kullanarak R'de hızlı bir yaklaşım,
n <- 1001
times <- seq(0, 1, length.out=n)
set.seed(17)
dW <- rnorm(n)/sqrt(n)
W <- cumsum(dW)
# plot(times,W,type="l") # original BM
B <- W - times * W[n] # The Brownian bridge from (0,0) to (1,target)
# plot(times,B,type="l")
# Vervaat construction
Bmin <- min(B)
tmin <- which(B == Bmin)
newtimes <- (times[tmin] + times) %% 1
J<-floor(newtimes * n)
BE <- B[J] - Bmin
plot(1:length(BE)/n,BE,type="l")
İşte başka bir çizim (set.seed'den (21)). Bir gezi ile ilgili önemli bir gözlem, şartlanmanın aslında 0'dan bir "itme" olarak tezahür etmesidir ve ( 0 , 1 ) 'in iç kısmına bir gezinin yaklaştığını görmeniz olası değildir .
0( 0 , 1 )
Kenara: Brownian köprünün mutlak değerinin ve gezi, ( B B t ) 0 ≤ t ≤ 1'in pozitif olması koşuluyla dağılımı aynı değildir. Sezgisel olarak, gezi kökeninden itilir, çünkü kökenine çok yakın olan Brownian yollarının kısa bir süre sonra negatif olması muhtemeldir ve bu nedenle koşullandırma tarafından cezalandırılır.( | B Bt| )0 ≤ t ≤ 1( B Bt)0 ≤ t ≤ 1
Bu, basit bir rastgele yürüyüş köprüsü ve BM'nin doğal bir ayrık analogu olan adımda gezi ile gösterilebilir (ve adımlar büyüdükçe ve yeniden ölçeklendirdikçe BM'ye dönüşür).6
Gerçekten de, başlayarak simetrik bir SRW alın . İlk olarak, "köprü" koşullandırmasını düşünelim ve sadece mutlak değeri alırsak ne olacağını görelim. Tüm basit yolları düşünün lar uzunluğunun 6 başlar ve sonunu 0 . Bu yolların sayısı . Bunlardan ; bunlar . Başka bir deyişle, SRW "köprümüzün" ( ile bitmesi koşuluyla) mutlak değerinin adımda 0 değerine sahip olma olasılığı .0s60( 63) =20| s2| =00212/20=0.62 × ( 42) =12| s2| =00212 / 20 = 0.6
İkincisi, "gezi" koşullarını ele alacağız. Negatif olmayan basit yollarının sayısı uzunluğunun uç o Katalanca sayıdır . Bu yollardan tam olarak tanesi sahiptir . Bu nedenle, SRW "gezi" (pozitif kalması ve bitmesi koşuluyla ) adım 0 değerine sahip olma olasılığı .6 = 2 ∗ 3 0 C m = 3 = ( 2 ms6 = 2 ∗ 302s2=0022/5=0.4<0.6Cm = 3= ( 2 mm) /(m+1)=52s2=0022/5=0.4<0.6
Eğer hala SRW köprü ve uzunluğu arasında geziler için olasılığını düşünebiliriz limiti bu fenomen hakimse şüphe adım at 0 isabet .2 n4n2n
SRW gezisi için: wikipedia'dan aysmptotics kullanarak https://en.wikipedia.org/wiki / Katalan_sayısı . Yani nihayetinde .c, n - 3 / 2
P(S2n=0|Sj≥0,j≤4n,S4n=0)=C2n/C2n∼(42n/πn3)/(42n/(2n)3π−−−−−−√)
cn−3/2
Abs için (SRW köprüsü): wikipedia https://en.wikipedia.org/wiki/Binomial_coefficient'dan asimptotikler kullanarak . Bu .
P(|S2n|=0|S4n=0)=(2nn)2/(4n2n)∼(4n/πn−−−√)2/(42n/2nπ−−−√)
cn−1/2
Başka bir deyişle, SRW köprüsünü ortada pozitif olarak şartlandırılmış görmek için asimptotik olasılık, köprünün mutlak değerinden çok daha küçüktür. 0
Burada Brownian köprüsü yerine 3D Bessel sürecine dayanan alternatif bir yapı var. Https://projecteuclid.org/download/pdf_1/euclid.ejp/1457125524'de açıklanan gerçekleri kullanıyorum
Genel Bakış- 1) 3d Bessel sürecini simüle edin. Bu, pozitif olması için şartlandırılmış bir BM gibidir. 2) Bir Bessel 3 köprüsü (kağıtta Denklem (2)) elde etmek için uygun bir zaman aralığı yeniden ölçeklendirmesi uygulayın. 3) Bir Bessel 3 köprüsünün aslında bir Brownian gezisiyle aynı dağılıma sahip olduğu gerçeğini (gazetede Teorem 1'den hemen sonra belirtilmiştir) kullanın.
Küçük bir dezavantaj, alan / zaman ölçeklendirmesinin sonunda devreye girmesi için Bessel işlemini oldukça uzun bir süre (aşağıda T = 100) nispeten ince bir ızgarada çalıştırmanız gerektiğidir.
## Another construction of Brownian excursion via Bessel processes
set.seed(27092017)
## The Bessel process must run for a long time in order to construct a bridge
T <- 100
n <- 100001
d<-3 # dimension for Bessel process
dW <- matrix(ncol = n, nrow = d, data=rnorm(d*n)/sqrt(n/T))
dW[,1] <- 0
W <- apply(dW, 1, cumsum)
BessD <- apply(W,1,function(x) {sqrt(sum(x^2))})
times <- seq(0, T, length.out=n)
# plot(times,BessD, type="l") # Bessel D process
times01 <- times[times < 1]
rescaletimes <- pmin(times01/(1-times01),T)
# plot(times01,rescaletimes,type="l") # compare rescaled times
# create new time index
rescaletimeindex <- sapply(rescaletimes,function(x){max(which(times<=x))} )
BE <- (1 - times01) * BessD[rescaletimeindex]
plot(times01,BE, type="l")
İşte çıktı: