Path: csiph.com!news.mixmin.net!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Ben Bacarisse Newsgroups: comp.programming Subject: Re: Another little puzzle Date: Sun, 08 Jan 2023 20:41:19 +0000 Organization: A noiseless patient Spider Lines: 71 Message-ID: <877cxwwyhc.fsf@bsb.me.uk> References: <87tu1diu2s.fsf@bsb.me.uk> <864jtdtkt5.fsf@linuxsc.com> <87o7rlhtsv.fsf@bsb.me.uk> <878rioifnh.fsf@bsb.me.uk> <868rinskhk.fsf@linuxsc.com> <868ridni7g.fsf@linuxsc.com> MIME-Version: 1.0 Content-Type: text/plain Injection-Info: reader01.eternal-september.org; posting-host="dc4bdde2c7b818e72ded116daac42e58"; logging-data="4137979"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/31lZ8JisQ+DekySrQL2fSnDgWq4Y6RHc=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) Cancel-Lock: sha1:TyZ5NwHzdaBO/0N1cpO9URFWQdg= sha1:UCpWmkdmI8NVTg3dhn04ay88vyE= X-BSB-Auth: 1.aa306dd44ff326c2ae46.20230108204119GMT.877cxwwyhc.fsf@bsb.me.uk Xref: csiph.com comp.programming:16272 "Dmitry A. Kazakov" writes: > On 2023-01-08 16:45, Tim Rentsch wrote: >> "Dmitry A. Kazakov" writes: > >>> Averaging arcs is equivalent to averaging angles. >> Angles are a one-dimensional measure. > > Averaging arcs is still equivalent to averaging angles, which is trivial result of elementary trigonometry. > >> Finding an arc length >> "average" of points on a sphere needs a two-dimensional result. > > Points do not have arcs. > >>>> Now that I think about it, finding the point that minimizes the >>>> great circle distances squared would be at least computationally >>>> unpleasant. >>> >>> See above, it is just angles to average. >> Apparently you have not yet understood the problem. > > Again, averages of arcs and angles are equivalent up to a multiplier. > >> Why don't >> you try writing a program that inputs a set of points normalized >> to be on the unit sphere, and then calculates the arc length >> average point (on the unit sphere) of those input points? > > Why don't you write a formula specifying your need? You seemed to understand the need sufficiently to dismiss the problem: "averaging angles, which is trivial", "it is just angles to average" and "averages of arcs and angles are equivalent up to a multiplier". But the problem is /finding/ a specific average -- the point (or angle) that minimises the sum of squares of the distances (or angles) from that average point (or angle). The fact that it makes no odds (as everyone knows) whether we consider angles (often called central angles in this context) or great circle distances is not the issue. It's finding the average that minimises the sum of squares of differences that's the issue. You say you need a formula, so I'll try... Let P_n be a collection of n unit vectors specifying n points on a unit sphere. Find the unit vector A that minimises Sum_{i=1,n} ( arctan( |A x P_n| / A . P_n ) )^2 (arctan is the "all quadrant" version that is often called atan2 in programming languages.) > Programs are written according to the specifications. Numeric programs > require a properly stated problem, rather than a bunch of words > arbitrarily thrown in a meaningless sentence as above. Given the context, I think that's a very biased characterisation of what's been said here. My first job was as a "numerical analyst", and the very first program I was employed to write was for a professor of statistics. It was to calculate a novel kind of fit line. The specification was just a few sentences. No formulas. It was perfectly clear, and I could get the job done. I don't think this is unusual. Words are often enough, and they can avoid undue over specification. For example, the problem in question is essentially the same if the points are given by latitude and longitude on a non-unit sphere, but the formula would look very different. -- Ben.