【问题标题】:Sympy diff() gives wrong result whenever i set symbol to real每当我将符号设置为真实时,Sympy diff() 都会给出错误的结果
【发布时间】: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

【问题讨论】:

    标签: python sympy


    【解决方案1】:

    问题在于t 中的变量xx1 中的变量 被认为是相同的,因为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() 以将所有整个本地符号表作为字典拉入,如果您有很多,这可能会很有用符号变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多