我不明白为什么当我将符号设置为实数时,diff()
似乎将其视为常数:
>>> t = sympify("x^2")
>>> x = Symbol('x')
>>> diff(t,x)
2*x
>>> x1=Symbol('x',real=True)
>>> diff(t,x1)
0
x
在 t
中和变量 x1
并非相同,这是由于 x1
的 "real" 属性导致的。因此,在微分中,x1
变量被视为常数,从而得出 0
。x
定义您的表达式以解决此问题。>>> x = Symbol('x', real=True)
>>> t = sympify('x^2', locals={'x': x})
>>> diff(t, x)
2*x
不必使用 locals
关键字参数显式地传递一个字典,你也可以直接调用 locals()
并使用 locals=locals()
将整个本地符号表作为字典引入,这在你有很多符号变量时可能会非常有用。
locals=locals()
以引入所有本地变量,包括x
。 - asmeurer