sympy 替换所有分配的变量
sympy substitute all assigned variables
我声明一个变量,使用该变量定义一个表达式
from sympy import *
x = symbols ('x')
f = 2 * x
然后然后给变量赋值
x = 42
如何用当前值替换表达式中的变量?出于显而易见的原因
f.subs (x, x)
不起作用。我知道我可以使用不同的变量
xx = 42
f.subs (x, xx)
但是...
没有人喜欢与他们的新女友的前任进行比较,但在 Matlab 中,您可以简单地编写 subs (f)
,这相当于没有任何参数的 SymPy 的 f.subs ()
,以替换所有中间分配的变量.
以上,
>>> f = x**2
>>> x = 42
>>> def update(e):
... d = globals()
... return e.xreplace({x: eval(x.name, d) for x in e.free_symbols})
>>> Eq(f, update(f))
x**2 = 1764
我声明一个变量,使用该变量定义一个表达式
from sympy import *
x = symbols ('x')
f = 2 * x
然后然后给变量赋值
x = 42
如何用当前值替换表达式中的变量?出于显而易见的原因
f.subs (x, x)
不起作用。我知道我可以使用不同的变量
xx = 42
f.subs (x, xx)
但是...
没有人喜欢与他们的新女友的前任进行比较,但在 Matlab 中,您可以简单地编写 subs (f)
,这相当于没有任何参数的 SymPy 的 f.subs ()
,以替换所有中间分配的变量.
以上,
>>> f = x**2
>>> x = 42
>>> def update(e):
... d = globals()
... return e.xreplace({x: eval(x.name, d) for x in e.free_symbols})
>>> Eq(f, update(f))
x**2 = 1764