【问题标题】:Evaluation of sympy.function containing a NumPy function评估包含 NumPy 函数的 sympy.function
【发布时间】:2015-04-29 10:36:41
【问题描述】:

我的问题是下面的代码没有评估函数f

class f(sympy.Function):
    @staticmethod
    def _imp_(x):
        return numpy.sin(x)  # shows f(0.1) 
        # return sympy.sin(x)  # shows 0.0998334166468282

print f(0.1)

当我在_imp_函数内使用numpy程序时。但是当我只使用 sympy 时效果很好。这里有什么问题?

【问题讨论】:

    标签: python numpy sympy


    【解决方案1】:

    没有错。

    精度取决于浮点数。

    勾选herehere,可以设置精度。

    【讨论】:

    • 嗯.. 我不需要更改浮点运算的精度。我只需要以数字方式评估函数的值。我希望print f(0.1) 显示数字结果,而不是符号。
    • @Maksim Surov:但是 sympy 会给你数值结果。它只是不像 python 那样“准确”。
    • sympy.sin 给出结果。但我的问题是为什么numpy.sin 没有给出结果。无论如何,我找到了答案。
    • @Maksim Surov:对不起,我误会了,但你没有写清楚你想要的。
    【解决方案2】:

    显式类型转换解决了我的问题:

    def _imp_(x):
        return numpy.sin(float(x))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多