sympy lambdify 添加两个函数
sympy lambdify add two functions
我有两个使用 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'
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。
我有两个使用 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'
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。