2010-07-17 36 views
5

cho phương trình được xác định trước, gán giá trị mới cho biến không làm thay đổi giá trị của phương trình. làm thế nào tôi có thể gán giá trị mới cho các biến để tôi sẽ nhận được giá trị thích hợp của phương trình và không phải là trước mộtcách gán giá trị mới cho biến trong phương trình được xác định trước?

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

Thảo luận về vấn đề của bạn: http: //docs.sympy.org/gotchas.html#variables-assignment-does-not-create-a-relation-between-expressions –

+0

@PreludeAndFugue: liên kết đã bị hỏng. Bạn có bất kỳ tài liệu tham khảo mới, có lẽ? – Bach

+0

Cập nhật liên kết: http://docs.sympy.org/latest/gotchas.html#variables-assignment-does-not-create-a-relation-between-expressions –

Trả lời

5

Có lẽ sử dụng substitution thay vì bình đẳng:

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

nhận được điều này LoạiError: đối tượng 'instancemethod' không thể ghi – user394706

+2

Đoạn mã trên hoạt động tốt trên đầu của tôi: sympy 0.6.5, python 2.5 – ars

+0

thanx! nó không hoạt động do lỗi cú pháp của tôi – user394706

Các vấn đề liên quan