My numerical package is ready

Enjo

Mostly harmless
Addon Developer
Tutorial Publisher
Donator
Joined
Nov 25, 2007
Messages
1,658
Reaction score
5
Points
38
Location
Hildesheim, Germany
Website
www.enderspace.de
I've just completed a numerical package which consists of optimisation and root finding algorithms, which should be of use in some Orbiter projects or at some jobs.

For those who don't know, numerical optimisation is finding numerically a minimum of a function (say closest distance, time or fuel cost function), and returning argument where the minimum is achieved. OTOH root finding returns an argument for which the function value crosses 0, but in a computer program, it could be any value searched for (say - has the trajectory crossed the planet surface?).
Both cases apply, when the function in question is complex analytically, and can't be solved for x, nor derived (Real World TM).

The optimisation package consists of Bisection and Brent algorithms for univariate (one-dimensional) problems, as well as Nelder-Mead algorithm for multivariate (n-dimensional) problems. This you know already from the latest release of TransX.
The root finding package has just been blessed with the Brent algorithm, having the Bisection implemented already before, but now they are available under a common interface. Therefore they can be interchanged even at runtime.
The difference between the Bisection and Brent algos is that the latter are able to find the solution much faster. Makes sense for very complex functions.

Below are examples how you'd use the algos through their new interface:
TransX - optimisation
LaunchMFD - root finding

I'm not releasing the LaunchMFD's modifications as a dll, because they don't change much for the user. It's just that the Direct Ascent uses fewer iterations for the same precision. Unlike with TransX' optimisation case though, the DA's Bisection algo ran fast enough, since there's much less work to do.

Bear in mind however, that the Brent and Nelder-Mead algorithms have been LGPL licensed by mr John Burkardt and come from this site, although if you ask me, I'm not really sure if they can be licensed like this. The algos' authors would be the license issuers and they haven't done so. Going further, my library can be compiled as a dll and used without restrictions. Also, the Bisection algorithms (for both optimisation and root finding) are BSD licensed (more permissive).

The package is available under Math directory, at this address:
http://sf.net/p/enjomitchsorbit/codeHG/ci/default/tree/lib/
 
Top