2010-07-17 17 views
5

pour les équations prédéfinies, l'attribution de nouvelles valeurs aux variables ne modifie pas la valeur de l'équation. comment puis-je attribuer de nouvelles valeurs aux variables afin que j'obtenir la valeur appropriée de l'équation et non la précédentecomment affecter de nouvelles valeurs à des variables dans une équation prédéfinie?

a,b,c,d,e,f=sympy.symbols('abcdef') 
a,b=c,d 

e=a+b #equation 
print e 
c+d #value of eqn 
a,b=d,f 
print e 
c+d #not d+f 
+1

Discussion de votre problème: http: //docs.sympy.org/gotchas.html#variables-assignment-does-not-create-a-relation-between-expressions –

+0

@PreludeAndFugue: le lien est maintenant rompu. Avez-vous une nouvelle référence, peut-être? – Bach

+0

Lien mis à jour: http://docs.sympy.org/latest/gotchas.html#variables-assignment-does-not-create-a-relation-between-expressions –

Répondre

5

Peut-être utiliser substitution au lieu de l'égalité:

import sympy 
a,b,c,d,e,f=sympy.symbols('abcdef') 
e=a+b #equation 
print e.subs([(a,c),(b,d)]) 
# c + d 
print e.subs([(a,d),(b,f)]) 
# d + f 
+0

Obtention de ce code TypeError: l'objet 'instancemethod' n'est pas indicable – user394706

+2

Le code ci-dessus fonctionne très bien de ma part: sympy 0.6.5, python 2.5 – ars

+0

thanx! ça ne fonctionnait pas à cause de mon erreur de syntaxe – user394706