[英]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'
您需要先將“ Add
為Poly
轉換為結果,然后對結果調用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.