我在SymPy中有一个符号表达式,我需要从表达式的二阶导数中删除所有系数。这是代码
import sympy as sym
x, y = sym.symbols('x y')
# define the shape function
S_function = 0 +\
x + y +\
x**2 + x*y + y**2 +\
x**3 + x**2*y + x*y**2 + y**3
# take the 2nd derivative of the shape function for the x components
S_function_xx = sym.expand(sym.diff(S_function,x,2))
print(S_function_xx)
我得到6 * x + 2 * y + 2的输出,我需要将其转换为x + y。欢迎任何建议。
答案 0 :(得分:3)
如果表达式实际上是多项式(如此处所示),则可以使用以下内容:将其转换为Poly object,获取带有monoms
的单项式列表,然后重新组合,删除常量术语
monom_list = sym.Poly(S_function_xx, x, y).monoms()
new_function = sum([x**a*y**b for a, b in monom_list if a + b > 0])
如果S_function_xx
不是多项式,那么它不是很清楚什么是"系数"。