2010-07-17 7 views
5

para ecuaciones predefinidas, la asignación de nuevos valores a las variables no cambia el valor de la ecuación. Cómo puedo asignar nuevos valores a las variables de modo que voy a obtener el valor apropiado de ecuación y no la anteriorcómo asignar nuevos valores a las variables en una ecuación predefinida?

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

discusión de su problema: http: //docs.sympy.org/gotchas.html#variables-assignment-does-not-create-a-relation-between-expressions –

+0

@PreludeAndFugue: el enlace ahora está roto. ¿Tiene alguna referencia nueva, tal vez? – Bach

+0

Enlace actualizado: http://docs.sympy.org/latest/gotchas.html#variables-assignment-does-not-create-a-relation-between-expressions –

Respuesta

5

Quizás utilizar substitution en lugar de la igualdad:

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

obteniendo esto TypeError: el objeto 'instancemethod' no es subscripible – user394706

+2

El código anterior funciona bien en mi extremo: sympy 0.6.5, python 2.5 – ars

+0

gracias! no estaba funcionando debido a mi error de sintaxis – user394706

Cuestiones relacionadas