Hi Sébastien, Le 12/08/2011 07:50, Sébastien Brisard a écrit :
As Patrick suggested, this approach should really be extended to multivariate functions. To cite but one example, I recently attended a conf where Pr. Prevost (Princeton) talked about non-linear finite elements calcs. The long standing approach had always been to implement the analytical expressions tangent stiffness (which is nothing but a jacobian matrix). He argued strongly against it for at least two reasons - it is error-prone, - most of the time, the expressions are so complex that their evaluation is just as time-consuming as a numerical derivative.
I don't fully agree with this. Both numerical and analytical approach are useful and have advantages and drawbacks.
The fact analytical approach is error-prone is true only when analytical differentiation is done manually. Using automatic differentiation completely removes this problem (take a look at Nabla).
The fact expression are has time consuming as numerical derivatives is simply false when speaking about multivariate functions. This result is known as the "cheap gradient" property. The relative computing effort for gradients or Jacobians using finite differences for an n variables function with respect to the basic function evaluation is roughly 2n. Using the automatic differentiation technique known as "reverse mode" (which is not implemented in Nabla but should be in the unknown future), this cost is about 4 and is *independent of n*, which is really an amazing result.
So, having some robust algorithms for multidimensional functions already implemented in CM would in my view be invaluable.
I agree with that. Luc
Sébastien --------------------------------------------------------------------- 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