我将如何求解包含求和表达式的方程,即
就像是。

python - sympy 版本 1.1.1 :  'solve()'  containing  'summation()'-LMLPHP

我会考虑以下代码片段来解决这个等式:

from sympy import *

i, N, x = symbols("n, N, x")
y       = Function("y")
eq      = summation(x + y(i), (i, 0, N))

print solve(eq, [x])

然而,虽然这个方程很简单,但 solve() 不会产生结果。这
预期的解决方案是

python - sympy 版本 1.1.1 :  'solve()'  containing  'summation()'-LMLPHP

最佳答案

我相信简单的答案是,对于当前系统来说,进行所需的替换太复杂了。

话虽如此,这里的求和扩展可能存在问题。

我设法通过使用 Sum 更改 expand 输出中的 summation 来获得正确答案,请参阅下面的控制台 session 。

我认为使最后一个成为可能的原因是 summation(x, (i, 0, N)) 计算为 x*(N + 1)(summation 函数的效果),而扩展返回的 Sum(x, (i, 0, N)) 仍然是一个简单的 Sum 对象,因此在内部扩展后没有对其进行替换solve 函数。

>>> from sympy import *
>>>
>>> i, N, x, y = symbols("i, N, x, y")
>>> eq         = summation(x + y(i), (i, 0, N))
>>>
>>> expand(eq)
Sum(x, (i, 0, N)) + Sum(y(i), (i, 0, N))
>>>
>>> solve(summation(x, (i, 0, N)) + summation(y(i), (i, 0, N)), x)
[Sum(-y(i), (i, 0, N))/(N + 1)]
  • 顺便说一下,解除以 N + 1 ,因为总和包含 0 和 N(因此,0 到 N 是 N + 1 次)。
  • 关于python - sympy 版本 1.1.1 : 'solve()' containing 'summation()' ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46521521/

    10-13 01:00