Python 我怎样才能从辛方程中提取出分母和分子的列表?

Python 我怎样才能从辛方程中提取出分母和分子的列表?,python,sympy,Python,Sympy,我这里有一些这样的代码,它描述了SymPy()中的一个表达式: s=sympy.Symbol('s') K=1/(3*s**3+2*s**2+1*s+1) 这是相同的传递函数,但在控制中()这是语法: den=[1] nom=[3,2,1,1] 控制.传递函数(den,num) 所以,我们需要给它一个列表。 我的问题是: 如何从Symphy方程中提取den和num的列表?还有可能有更好的方法在SymPy中创建传递函数吗?Poly有一种全系数法,可应用于有理表达式的已识别分子和分母,例如 将s

我这里有一些这样的代码,它描述了
SymPy
()中的一个表达式:

s=sympy.Symbol('s')
K=1/(3*s**3+2*s**2+1*s+1)
这是相同的传递函数,但在
控制中
()这是语法:

den=[1]
nom=[3,2,1,1]
控制.传递函数(den,num)
所以,我们需要给它一个列表。 我的问题是:
如何从Symphy方程中提取
den
num
的列表?还有可能有更好的方法在SymPy中创建传递函数吗?

Poly
有一种
全系数法,可应用于有理表达式的已识别分子和分母,例如

将sympy作为sp导入
s=sp.Symbol('s',rational=True)
等式=1/(2*s**2+3*s+4)
顶部,bot=[[sp.Poly(i,s)中i的浮点数(i)。等式中i的所有系数()]为[u numer\u denom()]
进口管制公司
公司转让职能(top、bot)

对不起,你说的传递函数是什么意思?@Anwarvic是控制工程中的传递函数。S平面上的一个函数虽然我想它对SymPy来说并不是那么重要,但我这样称呼它是因为
control
认为它就是NVM,我自己解决了这个问题。几分钟后发布解决方案很好。。。干得好哈哈,我刚刚发布了我自己的解决方案,但我认为你的可能更好。检查我的并说出你的想法好吧,我看到你的解决方案有我必须解决的问题,检查我的解决方案,基本上是因为sympy用sympy对象制作这个列表,而不是用浮点或整数来表示常量的问题(独立于
s
或者,在我的例子中是
x
)可以通过创建一个带有兴趣符号的多边形来优雅地处理,就像我所做的那样。我有偏见,但我会投票支持我的解决方案您的问题是co.TransferFunction()包含两个普通python数字列表。当你试图给它一个sympy号码时,它崩溃了。所以我认为结合我们的解决方案是最好的。我将使用您在元组中创建这两个列表的方法,并通过循环将它们转换为浮点列表:)我更新了解决方案以提供浮点;如果这些数字不是真正的数字,它也会上升。