【问题标题】:Why does my lambdify not working when add my own function为什么添加我自己的函数时我的lambdify不起作用
【发布时间】:2019-11-17 16:34:41
【问题描述】:

我创建了一个函数并使其在我的 Sympy 表达式中可用,如下所示:

  def Unit(x):
        if(x != 0):
            return 0
        else:
            return 1
  Unit = Function('Unit')
  x = Symbol('x')

我的表情:

fx = x ** 2 + Unit(x)

但是当我跑步时:

lam_f = lambdify(x, fx, modules=["sympy"])
print(lam_f(-1))

它说我的单位没有定义? 谁能解释我哪里出错了?

【问题讨论】:

    标签: python sympy


    【解决方案1】:

    Function('Unit') 返回一个名为 Unit 的未定义函数。见this question。如果你想使用你之前定义的函数Unit,去掉对Function()的调用:

    def Unit(x):
        if(x != 0):
            return 0
        else:
            return 1
    
    x = Symbol('x')
    fx = x**2 + Unit(x)
    
    lam_f = lambdify(x, fx, modules=['sympy'])
    print(lam_f(-1)) # prints 1
    

    【讨论】:

    • 当我使用带有 fx 的 simpify() 函数时,它返回 1 而我希望它返回我的完整表达式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 2021-12-18
    • 2011-06-23
    • 1970-01-01
    • 2017-08-18
    相关资源
    最近更新 更多