2017-02-10 5 views
0

私は重力ポテンシャル式(から15)を得て、軌道を計算するためにローカル勾配である重力を評価する必要があります。 P230、P4、P6の導関数を数万回の単値で評価する。Pythonでルジャンドル多項式の派生を取得する

enter image description here

私はthis questionで式を使用して、それを計算することができますが、明示的に有限の差として微分を評価する私を必要としない誘導体についてのpythonを依頼する方法がある場合、私は思ったんだけど。

SciPyでこれを自動的に行うことができませんでした。 numpy.polynomial.legendre.Legendreにはderiv()メソッドがありますが、多項式クラスでの操作はありません。

低次のルジャンドル多項式の一次導関数を数値的に積分するために一度に一度評価するのが最も速い方法は何でしょうか?

+0

私が間違っていないとSciPyの一部である 'sympy'モジュールを試すことができます。それはあなたが本当に簡単な差別化や統合などを行うことを可能にしますが、まず無限の和を扱う必要があります.SymPyはそれを処理できるだけでなく、限界やそのようなものを評価するのにもかなり良いです。 – ForceBru

+0

@ForceBruありがとう私は 'sympy'がここで仕事のために正しいとは思わない。私は自分自身で象徴的な部分を行うことができます - 答えはリンクされた質問の中にあります。私が必要とするのは速い数値評価であり、 'sympy'はそれをしません。 – uhoh

答えて

2

P2P4P6の派生が必要な場合は、手で計算してコードとして書き留めるだけで十分です。したがって

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

P2' = .75 * x 

そして、あなたのようにpythonでそれを書くことができます。

def P2_deriv(x): 
    return .75 * x 

物事は本当に速い;-)より全体の多くを得ることはありません。任意のルジャンドル多項式が必要な場合は、よく...その点で少し物事が少しずつ起き始める...

+0

私が言及して以来、私はいくつかの低次多項式しか必要としません、あなたは正しいです。私はそれらを特殊な方法が必要なエキゾチックなものとして考え、紙に鉛筆をつけるだけです。私を地球に戻してくれてありがとう - サターンの周りの軌道上で "あまりにも多くの時間を費やしている"というのは、脳を壊す! :) – uhoh