我有两个用sympy的lamdify创建的函数
a = sympy.lambdify((x, y), K / (2 * math.pi) * sympy.cos(theta) / r)
b = sympy.lambdify((x, y), -G / (2 * math.pi) * theta)
如何创建添加这两个功能的新功能?
我试过了c = a + b
,但我得到了
TypeError: unsupported operand type(s) for +: 'function' and 'function'
答案 0 :(得分:3)
c = lambda x, y: a(x, y) + b(x,y)
会奏效。这不是SymPy具体的;只需将两个Python函数组合成第三个函数。
但是在转换为lambda之前添加表达式更合乎逻辑。例如:
var('x y')
expr1 = x + y
a = lambdify((x, y), expr1)
expr2 = x/y
b = lambdify((x, y), expr2)
c = lambdify((x, y), expr1 + expr2)
附注:我会在math.pi
中替换函数中的sympy.pi
,因为math.pi
只是一个浮点数,而sympy.pi
是一个SymPy对象,被认为是数学常数pi。