Différentiation automatique formelle native

La différentiation automatique dans Navpactos est native. En effet, Navpactos propose:

  • une formulation des calculs de nouvelle génération: elle est tensorielle, à valeurs multiples, indexable pour des boucles, connaisseuse des éléments finis, des matrices creuses et des tableaux de paramètres.
  • un calculateur virtuel, capable de calculer des formules ensemble par construction d’une chaîne interne optimisée que l’utilisateur pourra appeler à sa guise.

La dérivation ne sort pas de ce cadre: elle est bien native.

Pour l’utilisateur, elle consiste à demander la formule dérivée par rapport à une variable physique muette ou primaire, ou bien par rapport à un tableau de paramètres, la formule résultante contenant alors la dérivée par rapport à l’ensemble des paramètres du tableau. Comme il s’agit encore d’une formule, on la calcule pareillement. Il est ainsi possible de calculer ensemble valeur et dérivées.

Quand on programme avec Navpactos, la dérivation vient donc s’ajouter très naturellement dans le même code.

Quelques exemples

  1. Les conditions d’optimalité d’Euler-Lagrange, jacobien issu de la dérivation d’un lagrangien, peuvent elles-mêmes être dérivées pour donner le vrai hessien.
  2. Concernant les assemblages issus des éléments finis, une matrice élémentaire est souvent la dérivée d’un vecteur élémentaire par rapport aux degrés de liberté sur l’élément. Mais si l’on dérive par rapport à tous les degrés de liberté, on a a priori une matrice creuse répétant le motif du vecteur colonne élémentaire sur ses colonnes, dont l’analyse des dépendances réelles par Navpactos saisira la matrice élémentaire sous-jacente.