Forums before death by AOL, social media and spammers... "We can't have nice things"
|    sci.physics.research    |    Current physics research. (Moderated)    |    17,516 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 16,452 of 17,516    |
|    rockbrentwood@gmail.com to Jonathan Thornburg    |
|    Re: how to find smallest-area ellipsoid     |
|    03 Apr 19 21:58:51    |
      On Sunday, March 31, 2019 at 11:51:47 PM UTC-5, Jonathan Thornburg wrote:       > I have a data-analysis problem, and I wonder if someone can suggest       > software to solve it.       >       > Summary:       > I have a number of points (typically 300 to 1000) in $R^2$. I'm looking       > for code (in any reasonable programming language) to find the smallest-area       > ellipsoid which encloses 95% of the points. The code doesn't need to be       > particularly efficient.              ALGLIB has a large number of algorithms in it for solving differential       equations, integration, linear and non-linear optimization, statistical       analysis, neural net algorithms, interpolation (featuring the extremely       efficient and precise interpolation by rational functions as well as       radial basis and inverse distance weighted interpolation and spline).              You can put together your own algorithm and implementation using the       resources at your disposal with the methods provided. To make the       problem on hand accessible to non-linear optimization, what you might do       is smear out the "inside of" function for a point so that it goes from 1       (when well inside an ellipse) to 0 (when well outside an ellipse)       smoothly. Then you can encode the problem as a constrained optimization       problem, ensuring that the total value of the membership function remain       at or above 0.95 x the number of points, while setting the optimization       to minimize the size of the ellipse.              Essentially, what this does is make the boundary of the ellipse       fuzzy. So, you have an adjustable "sharpness" parameter that is used to       define the "membership" function; and the sharper you set up the       problem, the more accurately it will reflect the 100% 0-1-only sharp       limit of the membership function (but the longer the convergence time       will take).              Warning, a proviso: ALGLIB is heavily front-loaded with infrastructure;       because it is actually C that "simulates" C++ (almost as if C++ had been       run through "cfront" or something) and that's in one namespace       (alglib_impl) and then wraps C++ on top of that (in another namespace:       alglib).              But it is fast, if you set it up right. Even the GPL version can run in       multiple cores in parallel, if you have the right compiler and right       compiler settings (GCC can compile to multi-core).              I'll be distributing a branch off the GPL version soon that tears down       much of this infrastructure. It, itself, is just an intermediate form of       a newer, yet to be completed/released, library I named after its       flagship project (the future robot named and modelled on a close       friend); on which several of the issues and/or bugs and/or design       inefficiencies in the library are addressed and resolved. I might post a       followup to on this later. It has a Makefile for "make test" that       contains the configuration I'm using.              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca