2017-10-19 147 views
2

我有兩個功能與sympy的lamdify創建sympy lambdify增加兩個功能

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' 

回答

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) 

側面一句話:我會通過sympy.pi取代math.pi在你的函數,因爲math.pi只是一個浮點數,而sympy.pi是公認的數學常數pi一個SymPy對象。