컴퓨터 공학

4.3.3 최대확산의 방향으로부터의 경계 구

혼새미로 2015. 11. 26. 02:57
반응형

AABB를 사용한 떨어져 있는 쌍점을 찾는 대신에, 이전 절에서처럼 제안된 해결법은 최대 확산의 방향을 찾기 위한 통계적 방법을 사용한 점 그림자를 분석하는 것이다.

  주어진 방향에서 구의 시작부분에서 중심점과 반지름을 찾아내기위해 축에 투사를 할때 두점은 최대한 멀어진다. 4.8절에서 같은 점에서의 그림자에서의 두개의 다른 축의 확산의 차이를 가리킨다. 데이타값의 설정의 의미는 값의 경향의 측정이고, 변화는 그들의 확산의 측정이거나 확산이다. u와 변수 ∂^2의 의미는 u=(1/n)*∑[i=1~n](xi) 이다. ∂^2=(1/n)(∑[i=1~n](xi^2)-u^2이다. 변수의 제곱근은 ㅍ준편차로 알려졌다. 단일의 축에서 값의 확산은 변수는 다음 값으로부터 제곱편차의 평균으로 계산된다.

void CovarianceMatrix(Matrix33 &cov,Point pt[],int numPts)

{

float oon=1.0f/(float)numPts;

Point c=Point(0.0f,0.0f,0.0f);

float 300,e11,e22,e01,e02,e12;

 

for(int i=0;i<numPts;i++)

c+=pt[i];

c*=oon;

 

e00=e11=e22=e01=e12=e02=0.0f;

for(int i=0;i<numPts;i++){

Point p=pt[i]-c;

e00+=p.x*p.x;

e11+=p.y*p.y;

e22+=p.z*p.z;

e01+=p.x*p.y;

e02+=p.x*p.z;

e12+=p.y*p.z;

}

cov[0][0]=e00*oon;

cov[1][1]=e11*oon;

cov[2][2]=e22*oon;

cov[0][1]=cov[1][0]=e01*oon;

cov[0][2]=cov[2][0]=e02*oon;

cov[1][2]=cov[2][1]=e12*oon;

}

종종 거기에는 변수와 표준편차의 명확한 해석이 없다. 2개의 변수에서, 함께 다양성을 위한 경향의 공분산을 측정한다. 그들의 의미에서 변수값의 편차의 평균값으로 계산된다. 다양한 변수에서 데이타의 공분산은 진부하게 계산되고, 행렬로 표현된다.

 ---------------------------식----------------------------------

일상적으로, 공분산 과정을 보기위해, 첫번째 공분산 공식을 고려하라. 각각의 값에서 같은 방향으로의 편차경향을 갖는 두변수가 있을때, 값은 (식)

  음보다 양값이 나온다. 변수가 다른 방향을 갖는 편차 경향이라면, 값은 양보다 음일것이다. 이값들의 합은 변수다양성을 확인시킨다.

 

단일-정확성 float를 사용할때는 더 정확한 비트를 유지함으로써 더 정확한 결과값을 얻오록 하는 두공분산의 경향을 갖는다. double을 사용해서 결과값에 차이는 없다. 첫번째 공식의 코드는 다음과 같다. 공분산 행렬이 계산되고 나면, 그것은 편차의 주요 방향에 대한 자세한 재용을 밝히는 방식으로 분해할 수 있다. 그 분해는 행렬의 고유값과 고유벡터를 계산함으로써 진행된다. 이것들의 관계는 큰 크기의 고윳값과 연관된 고유벡터는 점 데이터가 큰 편차를 가지고있다. 유사하게, 고유벡터는 가장 적은 변화를 갖는 데이터에 따라 가장 작은 축의 값을 연산시킨다. 고유값과 고유벡터를 정확하게 찾는것은 일반적으로 중요하다. 일반적으로 그들은 수치적 기술로 발견된다. 명확하게 공분산 행렬은 대칭이다. 그결과, 그것은 실수의 고윳값과 직교의 고유벡터로 분해된다. 대칭행렬에서, 간단분해법이 사용된다.

  일반적 크기의 행렬에서 여기처럼 자코비 방법이 잘 작동된다. 자코비 방법의 복잡한 세부사항은 이책의 범위를 넘어선다. 간단히, 이 알고리즘은 주어진 행렬에서 변형단계에서 진행된다. 각각의 단계는 회전행렬의 적용, 행렬을 가까이 가져가기와 대각행렬에 가까이 가는 것으로 구성된다. 대각행렬일때, 대각값은 고유값이다. 이것이 성공하면, 모든 회전은 다른행렬에서 집중된다. 끝나면, 이 행렬은 고유벡터를 갖는다. 이상적으로, 이 분해는 수치적 오류를 최소화하기 위해 double로 계산된다. 다음 코드는 [golub96]표현식이다.  (코드)

  3X3 행렬이 쓰이며, 간단한 큐빅공식에서 자코비방법은 직접 계산된다. 고유벡터는 가우시안제거에서 쉽게 찾을수 있다. [cronuell94]에 설명되었다. 

  이전에 정의된 함수에서, 2개의 가장 떨어진 점으로부터 구계산은 다음과 같다. (코드)

  여기서 된 공분산 타입분석은 차원감소와 데이터의통계적분석에서 사용되고, 이는 PCA로 알려진다. 고유벡터는 경계상자에 근본을 두고, 4.4.3와 같다.

반응형

'컴퓨터 공학' 카테고리의 다른 글

차이가 반드시 좋은건 아니다  (0) 2015.11.26
4.1 BV의 특징  (0) 2015.11.26
4.3.2 경계 구 계산  (0) 2015.11.26
4.3.1 구-구 교차  (0) 2015.11.26
4.3 구  (0) 2015.11.26