如何提取含exp(a*x/c)表达式中x的类多项式系数?
在SymPy中提取表达式关于x的类多项式系数
直接用expand()就能把你的表达式展开成想要的类多项式形式,再配合coeff()方法就能提取对应x幂次的系数,完全不需要复杂操作:
完整代码示例
from sympy import * a,b,c,x=symbols('a,b,c,x',real=True) expr=a+(a+(a+b)*x+c*(a+b)*x**2 )*exp(a*x/c) # 展开表达式到类多项式形式 expanded_expr = expr.expand() print(expanded_expr) # 输出:a + a*exp(a*x/c) + (a + b)*x*exp(a*x/c) + c*(a + b)*x**2*exp(a*x/c) # 提取各x项的系数 const_coeff = expanded_expr.coeff(x, 0) x1_coeff = expanded_expr.coeff(x, 1) x2_coeff = expanded_expr.coeff(x, 2) print("常数项系数:", const_coeff) # 输出:a + a*exp(a*x/c) print("x项系数:", x1_coeff) # 输出:(a + b)*exp(a*x/c) print("x²项系数:", x2_coeff) # 输出:c*(a + b)*exp(a*x/c)
为什么你之前的方法没效果
series(x):这个方法是对表达式做泰勒展开,会把exp(a*x/c)拆成x的幂级数,不是你要的保留exp作为系数的形式poly(expr,x):SymPy的poly要求表达式是严格多项式(系数必须是不含x的符号/常数),但你的系数里exp(a*x/c)包含x,所以无法生成多项式对象expr.rewrite(x):这个方法是用来将表达式重写为指定类型的函数,和整理多项式项无关
内容的提问来源于stack exchange,提问作者ShoutOutAndCalculate
相关产品推荐
相关产品推荐

