Expressions and Substitutions
Expressions and Substitutions
Symbolic math variables can be combined into symbolic math expressions. Once in an expression, symbolic math variables can be exchanged with substituion.
Expressions
A symbolic math expression is a combination of symbolic math variables with numbers and mathematical operators such as +
, -
, /
and *
. The standard Python rules for calculating numbers apply in SymPy symbolic math expressions.
After the symbols x
and y
are created, a symbolic math expression using x
and y
can be defined.
from sympy import symbols
x, y = symbols('x y')
expr = 2*x + y
Substitution
Use SymPy's .subs()
method to insert a numerical value into a symbolic math expression. The first argument of the .subs()
method is the mathematical symbol and the second argument is the numerical value. In the expression below:
If we substitute:
The resulting expression is:
We can code the substitution above using SymPy's .subs()
method as shown below.
expr.subs(x, 2)
.subs()
method does not replace variables in place, .subs()
only completes a one-time substitution. If expr
is called after the .subs()
method is applied, the original expr
expression is returned.
expr
.subs()
method.
expr = 2*x + y
expr2 = expr.subs(x, 2)
expr2
x, y, z = symbols('x y z')
expr = 2*x + y
expr2 = expr.subs(x, z)
expr2
substitute in
results in
x, y, z = symbols('x y z')
expr = y + 2*x**2 + z**(-3)
expr2 = expr.subs(y, 2*x)
expr2
A practical example involving symbolic math variables, expressions and substitutions can include a complex expression and several replacements.
We can create four symbolic math variables and combine the variables into an expression with the code below.
from sympy import symbols, exp
n0, Qv, R, T = symbols('n0 Qv R T')
expr = n0exp(-Qv/(RT))
subs()
methods can be chained together to substitute multiple variables in one line of code.
expr.subs(n0, 3.48e-6).subs(Qv,12700).subs(R, 8031).subs(T, 1000+273)
.evalf()
method.
expr2 = expr.subs(n0, 3.48e-6).subs(Qv,12700).subs(R, 8031).subs(T, 1000+273)
expr2.evalf()
.evalf()
method outputs by passing a number as an argument.
expr2.evalf(4)
Summary
The SymPy functions and methods used in this section are summarized in the table below.
SymPy function or method | Description | Example |
---|---|---|
symbols() |
create symbolic math variables | x, y = symbols('x y') |
.subs() |
substitute a value into a symbolic math expression | expr.subs(x,2) |
.evalf() |
evaluate a symbolic math expression as a floating point number | expr.evalf() |