{"id":369,"date":"2022-04-11T16:12:20","date_gmt":"2022-04-11T14:12:20","guid":{"rendered":"https:\/\/naupacte.com\/?page_id=369"},"modified":"2022-04-12T09:59:43","modified_gmt":"2022-04-12T07:59:43","slug":"automatic-differentiation-and-computing","status":"publish","type":"page","link":"https:\/\/naupacte.com\/index.php\/tensor-algebra-embedded-language-for-numerical-simulation\/automatic-differentiation-and-computing\/","title":{"rendered":"Diff\u00e9rentiation automatique formelle native"},"content":{"rendered":"\n<p>La <a href=\"https:\/\/naupacte.com\/index.php\/2022\/04\/12\/quest-ce-que-la-differentiation-automatique\/\">diff\u00e9rentiation automatique<\/a> dans Navpactos est native. En effet, Navpactos propose:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>une formulation des calculs de nouvelle g\u00e9n\u00e9ration: elle est tensorielle, \u00e0 valeurs multiples, indexable pour des boucles, connaisseuse des \u00e9l\u00e9ments finis, des matrices creuses et des tableaux de param\u00e8tres.<\/li><li>un calculateur virtuel, capable de calculer des formules ensemble par construction d&#8217;une cha\u00eene interne optimis\u00e9e que l&#8217;utilisateur pourra appeler \u00e0 sa guise.<\/li><\/ul>\n\n\n\n<p>La d\u00e9rivation ne sort pas de ce cadre: elle est bien native.<\/p>\n\n\n\n<p id=\"automatic-differentiation\">Pour l&#8217;utilisateur, elle consiste \u00e0 demander la formule d\u00e9riv\u00e9e par rapport \u00e0 une variable physique muette ou primaire, ou bien par rapport \u00e0 un tableau de param\u00e8tres, la formule r\u00e9sultante contenant alors la d\u00e9riv\u00e9e par rapport \u00e0 l&#8217;ensemble des param\u00e8tres du tableau. Comme il s&#8217;agit encore d&#8217;une formule, on la calcule pareillement. Il est ainsi possible de calculer ensemble valeur et d\u00e9riv\u00e9es.<\/p>\n\n\n\n<p>Quand on programme avec Navpactos, la d\u00e9rivation vient donc s&#8217;ajouter tr\u00e8s naturellement dans le m\u00eame code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quelques exemples<\/h2>\n\n\n\n<ol class=\"wp-block-list\"><li>Les conditions d&#8217;optimalit\u00e9 d&#8217;Euler-Lagrange, jacobien issu de la d\u00e9rivation d&#8217;un lagrangien, peuvent elles-m\u00eames \u00eatre d\u00e9riv\u00e9es pour donner le vrai hessien.<\/li><li>Concernant les assemblages issus des \u00e9l\u00e9ments finis, une matrice \u00e9l\u00e9mentaire  est souvent la d\u00e9riv\u00e9e d&#8217;un vecteur \u00e9l\u00e9mentaire par rapport aux degr\u00e9s de libert\u00e9 sur l&#8217;\u00e9l\u00e9ment. Mais si l&#8217;on d\u00e9rive par rapport \u00e0 tous les degr\u00e9s de libert\u00e9, on a a priori une matrice creuse r\u00e9p\u00e9tant le motif du vecteur colonne \u00e9l\u00e9mentaire sur ses colonnes, dont l&#8217;analyse des d\u00e9pendances r\u00e9elles par Navpactos saisira la matrice \u00e9l\u00e9mentaire sous-jacente.<\/li><\/ol>\n","protected":false},"excerpt":{"rendered":"<p>La diff\u00e9rentiation automatique dans Navpactos est native. En effet, Navpactos propose: une formulation des calculs de nouvelle g\u00e9n\u00e9ration: elle est tensorielle, \u00e0 valeurs multiples, indexable pour des boucles, connaisseuse des \u00e9l\u00e9ments finis, des matrices creuses et des tableaux de param\u00e8tres. un calculateur virtuel, capable de calculer des formules ensemble par construction d&#8217;une cha\u00eene interne optimis\u00e9e que l&#8217;utilisateur pourra appeler \u00e0 sa guise. La d\u00e9rivation ne sort pas de ce cadre: elle est bien native. Pour l&#8217;utilisateur, elle consiste \u00e0 demander la formule d\u00e9riv\u00e9e par rapport \u00e0 une variable physique muette ou primaire, ou bien par rapport \u00e0 un tableau de param\u00e8tres, la formule r\u00e9sultante contenant alors la d\u00e9riv\u00e9e par rapport \u00e0 l&#8217;ensemble des param\u00e8tres du tableau. Comme il s&#8217;agit encore d&#8217;une formule, on la calcule pareillement. Il est ainsi possible de calculer ensemble valeur et d\u00e9riv\u00e9es. Quand on programme avec Navpactos, la d\u00e9rivation vient donc s&#8217;ajouter tr\u00e8s naturellement dans le m\u00eame code. Quelques exemples Les conditions d&#8217;optimalit\u00e9 d&#8217;Euler-Lagrange, jacobien issu de la d\u00e9rivation d&#8217;un lagrangien, peuvent elles-m\u00eames \u00eatre d\u00e9riv\u00e9es pour donner le vrai hessien. Concernant les assemblages issus des \u00e9l\u00e9ments finis, une matrice \u00e9l\u00e9mentaire est souvent la d\u00e9riv\u00e9e d&#8217;un vecteur \u00e9l\u00e9mentaire par rapport aux degr\u00e9s de libert\u00e9 sur l&#8217;\u00e9l\u00e9ment. Mais si l&#8217;on d\u00e9rive par rapport \u00e0 tous les degr\u00e9s de libert\u00e9, on a a priori une matrice creuse r\u00e9p\u00e9tant le motif du vecteur colonne \u00e9l\u00e9mentaire sur ses colonnes, dont l&#8217;analyse des d\u00e9pendances r\u00e9elles par Navpactos saisira la matrice \u00e9l\u00e9mentaire sous-jacente.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":92,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-369","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/naupacte.com\/index.php\/wp-json\/wp\/v2\/pages\/369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naupacte.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/naupacte.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/naupacte.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naupacte.com\/index.php\/wp-json\/wp\/v2\/comments?post=369"}],"version-history":[{"count":8,"href":"https:\/\/naupacte.com\/index.php\/wp-json\/wp\/v2\/pages\/369\/revisions"}],"predecessor-version":[{"id":412,"href":"https:\/\/naupacte.com\/index.php\/wp-json\/wp\/v2\/pages\/369\/revisions\/412"}],"up":[{"embeddable":true,"href":"https:\/\/naupacte.com\/index.php\/wp-json\/wp\/v2\/pages\/92"}],"wp:attachment":[{"href":"https:\/\/naupacte.com\/index.php\/wp-json\/wp\/v2\/media?parent=369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}