2

我有两个用 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'
4

1 回答 1

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是一个被识别为数学常数 pi 的 SymPy 对象。

于 2017-10-19T04:30:23.093 回答