줄에 걸리는 장력을 줄의 단면적으로 나눈 값이 stress ($\sigma = T/A$)는 균일한 줄에서는 일반적으로 일정할 수 없다. 현수선에서 줄에 걸리는 stress를 유지하려면 줄의 단면적을 가변적으로 만들면 가능하다. 이 경우 현수선 중심선의 모양 $y(x)$가 어떻게 주어지는 알아보자. 현수선의 밀도가 $\rho$, 꼭짓점으로부터 떨어진 거리가 $s$인 지점의 단면적이 $A(s)$일 때, 힘의 평형 조건에서 

$$ \sum F_x = T\cos \psi - T_0 = 0 ,$$

$$ \sum F_y = T\sin \psi  -   \int  \rho g A(s) ds = 0. $$

여기서 $T_0$는 장력의 수평성분으로 꼭짓점에서 장력을 의미한다. 위 식에서 $T$를 소거하여 정리하면

$$ y' = \tan\psi = \rho g \int \frac{A(s) ds}{T_0}$$

을 얻는다. stress가 일정하다는 조건 $ \sigma = T/A(s)$에서 $A(s) =T(s)/\sigma  =  T_0/\sigma \cos \psi$로 치환하면

$$ y' =  \frac{\rho g }{\sigma} \int \frac{ds}{\cos \psi}.$$

양변을 $s$로 미분하면 

$$ \text{LHS}= \frac{d}{ds} y' = \frac{dx}{ds} y'' = \frac{1}{ds/dx} y'',$$

$$\text{RHS} = \frac{\rho g}{\sigma} \frac{1}{\cos\psi}.$$

$\tan \psi = dy/dx$ 이므로 $\cos\psi = 1/\sqrt{1+ (dy/dx)^2}$, 그리고 $ds/dx = \sqrt{1+ (dy/dx)^2}$ 이므로

곡선이 만족해야 하는 방정식은

$$ y'' = \frac{\rho g}{\sigma} (1 + (y')^2 )$$

으로 주어진다.

 

꼭짓점이 $x=0$을 통과하게 선택하면 $y'(x=0)= 0$이므로 위식을 적분하면

$$ y' = \tan \Big( \frac{\rho g}{\sigma} x \Big).$$

꼭짓점이 원점에 있게 좌표를 잡으면, $y(x=0)=0$, 위 식을 적분해서

$$ y = -\frac{\sigma}{\rho g} \log \cos \Big( \frac{\rho g}{\sigma} x\Big) $$

을 얻는다. 꼭짓점 근방에서 위 곡선은 포물선으로 근사된다.

$$ y \approx \frac{\rho g}{ 2\sigma} x^2 + ....$$

https://kipl.tistory.com/352

 

Catenary

체인이나 줄을 느슨한 상태로 양끝을 고정시킬 때 모양은 포물선처럼 보이지만 실제로는 그렇지 않고 현수선(catenary)라고 불리는 곡선이다. 양끝을 고정시킨 줄을 보자. 늘어진 줄에는 자신의

kipl.tistory.com

 

728x90
Posted by helloktk
,

두 지점 $x=\pm a$에 같은 높이로 고정되어 있는 길이 $L$인 줄이 만드는 곡선 $y(x)$는 catenary라고 불리는 곡선으로 표현됨은 이미 알고 있다. 이를 에너지 관점에서 구하도록 하자. 전체 계의 에너지는 평형상태이므로 줄의 중력 위치에너지만 존재한다. 줄의 선밀도가 $\mu$일 때 중력 위치에너지는

$$ U = \int {g y dm} = \int {g y \mu ds} = \mu g \int_{-a}^{a}  y \sqrt{1+ (y')^2} dx$$

그리고 줄의 길이가 $L$이므로 

$$ L = \int ds =\int_{-a}^{a} \sqrt{1 + (y')^2 } dx $$

따라서 일정한 길이를 가지면서 위치에너지를 최소화시키는 곡선의 모양을 찾아야 하는데 이는 아래의 범함수의 stationary point를 찾는 문제다.

$$ J = \mu g \int_{-a}^{a} y \sqrt{1 + (y')^2} dx + \mu g \lambda \Big( \int_{-a}^{a} \sqrt{ 1+ (y')^2} dx - L\Big) \\ = \mu g \int_{-a}^{a} \left[ y \sqrt{1+ (y')^2} + \lambda \Big( \sqrt{ 1 + (y')^2} - \frac{L}{2a} \Big) \right] dx \\ = \mu g\int_{-a}^{a} {\cal L} dx$$ 

여기서 $\lambda$는 Lagrange multiplier이다. ${\cal L}$이 명시적으로 $x$에 의존하지 않으므로 (first integral of E-L equation)

$$ {\cal L} - y' \frac{\partial \cal L}{\partial y'} = C=\text{const}$$

임을 알 수 있고, 이를 정리하면 다음의 결과를 얻는다:

$$ y' = \sqrt{ \left( \frac{y + \lambda}{C+ \lambda L/ 2a}\right)^2 -1}$$

이 방정식을 바로 적분을 해서 구체적인 해를 구해도 되지만, 여기서는 이 식을 한 번 더 미분하면

$$ y'' = \frac{1}{C+\lambda L/2a} \sqrt{1+  (y')^2} = \frac{1}{k} \sqrt{1+ (y')^2}$$

을 얻는다. 이 식이 현수선을 기술하는 미분방정식임을 이미 앞에서 살펴보았다. 

https://kipl.tistory.com/352

 

 

Catenary

체인이나 줄을 느슨한 상태로 양끝을 고정시킬 때 모양은 포물선처럼 보이지만 실제로는 그렇지 않고 현수선(catenary)라고 불리는 곡선이다. 양끝을 고정시킨 줄을 보자. 늘어진 줄에는 자신의

kipl.tistory.com

 

728x90

'Mathematics' 카테고리의 다른 글

Catenary: rolling square wheels  (0) 2022.02.02
Catenary: constant stress  (0) 2022.01.29
Generate uniformly random points within a circle  (0) 2022.01.29
Mean distance between two randomly chosen points in unit square  (0) 2022.01.28
Catenary  (0) 2022.01.14
Posted by helloktk
,

원 내부의 점들은 극좌표 $(r, \theta)$를 사용해서 표현할 수 있다

$$ x=r \cos \theta, ~~y = r\sin \theta .$$

그럼 반지름 $r$을 $[0,1]$ 구간에서 균일하게 선택하고, 각 $\theta$는 $[0,2\pi]$ 구간에서 균일하게 선택하면 원내부에서 균일한 분포를 얻을 수 있을까?

 

먼저, 원내부에 균일한 점분포가 있을 때 반지름과 각도의 분포가 어떻게 주어질지 알아보자. 이 경우 반지름 $r$ 안에서 점을 발견할 확률(cdf) $P(r)$은 면적에 비례하므로 

$$ P(r) =\frac{\text{area}(r)}{\text{area}(1)} =  r^2$$ 

이므로 확률밀도함수(pdf)는 $$p(r) = 2r$$

로 주어진다. 즉, 원내부에서 균일한 점분포는 균일한 각분포를 가지지만, $r$ 분포는 $r \rightarrow1$ 쪽으로 편향되게 된다. 이는 균일하게 $r$을 선택하면 위의 극좌표 변환이 만드는 분포는 원의 중심 부분에 더 집중하는 형태를 가지게 됨을 의미한다.

1000개 점

따라서 반대로 균일한 반지름/각 분포를 이용해서 원내부에서 균일한 점분포를 만들려면 $(x, y) \rightarrow (r, \theta)$로 가는 변환의 Jacobian이 상수여야 한다. 위의 결과를 살펴보면

$$ x = \sqrt{r} \cos \theta,~~ y= \sqrt{r} \sin \theta$$

의 변환을 사용해야 Jaconbian이 상수가 됨을 알 수 있다.

$$J = \left| \begin{array}{cc} \frac{\partial x}{\partial r} & \frac{\partial x}{\partial \theta}\\ \frac{\partial y}{\partial r}& \frac{\partial y}{\partial \theta} \end{array} \right|= \frac{1}{2}$$

void UniformDist_disk(CDC *pDC) {
    srand(unsigned(time(0)));
    double scale = 100;
    for (int i = 0; i < 1000; i++) {
        double r = double(rand()) / RAND_MAX;
        double ang = 2 * PI * double(rand()) / RAND_MAX;
        double x = scale * sqrt(r) * cos(ang);
        double y = scale * sqrt(r) * sin(ang);
        int xi = int(x + scale + 0.5);
        int yi = int(y + scale + 0.5);
        pDC->Ellipse(xi - 1, yi - 1, xi + 1, yi + 1);
    }
}
728x90

'Mathematics' 카테고리의 다른 글

Catenary: constant stress  (0) 2022.01.29
Catenary: Variational Approach  (0) 2022.01.29
Mean distance between two randomly chosen points in unit square  (0) 2022.01.28
Catenary  (0) 2022.01.14
Integration along a branch cut-013  (0) 2021.12.22
Posted by helloktk
,

randomline.nb
0.01MB

한 변의 길이가 1인 정사각형 내부의 임의의 두 점을 뽑았을 때 길이를 측정할 때 평균적으로 얼마나 될 것으로 예측할 수 있을까? 문제를 해결하기 위해서는 우선 주어진 길이가 특정한 값을 가질 확률밀도함수를 구해야 한다. $x$ 좌표와 $y$ 좌표가 독립적이므로 우선 1 차원인 경우를 구한 후 해결하면 된다. 그리고 거리가 연속적이므로 주어진 거리 $(a)$ 이하일 확률 $P_1(a)$을 구한 후 그것의 미분을 구하면 $(p_1(a)da=dP_1)$ 주어진 거리에 대한 확률밀도함수를 얻을 수 있다. 두 위치 $x_1, x_2$가 선택될 때 거리는 $|x_1 -x_2|$이고, $|x_1 - x_2 | \le a$일 확률은 $x_1, x_2$을 좌표축으로 하는 평면의 정사각형 영역에서 회색 부분의 면적에 비례한다:

$$P_1(|x_1 -x_2|\le a) = 1 - (1-a)^2, \quad  0\le a \le 1$$ 

이므로 두 지점의 거리가 $a$일 확률밀도함수는

$$ p_1(a) = \frac{dP_1}{da} = 2 (1-a) \quad (1-\text{dim})$$

으로 주어진다. 따라서 단위길이의 직선 위에서 선택된 두 점 사이의 평균 거리는

$$ \overline{a} = \int_0^1 2 (1-a) a da  = \frac{1}{3}$$

물론 단순하게 생각하면 두 좌표가 독립적이므로 

$$ \overline{|x_1 - x_2|} = \int_0^1 \int_0^1 |x_1 -x_2| dx_1 dx_2 = \frac{1}{3}$$

임을 확인할 수 있다.

거리의 분산을 구하면 

$$ \sigma^2(a)= \overline{a^2} - (\overline{a})^2 =  \int_0^12 (1-a) a^2 dx - \frac{1}{9}=\frac{1}{18}$$

이다.

 

평면의 경우는 두 독립적인 1차원 분포의 곱으로 주어지므로 $x-$좌표의 차이가 $a_1$이고 $y-$좌표의 차이가 $a_2$일 확률밀도함수는

$$p_2(a_1, a_2) = p_1(a_1 )p_1(a_2) = 4 (1-a_1)(1-a_2)  \quad (2-\text{dim}) $$

으로 주어진다. 그리고 평균 거리는

$$ \overline{\sqrt{a_1^2+a_2^2} } = \int_0^1 \int_0^1 4 (1-a_1)(1-a_2) \sqrt{ a_1^2 + a_2^2 } da_1 da_2\\ =\frac{1}{15} (2 + \sqrt{2} + 5\text{sinh}^{-1}(1)) = 0.521405$$

 

직선과 마찬가지로 평면에서 2점의 4 좌표가 독립적이므로 평균 거리는

$$ \overline{  \sqrt{(x_1 -x_2)^2 +(y_1 -y_2)^2}} = \int_0^1 \int_0^1 \int_0^1\int_0^1 \sqrt{ (x_1-x_2)^2 + (y_1-y_2)^2} dx_1 dx_2 dy_1 dy_2$$

을 계산해서 얻을 수도 있다.

void MeanRandomDist_Square() {
    const int nTrial = 10000000;
    srand(unsigned(time(0)));
    double sum_dist = 0;
    for (int i = 0; i < nTrial; i++) {
        double dx = double(rand()) / RAND_MAX - double(rand()) / RAND_MAX;
        double dy = double(rand()) / RAND_MAX - double(rand()) / RAND_MAX;
        double dist = sqrt(dx * dx + dy * dy);
        sum_dist += dist;
    }
    double mean_dist = sum_dist / nTrial;
    TRACE("mean dist in a square =%f\n", mean_dist);
}

일반적인 $n-$차원인 경우는? 구체적인 계산이 없이도 평균거리는 늘어날 것으로 쉽게 예측할 수 있다. 

728x90

'Mathematics' 카테고리의 다른 글

Catenary: Variational Approach  (0) 2022.01.29
Generate uniformly random points within a circle  (0) 2022.01.29
Catenary  (0) 2022.01.14
Integration along a branch cut-013  (0) 2021.12.22
Integration along a branch cut-012  (0) 2021.01.05
Posted by helloktk
,

일반적인 이차곡선은 다음의 이차식으로 표현이 된다:

$$ F(x, y)=ax^2 + bxy + cy^2 +d x + ey + f=0$$

6개의 계수는 모두 독립적이지 않고 어떤 종류의 이차곡선인가에 따라 제약조건이 들어온다. 주어진 점 데이터 $\{ (x_i, y_i) | i=1,2,...,n\}$를 피팅하는 이차곡선을 각각의 데이터 점에서 대수적 거리 ($=|F(x_i, y_i)|$)의 제곱을 최소로 하는 조건하에서 찾도록 하자:

$$ \epsilon = \sum_{i} |F(x_i , y_i )|^2 \rightarrow \text{min}$$

타원으로 피팅하는 경우 여러 가지 제약조건을 줄 수 있지만(e.g.: $a+c=1$, $\sqrt{a^2+b^2+...+f^2 }=1$ 등등) 여기서는 이차 곡선이 타원이기 위해서는 2차 항의 계수로 만드는 행렬 $\left(\begin{array}{cc} a & b/2\\b/2 & c\end{array}\right)$의 determinant (= $ac- b^2/4>0$)가 양수이어야 한다는 조건에서 (타원을 회전+평행 이동시키면 표준형 타원으로 만들 수 있는데, 이때 두 주축의 계수 곱이 determinant다. 따라서 타원이기 위해서는 값이 양수여야 된다) 

$$ 4ac - b^2 = 1$$

로 선택하도록 하자. 이 제약조건을 넣은 타원 피팅은 다음 식을 최소화하는 계수 벡터 $\mathbf{a}=[a,b,c,d,e,f]^T$을 찾는 문제가 된다:

\begin{gather}    \epsilon = \mathbf{a}^T. \mathbf{S}. \mathbf{a}   -\lambda ( \mathbf{a}^T.\mathbf{C}.\mathbf{a}-1)\end{gather}

여기서 $6\times 6$ scattering matrix $\mathbf{S}$는

$$ \mathbf{S}= \mathbf{D}^T. \mathbf{D}.$$

$n\times 6$ design matrix $\mathbf{D}$는 

$$ \mathbf{D}=\left[ \begin{array}{cccccc} x_1^2& x_1 y_1 & y_1^2 & x_1 & y_1 & 1\\ x_2^2& x_2 y_2 & y_2^2 & x_2 & y_2 & 1\\ & & \vdots & &  \\ x_n^2& x_n y_n & y_n^2 & x_n & y_n & 1 \end{array}\right] .$$

그리고, $6\times 6$ 행렬 $\mathbf{C}$는

$$ \mathbf{C}= \left[ \begin{array} {cccccc} 0&0&2&0&0&0\\ 0&-1&0&0&0&0 \\ 2&0&0&0&0&0\\ 0&0&0&0&0&0 \\ 0&0&0&0&0&0 \\ 0&0&0&0&0&0 \end{array} \right]  . $$

$\epsilon$을 $\mathbf{a}^T$에 대해 미분하면 최소 제곱 문제는 Lagrange multiplier를 고윳값으로 하는 고유 방정식의 해를 구하는 문제로 환원이 된다.

$$ \mathbf{S}.\mathbf{a} = \lambda \mathbf{C}.\mathbf{a}$$

그리고 주어진 고유값 $\lambda$에 해당하는 normalized 고유 벡터가 $\mathbf{a}$일 때 

$$\epsilon = \mathbf{a}^T. \mathbf{S}.\mathbf{a} = \lambda$$

이므로 최소의 양의 고윳값에 해당하는 고유 벡터가 해가 된다. Silverster의 law of inertia를 이용하면 위의 고유 방정식에서 양의 고윳값은 딱 1개만 존재함을 보일 수 있다. 고유값 $\lambda$에 해당하는 고유 벡터가 $\mathbf{a}$일 때 임의의 상수 $\mu$ 배를 한 $\mu\mathbf{a}$도 같은 고유값을 갖는 고유벡터다. normalized 고유벡터는 제약조건 $\mu^2 \mathbf{a}^T . \mathbf{C}. \mathbf{a} =1$을 만족하도록 크기를 조정하면 $ \mathbf{\tilde{a}} = \mathbf{a} / \sqrt{\mathbf{a}^T. \mathbf{C}. \mathbf{a}}$로 주어진다. 

 

이 일반화된 고유방정식의 풀이는 먼저 positive definite인 $\bf S$의 제곱근 행렬 $\bf Q=S^{1/2}$을 이용하면 쉽다. $\bf S$의 고유벡터를 구하면 eigendecomposition에 의해 $\bf  S = R\Lambda R^T$로 쓸 수 있으므로 제곱근 행렬은 $\bf  Q = R \Lambda ^{1/2} R^T$임을 쉽게 확인할 수 있다. 원래의 고유값 문제를 $\tt Q$을 이용해서 표현하면 

$$ \bf Q a = \lambda Q^{-1} C a = \lambda Q^{-1} C Q^{-1} Qa$$ 이므로 더 다루기 쉬운 $\bf Q^{-1} C Q^{-1}$의 고유값 문제로 환원이 됨을 알 수 있다.

 

추가로, 고유 방정식은 $\mathbf{C}$가 $3\times 3$ 크기의 block으로 나누어질 수 있으므로 $[a,b,c]^T$ 에 대한 고유 방정식으로 줄일 수 있어서 쉽게 해결할 수 있다. 물론 scattering matrix을 구성하는 moment의 개수가 많아서 matrix 연산 패키지를 사용하지 않는 경우 코드가 길어지게 된다. 

 

Note: 이 내용은 다음 논문을 정리한 것이다. Andrew Fitzgibbon, Maurizio Pilu, and Robert B. Fisher, Direct Least Square Fitting of Ellipses". IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 21, NO. 5, MAY 1999. 

https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/ellipse-pami.pdf

 

구현은  https://kipl.tistory.com/566

 

Ellipse Fitting

일반적인 conic section 피팅은 주어진 데이터 $\{ (x_i, y_i)\}$를 가장 잘 기술하는 이차식 $$F(x, y) = ax^2 + bxy +cy^2 + dx +ey +f=0 $$ 의 계수 ${\bf u^T}= (a,b,c,d,e,f)$을 찾는 문제이다. 이 conic section이 타원이기

kipl.tistory.com

 
728x90

'Image Recognition > Fundamental' 카테고리의 다른 글

SVD Fitting  (0) 2022.02.07
Color Histogram Equalization  (4) 2022.02.07
Circle Fitting: Pratt  (0) 2022.01.20
Best-fit Ellipse 2  (0) 2022.01.18
Best-fit Ellipse  (0) 2022.01.16
Posted by helloktk
,