Le 09/10/2011 16:51, Phil Steitz a écrit :
For the acon US talk I am giving, I would like to provide some
potential practical examples of how [nabla] might be used in
applications.  So far, I have come up with some direct uses of
analytic derivatives in things like splines and projections.  I
suspect there are quite a few numerical or optimization use cases
where having an exact derivative could improve speed or accuracy.  I
would like to refer to some of those.  Its OK if the needed
machinery does not exist yet in [nabla] - these are motivational
examples.

Here are the original example that lead me to start everything.

One of the classical process used in operational space flight dynamics is orbit determination. Spacecraft orbits are not perfectly known due to launcher errors, maneuvers errors and measurements errors. Error grows from these initial errors due to the dynamics of the trajectory, so after some time it becomes necessary to perform some measurements (distances, angles, Doppler from some refence points like known ground stations). Then we try to compute the orbit that fits the best these measurements, taking into account many perturbing effects. This is basically least squares or Kalman filtering, where we adjust some state vector that evolves in time, using observation points and evolution models. We need Jacobians matrices in this process, the Jacobians associated with measurement at time ti with respect to initial orbit state at time t0 or with respect to some model parameters like atmospheric drag coefficients or thrusters efficiency. These models are very complex. They are split in many classes, many methods, many iterations so even if from a very high level we have for measurement m a function like m(ti) = f(o(t0), t0, ti), the f function is in fact several thousands lines of code from three different libraries.

Up to now, we had to compute the Jacobians by manual coding of the exact formulas. This is a maintenance nigthmare. As we try to use more and more complex force models for spacecraft dynamics, we have to compute their differentials too. It would be nice if we could just focus on the perturbation forces only and have some automatic engine that would perform the heavy duty differentiation for us. There is really no added value in the derivatives from a science or engineering point of view, so it is a perfect target for automation, so we concentrate the human efforts on something else: the perturbation forces by themselves.

This example (optimization and least squares) can also be reduced to one dimension only, so derivatives would also be useful in root solvers (but in fact, I know think solvers like the extended Nth order Brent I implemented are in fact more efficient than Newton despite they don't use derivatives).

Another example is sensitivity and error analysis. Having the derivatives almost for free (in engineering costs, not in computation costs) is a major advantage. Jacobians link an initial error to a final error and hene can be used to convert covariance matrices. They can also be used to set up convergence criterions in iterative processes or margins for robustness analysis.


Hope this helps
Luc


Thanks!

Phil

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to