2017-02-10 12 views
0

我有一個引力勢的表達式(來自here的eq.15),並計算我需要的軌道以評估作爲局部梯度的引力,對於我來說意味着評估Legendre polynomialsP2,P4和P6的衍生物,其單值爲成千上萬次。在Python中獲取勒讓德多項式的導數

enter image description here

我可以使用this question表達式計算的話,但我不知道是否有辦法讓蟒蛇對於沒有明確涉及我評估衍生物作爲有限差的衍生物。

我無法在SciPy中找到任何要自動執行此操作的內容。在numpy.polynomial.legendre.Legendre有一個deriv()方法,但我沒有使用多項式類操作的經驗。

評估低階Legendre多項式的一階導數的最快方法是什麼?一次一個值適合數值積分?

+0

你可以嘗試'sympy'模塊,如果我沒有弄錯,它是SciPy的一部分。它可以讓你非常容易區分和整合等,但是你需要首先處理這個無限的總和,也許SymPy可以處理它,以及它在評估限制和那種東西方面非常好。 – ForceBru

+0

@ForceBru謝謝我不認爲'sympy'適合這裏的工作。我可以自己做這個象徵性的部分 - 答案就在這個相關的問題中。我需要的是快速的數值評估,而「sympy」不會這樣做。 – uhoh

回答

2

如果您只需要P2,P4P6的衍生產品,那麼這很容易手工計算,然後寫下代碼......例如,

P2 = .5 * (3 * x^2 - 1) 

因此:

P2' = .75 * x 

,你可以寫在Python作爲:

def P2_deriv(x): 
    return .75 * x 

事情並沒有真正得到一大堆比;-)快。如果你需要任意的legendre polynomials,那麼...事情開始有點棘手,在這一點上...

+0

好,因爲我提到我只需要幾個低階多項式,你說得對。我可以停止將它們視爲需要特殊方法的外來物體,並將鉛筆放在紙上。感謝你讓我回到地球 - 在土星周圍的軌道上花費太多時間「腐爛了大腦! :) – uhoh