python - 获取 Sympy 将分数展开为多项式方程

标签 python sympy

我想知道如何让 Sympy 将带分数的方程扩展为多项式。例如,考虑以下代码

from sympy import *
var('x a b c d e')
Eq(a, ()/())
frac = Eq(a, (x + b/x)/(c/x + d/x**2))
pprint(frac)

如何得到 x 的多项式?例如,在这种情况下,多项式看起来像

C1*x**3 + C2*x**2 + C3*x + C4 = 0

我有 .as_poly()as_powers_dict()expand() 和其他一些,但我几乎是在猜测名称并尝试一切似乎遥不可及的事情。有办法吗?

干杯

最佳答案

我不知道这种方法的通用性如何,但在某些情况下这样的方法可能会有用:

In [299]: frac = Eq(a, (x + b/x)/(c/x + d/x**2))

In [300]: f = factor(frac.lhs - frac.rhs)

In [301]: f
Out[301]: -(-a*c*x - a*d + b*x + x**3)/(c*x + d)

In [302]: f *= denom(f)

In [303]: poly(f, x)
Out[303]: Poly(-x**3 + (a*c - b)*x + a*d, x, domain='ZZ[a,b,c,d]')

In [304]: poly(f, x).as_dict()
Out[304]: {(0,): a*d, (1,): a*c - b, (3,): -1}

关于python - 获取 Sympy 将分数展开为多项式方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42179995/

相关文章:

python - 如何在 Python Sympy Latex 中构造组合表达式?

python - 具有符号输出的 sympy 方程组

使用 sympy lambdify 和 scipy 进行 Python 优化

python - 使用 Q 自动生成 django 查询

javascript - 向现有 Firebase 添加新的键值对

python - 为什么不能删除 python 3 中的字典?

python - 跨应用程序可用的全局变量

python - python中有matlab中digits()和vpa()函数的对应函数吗?

python - 如何在 sympy 中正确替换索引变量?

python - 如何在 python 中找到 numpy 矩阵的长度(或尺寸、大小)?