Tampaknya apa yang dicari adalah distribusi seragam pada disk, yang akan saya ambil (bagian dalam) lingkaran unit. Kita dapat menentukan parameter dengan sehingga kita memiliki dan . Kita dapat membiarkan memiliki distribusi seragam, tidak bergantung pada , dan harus menemukan distribusi yang memberikan distribusi seragam pada lingkaran. Karena probabilitas harus proporsional dengan area, kita memiliki yang
dan mengambil , memberi(r,θ)0≤r≤10≤θ≤2πθRR0≤a≤b≤1
P(a≤R≤b)∝πb2−πa2
a=0b=1FR(r)=r2. Maka densitasnya adalah turunan . Densitas gabungan dan kemudian menjadi
Ini mudah untuk disimulasikan dari, jumlah dua independen seragam memiliki distribusi segitiga (dan simetris), kadang-kadang digambarkan sebagai distribusi "tenda". Kami hanya ingin bagian kiri tenda, yang bisa kami dapatkan dengan mencerminkan distribusi dalam garis vertikal di bagian atas (mode) tenda. Mensimulasikan ini dalam R memberikan:
fR(r)=2rRθf(r,θ)=12π⋅2r=rπ
Kode R untuk simulasi adalah:
set.seed(7*11*13)
rleft_tri <- function(n) {
T <- runif(n)+runif(n)
val <- ifelse(T <= 1,T, 2-T)
val
}
rdisk <- function(n) {
val <- cbind( rleft_tri(n), 2*pi*runif(n) )
colnames(val) <- c("R","Theta")
val
}
#
library(plotrix)
par(bg="antiquewhite")
points <- rdisk(10000) plot(c(-1,1),c(-1,1),type="n",axes=FALSE,xlab="",ylab="",xlim=c(-1.1,1.1),ylim=c(-1.1,1.1))
draw.circle(x=c(0,0),y=c(0,0),radius=1,col="aquamarine")
points(with(as.data.frame(points),cbind(R*cos(Theta), R*sin(Theta))),pch=".",col="red",cex=2)
Perhatikan bahwa ini adalah kasus khusus dari jawaban lama @Greg Snow, karena distribusi "tenda kiri" adalah distribusi beta dengan parameter . Tetapi kode di atas untuk mensimulasikannya mungkin lebih cepat daripada kode umum untuk mensimulasikan dari beta (atau akan jadi jika diprogram dalam C).a=2,b=1