【发布时间】:2013-01-06 20:01:12
【问题描述】:
我很困惑为什么以下代码的答案是 10 而不是 1。有人可以帮我理解 lambdify 发生了什么或导致错误答案的原因吗?
import sympy
from sympy.utilities.lambdify import lambdify
from sympy import Function
from sympy.abc import x, y
def kFct(xIndex,loc,k1,k2):
... if xIndex <= loc:
... return k1
... else:
... return k2
...
loc = 0.5
k1 = 1
k2 = 10
kfun = lambdify( (x,y), kFct(x,loc,k1,k2) )
print kfun(0,0)
>>> 10
为什么答案不是k1 或1,因为x = 0 小于loc = 0.5?
但是,如果我这样做,它会返回正确的答案
print kfct(0,loc,k1,k2)
>>> 1
我需要将kfun 作为 x 和 y 的函数,因为稍后我会将它用作积分参数的一部分。它最终也将取决于 y。
我在 Mac 10.6.x 上使用 python 2.6.8。
【问题讨论】: