Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » sci.math.* » sci.math.num-analysis.independent

Topic: Radius algorithm
Replies: 1   Last Post: Dec 8, 1996 4:26 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View  
Karine Lecarpentier

Posts: 1
Registered: 12/15/04
Re: Radius algorithm
Posted: Dec 8, 1996 4:26 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

> In article <329CB599.62CD@worldnet.att.net>,
> Marcus <SCI.@worldnet.att.net> says:
>I have a number of x,y data points that form an arc of constant radius.
> Do you know a good technique for finding the center and radius of the arc?
>I've tried the following, but I'm not sure of it's reliability:
>take first data point, find line running through point but also tangent
>to the arc, take second data point and find line tangent again.
>Normalize both lines and find the intersection. This will give me the
>center, from here the radius is easy.
>
>Do you have any suggestions?
>Thanks, Marc



As some previous persons sugested, you shoud use an optimization method.

If C is your center, and M(i), the points of your trajectory,then
your radius is :

R = 1/N *sum_{i=1}^N {||M(i) - C ||},

You can find C by minimizing

m = sum_{k=1}^N {||M(k) - c|| - R}^2
= sum_{k=1}^N {||M(k) - c|| -
1/N *sum_{i=1}^N {||M(i) - C ||}^2


Or, if you are sure that your curve is a circle, you can use a linear
algorithm by setting :

R = sqrt (1/N * sum_{i=1}^N {||OM(i) - OC ||^2})
= sqrt (1/N * sum_{i=1}^N {|OM(i)|^2 - 2 t(OM(i)).OC + |OC|^2})

You want to minimize :

m = sum_{k=1}^N {||OM(k) - OC||^2 - R^2}^2
= sum_{k=1}^N { |OM(k)|^2 - 1/N*sum_{i=1}^N |OM(i)|^2 -
2*t(OM(k)-1/N*sum{i=1}^N OM(i)).OC}^2

You get then an easy to solve linear least squares paroblem where your
unknown is OC.

If you derive this expression with respect to OC, and set the derivation
to 0, you will get a simple equation A.OC = b, where A is a 2*2 matrix,
and b is a 2*1 vector.

I hope this helps. Feel free to contact me for more details.


Karine


----
Karine Lecarpentier, M.A.Sc student
UBC, Dept. of Electrical Engineering e-mail: karinel@ee.ubc.ca
2356 Main Mall phone: (604) 822-0532
Vancouver, B.C fax: (604) 822-5949
V6T 1Z4 Canada





Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.