已知一個橢圓 在橢圓內隨機取點應該如何實現? 我用的fortran 其它語言有什麼方便的函式嗎?灰原哀2018-05-22 11:12:10

加橢圓邊界條件,超出邊界重新取點。

已知一個橢圓 在橢圓內隨機取點應該如何實現? 我用的fortran 其它語言有什麼方便的函式嗎?Milo Yip2018-06-07 13:11:29

在單位圓盤內均勻分佈的取樣方法之一,是生成均勻分佈的

\theta \in [0, 2\pi], r \in [0, 1]

\begin{align} x &= \sqrt{r} \cos \theta\\ y &= \sqrt{r} \sin \theta \end{align}\\

把座標向分別兩個軸縮放,仍然保持均勻分佈,如下圖把

x

放大成兩倍:

已知一個橢圓 在橢圓內隨機取點應該如何實現? 我用的fortran 其它語言有什麼方便的函式嗎?

已知一個橢圓 在橢圓內隨機取點應該如何實現? 我用的fortran 其它語言有什麼方便的函式嗎?匿名使用者2018-06-07 14:21:16

補一個n維“橢球”裡uniform sample的方法。 以下加粗的量為vectors。

假設n維橢球是由n維單位球

\{\bm{x} \in \mathbb{R}^n|\lVert \bm{x} \rVert_2 \leq 1\}

由線性變換

L(.)

得到。 那麼:

先sample一個n維standard normal distribution:

\bm{X} \sim N(\bm{0}_n, \bm{I}_{n \times n})

。 這一步其實就是每個component 獨立地sample一個1維standard normal:

X_i \sim N(0, 1), ~\text{independently}

再將

\bm{X}

normalize:

\bm{Y} = \bm{X} / \lVert \bm{X} \rVert_2

, 得到n維單位球上的均勻分佈

再取

U \sim \text{Uniform}(0, 1)

, 令

V = U^{1/n}

再令

\bm{W} = V \cdot \bm{Y}

, 得到n維單位球裡的均勻分佈

最後進行線性變換,

\bm{Z} = {L} (\bm{W})

即為目標橢球內的均勻分佈。

已知一個橢圓 在橢圓內隨機取點應該如何實現? 我用的fortran 其它語言有什麼方便的函式嗎?知乎使用者2018-06-07 19:16:24

猜題主的“隨機”二字指的是服從均勻分佈的含義。

方法如下。

已知一個橢圓 在橢圓內隨機取點應該如何實現? 我用的fortran 其它語言有什麼方便的函式嗎?

已知一個橢圓 在橢圓內隨機取點應該如何實現? 我用的fortran 其它語言有什麼方便的函式嗎?

已知一個橢圓 在橢圓內隨機取點應該如何實現? 我用的fortran 其它語言有什麼方便的函式嗎?知乎使用者2018-12-11 19:36:03

前面的感覺不太對,有些透過判斷來生成的。。。。。

已知一個橢圓 在橢圓內隨機取點應該如何實現? 我用的fortran 其它語言有什麼方便的函式嗎?

clc

clear

time=0;

start=[20,50];goal=[80,50];

cmin=norm(goal-start);

cbest=120;

axis([-20,120,-20,120])

hold on

time=0;

while time<4000

x_center=[(start+goal)/2,0];

x_center=x_center‘;

a_1=[(goal(1)-start(1))/cmin;(goal(2)-start(2))/cmin;0];

id_t=[1,0,0];

M=a_1*id_t;

[U,S,Vh]=svd(M);

C=(U*diag([1,1,det(U)*det(Vh’)]))*(Vh);

r=[cbest/2,sqrt(cbest。^2-cmin。^2)/2,sqrt(cbest。^2-cmin。^2)/2];

L=diag(r);

a=rand();

b=rand();

if b

tmp=b;

b=a;

a=tmp;

end

x_ball=[b*cos(2*pi*a/b);b*sin(2*pi*a/b);0];

randpoint=C*L*x_ball+x_center;

plot(randpoint(1,1),randpoint(2,1),‘。’)

hold on

grid on

time=time+1;

end

參考:Informed RRT*: Optimal Incremental Path Planning Focused through an Admissible Ellipsoidal Heuristic