Search code examples
pythonsympysubstitutionsymbolic-math

Sympy is not doing the substitution of a symbol with a value when it has a specified assumption


I'm using the subs method to replace certain parameters in an expression with values prior to solving the equation.

The following simple example works fine:

from sympy import Symbol

Q = Symbol("Q")
exp1 = Q + 1
print(exp1.subs({'Q': 1}))  # prints 2

However, if the symbol has an assumption such as real or positive specified this does not work:

Q = Symbol("Q", positive=True)
exp1 = Q + 1
print(exp1.subs({'Q': 1}))  # prints Q + 1

Why is this and what am I doing wrong?


Solution

  • Don't use a string key.

    print(exp1.subs({Q: 1}))