簡體   English   中英

如何使用sympy從給定數組創建符號多項式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM