我正在努力解决python sympy模块中的一个简单问题 . 因此我怀疑我误解了一些事情 - 我希望你能帮助我 .

我的问题围绕着:向量的总和(或至少索引的参数),这些对于特定矩阵元素的衍生物以及如何通过自动捆绑功能使其可访问 .

例:

from sympy import Eq, IndexedBase, symbols, Idx, Sum, diff
from sympy.utilities.autowrap import autowrap
nc = symbols("nc", integer=True)
fout = symbols("fout")

n  = IndexedBase("n")
F  = IndexedBase("F")
i  = Idx("i", nc)
j  = Idx("j", nc)
F1 = symbols("F1")
N  = Sum(n[i],i)
F1 = Sum(F[i,j]*n[i]/N,i,j)
Funcout = Eq(fout,diff(F1,n[i]))

Testfunction = autowrap(Funcout)

在这里我收到以下错误:

NotImplementedError: FIXME: No specialized handling of type <class 'sympy.concrete.summations.Sum'>

如何使用autowrap生成矢量函数:输出:[vector]其中第i个元素对应diff(F1,n [i])输入:任意大小的F和n(但是n [m]和F [M,M]) .

但是肯定必须有一种方法可以在任意数组大小上进行求和,并且可以与codegen模块一起使用吗?

上下文:我使用基于大方程系统的模拟,其中一些边界条件由来自特定函数的一系列一阶和二阶导数定义 . 因此,我想在sympy中编写main函数,然后生成衍生函数,最后通过使用codegen功能实现快速实现 . 这可能会让我节省半年的工作 .