我经常使用sympy,但不是很擅长。目前,我只能定义索引变量的列表,即n1到nmax并对其执行求和。然后我想得到导数:
到目前为止,我尝试了以下方法:
numSpecies = 10
n = IndexedBase('n')
i = symbols("i",cls=Idx)
nges = summation(n[i],[i,1,numSpecies])
但是,如果我尝试对一个变量求导数,则失败:
^{pr2}$我还试图避免使用^{
numSpecies = 10
n = symbols('n0:%d'%numSpecies)
k = symbols('k',integer=True)
ntot = summation(n[k],[k,0,numSpecies])
但是,这里的求和已经失败了,因为混合了python元组和sympy求和。在
如何执行indexedbase衍生工具或某种解决方法?在
我不知道为什么
IndexedBase
方法不起作用(我也很想知道)。但是,您可以执行以下操作:对于SymPy的开发版本,您的示例是有效的。在
要安装SymPy的开发版本,只需使用
git
将其下拉:然后从该路径运行python,或者在python的默认安装之前设置
PYTHONPATH
以包含该目录。在开发版本示例:
^{pr2}$您也可以使用合同形式的总和:
还请注意,在下一个SymPy版本中,您将能够导出具有符号索引的符号:
在那里你得到Kronecker delta。在
如果您不想安装SymPy开发版本,只需等待下一个完整版本(可能在今年秋季发布),它将支持
IndexedBase
的派生版本。在我不清楚你想做什么。然而,也许这会有所帮助。根据收到的两条评论进行编辑。在
只有第一个表达式回答了原来的问题。这是输出。在
^{pr2}$相关问题 更多 >
编程相关推荐