我将符号设置为实数时,Sympy diff()给出错误的结果

我不明白为什么在将符号设置为实数diff()时似乎将其视为常量:

>>> t = sympify("x^2")
>>> x = Symbol('x')
>>> diff(t,x)
2*x
>>> x1=Symbol('x',real=True)
>>> diff(t,x1)
0

解决方法:

问题在于,由于x1的“实数”属性,t中的变量x和变量x1不被视为相同.因此,在微分中,将x1变量视为常数,得出0.

要解决此问题(如果您打算使用实变量),可以使用实变量x定义表达式.

>>> x = Symbol('x', real=True)
>>> t = sympify('x^2', locals={'x': x})
>>> diff(t, x)
2*x

除了传递带有locals关键字参数的显式dict之外,您还可以仅通过locals = locals()调用locals()来提取整个本地符号表作为dict,如果您有许多Symbol变量,这可能很有用.

上一篇:windows环境下的NumPy 安装


下一篇:python-(某些功能)未使用SymPy Lambdify定义