我有一个形式的等式(在LaTeX语法中):
\sum_{k=0}^{K-1} a_k = 0
Run Code Online (Sandbox Code Playgroud)
a_k是一个"下标k",我正在建立一个线性方程组的变量列表之一.我希望能够尽可能紧凑地将这个方程表达给SymPy.似乎我想用它的Sum()函数来表达求和,但我不知道如何告诉它on term k in the sum, a_k refers to the k-th symbol.
这是可能的,例如,如果我设置这样的符号列表?
a = [sympy.symbols('a' + str(i)) for i in xrange(K)]
Run Code Online (Sandbox Code Playgroud)
你的意思是这样的吗?
In [1]: a = IndexedBase("a")
In [2]: Sum(a[k], (k, 0, K-1))
Out[2]:
K - 1
___
?
? a[k]
?
?
???
k = 0
Run Code Online (Sandbox Code Playgroud)
IndexedBase应该创建一个每次使用时都需要指定索引的变量.如果指数不同,则应将变量视为不同(例如a[k]vs a[j]).
如果您的总和已知限制(即非文字),您可以扩展它:
In [3]: Sum(a[k], (k, 0, 10))
Out[3]:
10
___
?
? a[k]
?
?
???
k = 0
In [4]: Sum(a[k], (k, 0, 10)).doit()
Out[4]: a[0] + a[1] + a[2] + a[3] + a[4] + a[5] + a[6] + a[7] + a[8] + a[9] + a[10]
Run Code Online (Sandbox Code Playgroud)
不幸的是,并非所有SymPy的算法都IndexedBase完全支持对象.Symbol在这种情况下建议更换为a .
| 归档时间: |
|
| 查看次数: |
524 次 |
| 最近记录: |