私は時々sympyを使用していますが、あまり良くありません。現時点では、インデックス付き変数のリストを定義することに取り組んでいます。つまり、n1からnmaxまでの合計を実行します。それから私は、微分を取ることができるようにしたい:和の微分
は、これまでのところ、私は次のことを試してみました:私は1つの変数に関して導関数を取るしようとした場合
numSpecies = 10
n = IndexedBase('n')
i = symbols("i",cls=Idx)
nges = summation(n[i],[i,1,numSpecies])
しかし、これは失敗します。
diff(nges,n[5])
また、私はIndexedBase
での作業を避けようとしました。
numSpecies = 10
n = symbols('n0:%d'%numSpecies)
k = symbols('k',integer=True)
ntot = summation(n[k],[k,0,numSpecies])
しかし、ここですでに合計はPythonのタプルとsympy和を混合するので失敗しました。
インデックスベースの派生商品や何らかの回避策をどのように実行できますか?
私の特定の問題に対する答えは、Bill BellとSteliosに感謝します。私は私の例をできるだけシンプルにしていたので、それは本当に些細なことかもしれません。長期的には、より複雑な方程式の集計を定義する必要があります。私の問題は化学工学の分野です。しばしば化学種の尊重されたモル分率に重み付けされた何らかの種類のプロパティの合計を持つ方程式に遭遇します。しばしば、特定の種の変化に関する上記関数の導関数を計算することが必要である。 – Johannes
@Johannesようこそ!私はあなたが今加重合計のようなもっと複雑な問題に対処できるはずだと信じています。それでも問題が解決しない場合は、別の質問を投稿するのをためらってください。 – Stelios