Я сбит с толку тем, почему ответ на следующий код равен 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.
Я использую Python 2.6.8 на Mac 10.6.x.