【发布时间】:2017-02-26 18:18:44
【问题描述】:
我不明白为什么当我将符号设置为真实diff() 时似乎认为它是一个常数:
>>> t = sympify("x^2")
>>> x = Symbol('x')
>>> diff(t,x)
2*x
>>> x1=Symbol('x',real=True)
>>> diff(t,x1)
0
【问题讨论】:
我不明白为什么当我将符号设置为真实diff() 时似乎认为它是一个常数:
>>> t = sympify("x^2")
>>> x = Symbol('x')
>>> diff(t,x)
2*x
>>> x1=Symbol('x',real=True)
>>> diff(t,x1)
0
【问题讨论】:
问题在于t 中的变量x 和x1 中的变量不 被认为是相同的,因为x1 的“真实”属性。因此,在微分中,x1 变量被视为常数,产生0。
如果您打算使用实变量来解决此问题,您可以使用实变量 x 定义您的表达式。
>>> x = Symbol('x', real=True)
>>> t = sympify('x^2', locals={'x': x})
>>> diff(t, x)
2*x
除了使用 locals 关键字参数传递显式字典之外,您还可以使用 locals=locals() 调用 locals() 以将所有整个本地符号表作为字典拉入,如果您有很多,这可能会很有用符号变量。
【讨论】: