簡體   English   中英

如何使用SymPy提取Jacobi多項式的系數

[英]How to extract coefficients of Jacobi polynomial using SymPy

我想連續繪制幾個Jacobi多項式的零。 Jacobi多項式的參數和階數取決於某個大小變量n。 我想通過首先將多項式的系數提取到數組中來計算每個多項式的根。 但是,這不能通過coeffs()命令完成,因為Jacobi多項式屬於sympy.core.add.Add類,該類沒有coeffs()作為屬性。 關於如何克服這個問題有什么建議嗎?

import matplotlib.pyplot as plt
init_printing()
x = Symbol("x")

def show_roots(n,a,b,c):
    for k in range (1,n+1):
        p = jacobi(a*k,-(a+b)*k,(b+c)*k,x)
        coeff = p.coeffs(x)
        roots = numpy.roots(coeff)
        plt.plot(roots)
        plt.show()
        plt.pause(3)

當我嘗試使用特定值的show_roots時顯示的錯誤: AttributeError: 'Add' object has no attribute 'coeffs'

您需要先將“ AddPoly轉換為結果,然后對結果調用coeffs()

import matplotlib.pyplot as plt
import sympy
import numpy
x = sympy.symbols('x')

def show_roots(n,a,b,c):
    for k in range (1,n+1):
        p = sympy.jacobi(a*k,-(a+b)*k,(b+c)*k,x)        
        coeff = sympy.poly(p).coeffs()
        roots = numpy.roots(coeff)
        print(roots)

show_roots(3,1,2,3)

[2.]
[2.+0.65465367j 2.-0.65465367j]
[2.24801968+0.j         1.87599016+0.92968658j 1.87599016-0.92968658j]

您現在可以進行繪圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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