我有以下表达式
A=Symbol('A')
x=Symbol('x')
B=Symbol('B')
C=Symbol('C')
D=Symbol('D')
expression=((A**x-B-C)/(D-1))*(D-1)
n,d=fraction(expression)
我得到以下结果:
n=A**x-B-C
d=1
我的预期结果是
n=(A**x-B-C)*(D-1)
d=(D-1)
有没有办法在 sympy 或需要编写自定义函数来处理
最佳答案
使用 UnevaluatedExpr()
以防止表达式被评估。
from sympy import symbols, fraction, UnevaluatedExpr
A,x,B,C,D = symbols('A x B C D')
expression = (A**x-B-C)/(D-1)*UnevaluatedExpr(D-1)
n,d = fraction(expression)
print(n)
print(d)
这返回
(A**x - B - C)*(D - 1)
D - 1
见同情 Advanced Expression Manipulation文档页面了解更多详情。
关于sympy - 如何在不计算的情况下从多项式中提取分子和分母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39130964/