3-ডি ইউনিটের বলগুলিতে কীভাবে সমানভাবে বিতরণ করা হবে?


11

আমি পূর্ববর্তী একটি প্রশ্ন পোস্ট করেছি , এটি সম্পর্কিত তবে আমি মনে করি যে অন্য থ্রেড শুরু করা ভাল। এবার আমি ভাবছি যে 3-ডি ইউনিট গোলকের ভিতরে কীভাবে সমানভাবে বিতরণকৃত পয়েন্ট তৈরি করা যায় এবং কীভাবে দৃশ্যমান এবং পরিসংখ্যানগতভাবে বিতরণটি পরীক্ষা করতে হয়? আমি এই পরিস্থিতিতে সরাসরি স্থানান্তরযোগ্য সেখানে পোস্ট করা কৌশলগুলি দেখছি না।


4
পূর্ববর্তী প্রশ্নে কৌশল সরাসরি প্রয়োগ একবার আপনি মান্য যে দূরত্ব মধ্যে বিন্দুর সংখ্যা বংশোদ্ভুত সমানুপাতিক হতে হবে দ 3 । তাই যদি আপনি একটি স্বাধীন অভিন্ন variate উৎপন্ন তোমার দর্শন লগ করা মধ্যে [ 0 , 1 ] একটি বিন্দু সহ W গোলক পৃষ্ঠের উপর, স্কেলিং W দ্বারা তোমার দর্শন লগ করা 1 / 3 কৌতুক আছে। rr3u[0,1]wwu1/3
— whuber

@ শুভ: সম্ভবত আমি কেবল আগের কৌশলগুলির সারাংশ পাইনি। আপনি বর্ণিত কি আমাকে চেষ্টা করুন। অতিরিক্তভাবে, এখানে আবার অভিন্নতা যাচাই করার উপায়গুলি কী কী?
— কিয়াং লি

2
@ কিয়াং রিপলির কে ফাংশন এবং চি-স্কোয়ার পরীক্ষা। আপনি গোলকের পৃষ্ঠের পয়েন্টগুলির রেডিয়াল প্রক্ষেপণের একতা, পয়েন্টগুলির দৈর্ঘ্যের ঘনক্ষেত্রের অভিন্নতা এবং two দুটির স্বাধীনতাও পরীক্ষা করতে পারেন।
— whuber

আমার জন্য, এটি "সমানভাবে বিতরণ" এর অর্থ এতটা স্পষ্ট নয় ... এবং সম্ভবত এটি সংজ্ঞায়িত করার

fR,Θ,Φ(r,θ,ϕ)=r2

উত্তর:


14

43πr3=0.523...


+1 টি। এটি কম্প.গ্রাফিক্স.এলগোরিদিম এফএকিউ "গোলকের উপর অভিন্ন র্যান্ডম পয়েন্ট"
— ডেভিড ক্যারি

1
n>100

2
একে "প্রত্যাখ্যান পদ্ধতি" বলা হয়। সাতাশটি মাত্রা অনুসারে তিনটি মাত্রায় ভালভাবে কাজ করার সময়, ট্রিলিয়ন পয়েন্টের মধ্যে কেবল একটিই 27-বলের মধ্যে থাকে এবং বাকি 27-কিউবটিতে থাকে না, তাই প্রত্যাখ্যান পদ্ধতিটি সাধারণভাবে কার্যকর হয় না। আমি এটি উল্লেখ করছি কারণ আমার বর্তমানে 2,440 মাত্রার বলটিতে সমানভাবে নমুনাগুলি প্রয়োজন need
— রেব কেবিন

13

xyzx=rsin⁡θcos⁡ϕy=rsin⁡θsin⁡ϕz=rcos⁡θ

ϕ02πrθrr3r3r2rθ(1−cos⁡θ)/21−(1−cos⁡(−θ))/2θ>π/2θsin(θ)/2

θ−11

R এ নীচের মত প্রদর্শিত হবে।

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

এই উত্তরটি লেখার এবং সম্পাদনার সময় আমি বুঝতে পেরেছিলাম যে সমাধানটি আমার ধারণা থেকে কম তুচ্ছ।

(x,y,z)r

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

3
এটি প্রত্যাখ্যান না করার কারণে এটি আরও ভাল উত্তর। উচ্চ মাত্রিক স্থানগুলিতে, গ্রহণযোগ্যতার কম সম্ভাবনার কারণে প্রত্যাখ্যানের নমুনা খুব ব্যয়বহুল হতে পারে।
— কিংডিয়নিয়ন

2
কোডের শেষ বিটটি উচ্চ মাত্রায় মানিয়ে নিতে পারে, বলুন d। এই জন্য, 3দ্বারা সমস্ত দৃষ্টান্ত প্রতিস্থাপন d।
— gui11aume

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.