J'essaie d'évaluer une certaine expression en tenant compte de l'hypothèse. Plus précisément, mon problème est lié aux objets indexedBase.Sympy: Utilisation de "hypothèses" pour évaluer par morceaux, spécifiquement pour IndexedBase
Voir le code suivant:
from sympy import *
init_printing(use_latex="mathjax")
ntot = symbols("n_tot", integer = True)
i = Idx("i",(1,ntot))
k = Idx("k", (1,ntot))
j = Idx("j",(1,ntot))
x = IndexedBase("x")
À titre d'exemple, prenons la dérivée de deux sommations sur x [i].
expr = Sum(Sum(x[i],(i,1,ntot)),(k,1,ntot)).diff(x[j])
(NOTE: ce n'est pas possible dans la version actuelle sympy 1.0, il est possible avec la version de développement et sera disponible dans les prochaines sympy versions stables.)
Je veux évaluer la expression et obtenir une réponse piecewise:
print(expr.doit())
OUTPUT: n_tot*Piecewise((1, And(1 <= j, j <= n_tot)), (0, True))
donc mon problème est, comment puis-je dire sympy que je sais avec certitude que j est compris entre 1 et ntot. Alors que mon résultat est 1:
J'ai essayé les suivants, mais sans succès:
with assuming(j==2):
expr=Sum(Sum(x[i],(i,1,ntot)),(k,1,ntot)).diff(x[j]).doit()
Merci Francesco. Au moins je sais que ce n'est actuellement pas possible et peut continuer. THX. – Johannes