Làm thế nào để tạo các điểm phân phối đồng đều trong bóng đơn vị 3-d?


11

Tôi đã đăng một câu hỏi trước đây , điều này có liên quan nhưng tôi nghĩ tốt hơn là bắt đầu một chủ đề khác. Lần này, tôi tự hỏi làm thế nào để tạo các điểm phân phối đồng đều bên trong quả cầu đơn vị 3-d và làm thế nào để kiểm tra phân phối một cách trực quan và thống kê? Tôi không thấy các chiến lược được đăng ở đó có thể chuyển trực tiếp đến tình huống này.


4
Các kỹ thuật trong câu hỏi trước áp dụng trực tiếp khi bạn quan sát thấy số điểm trong khoảng cách của điểm gốc phải tỷ lệ với r 3 . Vì vậy, nếu bạn tạo ra một bộ đồng phục variate độc lập u trong [ 0 , 1 ] cùng với một điểm w trên bề mặt của hình cầu, mở rộng quy mô w bởi u 1 / 3 hiện các trick. rr3u[0,1]wwu1/3
whuber

@whuber: có lẽ tôi chỉ không nhận được bản chất của các kỹ thuật trước đó. Hãy để tôi thử những gì bạn mô tả. Ngoài ra, các cách để kiểm tra tính đồng nhất ở đây một lần nữa là gì?
Qiang Li

2
Hàm K của @Qiang Ripley và kiểm tra chi bình phương. Bạn cũng có thể kiểm tra tính đồng nhất của hình chiếu xuyên tâm của các điểm trên bề mặt của hình cầu, tính đồng nhất của khối lập phương có độ dài của các điểm và tính độc lập của hai điểm đó.
whuber

Đối với tôi, không rõ ràng "phân phối đồng đều" nghĩa là gì ... Và có lẽ cố gắng xác định nó sẽ tự động tạo ra một thuật toán tạo (=

@mbq, tôi nghĩ rằng để xác định thời hạn, chúng ta cần phải có một pdf của . fR,Θ,Φ(r,θ,ϕ)=r2
Qiang Li

Câu trả lời:


14

Cách dễ nhất là lấy mẫu các điểm đồng nhất trong hypercube tương ứng và loại bỏ những điểm không nằm trong quả cầu. Trong 3D, điều này không nên xảy ra thường xuyên, khoảng 50% thời gian. (Thể tích của hypercube là 1, thể tích của hình cầu là )43πr3=0.523...


+1. Đây là một trong những kỹ thuật được đề xuất bởi câu hỏi thường gặp của comp.graphics.alacticms "Điểm ngẫu nhiên thống nhất trên quả cầu".
David Cary

1
Nếu chúng ta muốn làm điều đó với thì sao? n>100
ares

2
Đây được gọi là "phương pháp từ chối." Mặc dù hoạt động tốt ở ba chiều, bởi hai mươi bảy chiều, chỉ một trong một nghìn tỷ điểm nằm trong bóng 27 và không ở phần còn lại của khối 27, vì vậy phương pháp loại bỏ không khái quát tốt. Tôi đề cập đến điều này bởi vì hiện tại tôi cần các mẫu đồng đều trong một quả bóng có kích thước 2.440.
Reb.Cabin

13

Bạn cũng có thể làm điều này trong tọa độ hình cầu, trong trường hợp đó không có từ chối. Trước tiên, bạn tạo ra các bán kính và hai góc độ một cách ngẫu nhiên, sau đó bạn sử dụng công thức chuyển đổi sang phục hồi , yz ( x = r sin θ cos φ , y = r sin θ sin φ , z = r cos θ ).xyzx=rsinθcosϕy=rsinθsinϕz=rcosθ

Bạn tạo unifomly giữa 02 π . Bán kính r và độ nghiêng θ là không đồng đều mặc dù. Xác suất một điểm nằm trong quả cầu có bán kính rr 3 nên hàm mật độ xác suất của r3 r 2 . Bạn có thể dễ dàng kiểm tra xem căn bậc ba của một biến thống nhất có cùng phân phối chính xác không, vì vậy đây là cách bạn có thể tạo r . Xác suất mà một điểm dối trá trong một hình nón hình cầu được xác định bởi độ nghiêng θ( 1 - cos θϕ02πrθrr3r3r2rθ hoặc 1 - ( 1 - cos ( - θ ) ) / 2 nếu θ > π / 2 . Vì vậy, mật độ θ s i n ( θ ) / 2 . Bạn có thể kiểm tra trừ đi Arccosine của một biến thống nhất có mật độ phù hợp.(1cosθ)/21(1cos(θ))/2θ>π/2θsin(θ)/2

Hoặc đơn giản hơn, chúng ta có thể mô phỏng các cosin của beteen thống nhất - 11 .θ11

Trong R, nó sẽ trông như dưới đây.

n <- 10000 # For example n = 10,000.
phi <- runif(n, max=2*pi)
r <- runif(n)^(1/3)
cos_theta <- runif(n, min=-1, max=1)
x <- r * sqrt(1-cos_theta^2) * cos(phi)
y <- r * sqrt(1-cos_theta^2) * sin(phi)
z <- r * cos_theta

Trong quá trình viết và chỉnh sửa câu trả lời này, tôi nhận ra rằng giải pháp này ít tầm thường hơn tôi nghĩ.

(x,y,z)r

xyz <- matrix(rnorm(3*n), ncol=3)
lambda <- runif(n)^(1/3) / sqrt(rowSums(xyz^2))
xyz <- xyz*lambda

3
Đây là một câu trả lời tốt hơn nhiều do thiếu từ chối. Trong không gian chiều cao, lấy mẫu từ chối có thể rất tốn kém do xác suất chấp nhận thấp.
kingledion

2
Bit cuối cùng của mã có thể được điều chỉnh theo chiều cao hơn, nói d. Đối với điều này, thay thế tất cả các trường hợp 3bằng d.
gui11aume

0

PP=N/||N||U1/nNU[0,1]1/nn

Et voilà!


2
Bán kính phân bố đồng đều sẽ không cho điểm đồng đều trong quả bóng ...
kjetil b halvorsen

1
U
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.