2012-01-04 2 views
4

여기에 내가하고 싶은 것이있다. (바람직하게는 Matlab과 함께) :2 차원 곡선 근사치

기본적으로 나는 교차로에서 주행하는 자동차의 흔적이 몇 개있다. 각각은 시끄 럽기 때문에 모든 측정에 대해 평균을 취하여 실제 경로를보다 정확하게 추정하려고합니다. 다른 말로하면, (가장 작은 사각형의 의미에서) 모든 meassured 트레이스에 가장 작은 distence를 갖는 Curve를 근사화하는 방법을 찾고 있습니다. 언뜻에서

,이 (섹션 최소 자승 근사 here 좋은 예) CurveFitting 도구 상자의 spap2을 달성 할 수있는 매우 유사하다. 그러나이 알고리즘은 몇 가지 큰 단점이 있습니다. 함수가 (모든 x에 대해 정확히 하나의 y (x)를 가짐) 가정합니다. 그러나 원하는 것은 2d의 곡선입니다 (하나의 x에 대해 여러 개의 y (x)가있을 수 있음). 자동차가 90도 이상 우회전하거나 좌회전하는 경우 문제가 발생합니다. 더하기 수직 오프셋을 취하지 않으며 ( wolfram의 정의에 따라) 수직 오프셋을 취하지 않습니다.

아무도이 문제를 해결하는 방법을 알고 있습니까? 필자는 B-Spline을 사용하여 매듭의 수와 정도를 특정 피팅 품질에 도달 할 때까지 변경하려고했지만이 문제를 분석적으로 또는 CurveFitting Toolbox에서 제공하는 함수로 해결할 수있는 방법을 찾을 수 없습니다. 수치 최적화없이 이것을 해결할 수있는 방법이 있습니까?

+2

각 경로를 시간의 함수로 만들 수 있습니까? 각 시간 값에 대해 자동차는 하나의 (x, y) 좌표 만 갖습니다. – mbeckish

+2

이것은 모든 자동차가 다른 속도로 움직이는 문제를 야기합니다. 교차점 앞의 특정 지점에서 t = 0으로 설정하면 한 자동차가 선회 엔진을 이미 마친 상태이며 다른 차량 (주의 깊은 차량)은 동일한 시간이 경과하지 않은 상태 일 수 있습니다. 결과적으로, 동시에 두 차량의 (x, y)의 평균은 측정 된 흔적에 대해 (x-y- 평면에서) 가장 작은 거리를 갖는 곡선으로 이어지지 않습니다. – ILikeCars

+1

다른 차의 경로를 평균하는 대신 차라리 고주파 노이즈를 필터링하여 매끄럽게 만들 수있었습니다. – mbeckish

답변

0

mbeckish가 맞습니다. 곡선 모양에서 충분한 유연성을 얻으려면 명시 적 표현 y (x) 대신 매개 변수 곡선 표현 (x (t), y (t))을 사용해야합니다. Parametric equation을 참조하십시오.

커브의 n 연속 점을 알고있는 경우 실제 시간을 할당하거나 그렇지 않은 경우 0..n-1 정수로 지정하십시오. 그런 다음, X, Y 대신 벡터 T, X, T, Y를 사용하여 spap2를 두 번 호출하십시오. 이제 임의의 t에 대해 곡선의 점 (x, y)을 얻습니다.

진정한 최소 제곱 솔루션을 제공하지는 않지만 사용자의 요구에 충분히 부합해야합니다.

+0

이것은 모든 경로 i와 시간 t_0에 대해 서로 다른 경로 (x_i (t_0), y_i (t_0))가 서로 가깝다고 가정하기 때문에 모든 자동차가 동일한 속도로 이동하고 있음을 의미합니다. 나는 경로를 다시 매개 변수화 할 수있는 평균화 방법이 필요하다고 생각합니다. –