Hipparchus-Math / hipparchus

An efficient, general-purpose mathematics components library in the Java programming language
Apache License 2.0
142 stars 41 forks source link

[Feature] Map Inversion of Taylor Series #190

Closed MaximeJo closed 2 years ago

MaximeJo commented 2 years ago

Hi all,

As Hipparchus has Taylor expansion capacities embedded in the DerivativeStructure class, it would be nice to be able to invert the Taylor expansion and do what it is often called a Taylor map inversion or polynomial partial inversion.

An example of usage in Orekit (which depends on Hipparchus) would be:

Here's a link to a mathematical method used in another library.

Serrof commented 2 years ago

Hi Maxime,

I strongly support the addition of this feature. This algorithm can be found in the Chapter 2 of Modern Map Methods in Particle Beam Physics by Martin Berz (Academic Press 1999). Also, be careful with notations: one can only invert a square map (as many functions than variables in the Taylor algebra), but trivial components can be added for that purpose. A univariate (in that case, this is also called series reversion) example in astrodynamics is Kepler's equation (see https://darioizzo.github.io/audi/notebooks/map_inversion.html).

Serrof commented 2 years ago

There are many ways to validate the implementation of this, for instance:

Luc if you have any interrogations on the process described in Maxime's reference, don't hesitate to ask me. But I reckon that it is rather straightforward compared to more complicated things you handled fine before!