[英]How to create symbol polynomial from given array with sympy?
我試圖計算一些多項式,給定輸入分子和分母多項式作為系數數組。
如何從這些數組中創建多項式?
例如:
輸入:
den= [2,3,4]
num= [1,3]
輸出: (s+3)/(s^2+3*s+4)
我需要使用符號,因為我還需要將結果除以其他多項式並執行進一步的多項式計算。
PS是sympy
適合呢? 我通常會在matlab
解決這樣的問題,但我想擴展我的知識。
您可以執行以下操作:
den = [2, 3, 4]
num = [1, 3]
x = symbols('x')
Poly(num, x)/Poly(den, x)
這會為分子和分母(而不僅僅是表達式)創建Poly對象。 系數從x的最高功率列出。
請注意,除法的結果是普通表達式,因為SymPy中沒有RationalFunction類型。 如果要將polys
模塊中的工具應用於分子和分母,請將它們作為元組分開。
我想你想要的是(s+3)/(2*s^2+3*s+4)
,原始表達中有一個拼寫錯誤。 而在Python中, ^
不是權力,權力是**
。
你只需要一個普通的Python列表理解:
from sympy import poly
from sympy.abc import s
den_ = sum(co*s**i for i, co in enumerate(reversed(den)))
num_ = sum(co*s**i for i, co in enumerate(reversed(num)))
res = num_/den_
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.