Je tente de créer une expression symbolique en sommant des indices dans un tenseur. Pour une matrice/tenseur 2D c'est assez simple:Summation sur indices de symarray
from sympy import *
Q = MatrixSymbol('Q', 2,2)
i,j = symbols('i j')
summation(summation(Q[i,j],(i,0,2)),(j,0,2))
Lorsque je tente de regarder un tenseur du quatrième ordre que je suis en cours d'exécution sur les questions. Voici ma tentative:
from sympy import *
Q = MatrixSymbol('Q', 2,2)
C = symarray('C', (2,2,2,2))
i,j,k,l = symbols('i j k l')
summation(summation(summation(summation(Q[i,j]*C[i,j,k,l],(i,0,2)),(j,0,2)),(k,0,2)),(l,0,2))
Toute aide serait grandement appréciée.
Merci pour votre aide et corrections. Malheureusement, j'ai encore quelques problèmes. J'utilise python 3 que j'aurais probablement dû mentionner. Il semble que Array n'est plus un attribut de tensoriel; cependant, il existe un paquet de tableau dans le tenseur. J'ai importé ce paquet puis j'ai utilisé Array (C) comme vous l'avez suggéré. Le reste du code est identique au vôtre. Je reçois toujours une erreur cependant: "ne peut pas déterminer la valeur de vérité de relationnel". Je devrais mentionner que j'ai également essayé la commande NDimArray dans le paquet de tableau. – John
J'ai fini par utiliser symarray et définir manuellement la somme des boucles. Éviter la commande de sommation semblait faire l'affaire. Merci encore pour votre aide. – John