필터 지우기
필터 지우기

Least squares adjustment of two positions with distance constraint

조회 수: 1 (최근 30일)
Brad
Brad 2012년 12월 17일
Hi All,
I'm struggling with finding a solution to an adjustment I'm working on. Thought someone else may have some thoughts?
I have a kinematic time series of X,Y positions for two points (X1,Y1,X2,Y2). I know that the two points were a distance D (e.g., 100 m) apart from each other (the constraint).
I'm attempting to find a solution that finds a best fit to X1,Y1 and to X2,Y2 based on the constraint that the distance between them is D. The path formed by the points is not linear -- I'm starting with a quadratic model.
In coming up with observation equations, my initial thought was something like:
X1(t) = At^2+Bt+C
Y1(t) = Dt^2+Et+F
X2(t) = Gt^2+Ht+I
Y2(t) = Jt^2+Jt+L
Then:
sqrt((X1-X2)^2+(Y1-Y2)^2) = 100
So this leaves me with 12 parameters. I have ample observations to solve this.
Does it appear that I'm on the right track?
I'm not sure what the best method is to proceed from here using matlab. Any suggestions?
Thanks in advance for any help, Brad

답변 (2개)

Matt J
Matt J 2012년 12월 17일
편집: Matt J 2012년 12월 17일
This looks applicable
This gives a closed-form solution, which should be fine for problems as small as 12 unknowns.
For large version of the problem, if you have the Optimization Toolbox, you could use FMINCON, but you need to express the constraints in terms of differentiable functions
(X1-X2)^2+(Y1-Y2)^2 - 100^2 = 0

John Petersen
John Petersen 2012년 12월 17일
Once you add the constraint, the LS solution becomes much more difficult. However, there are also a number of approaches, such as linear programming, simplex algorithms, interior point algorithms, recursive LS, constrained LS. If don't want to program your own, the optimization toolbox is a good place to start.
  댓글 수: 1
Matt J
Matt J 2012년 12월 17일
Actually, it's not that bad. The link I provided in my answer implements a closed-form solution.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by