sympy Version 1.1.1:'solve()'包含'summation()'

时间:2017-10-02 07:55:56

标签: python sympy equation-solving

我如何求解包含求和表达式的等式,即 类似的东西。

Simple Equation

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

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()但不会产生结果。该 预期的解决方案是

enter image description here

1 个答案:

答案 0 :(得分:2)

我认为简单的答案是,当前系统太复杂,无法进行所需的替换。

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

我设法通过更改Sum输出中的expandsummation来获得正确的答案,请参阅下面的控制台会话。

我认为最后一个可能的原因是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)] 函数内部扩展后没有替换它。

self.pushButton786.clicked.connect(self.refresh)

def refresh(self):

    db = MySQLdb.connect('localhost', 'root', 'Suhel786', 'project')
    cursor = db.cursor()
    cursor.execute("select count(*) from donor")
    a=fetchchone()
    b=int(a[0])
    cursor.execute("select count(*) from customer")
    c=fetchchone()
    d=int(c[0])
    self.label_8.setText(str(b))
    self.label_9.setText(str(d))
    db.close()
  • 顺便说一下,解决方案除以 N + 1 ,因为求和包含0和N(因此,0到N是N + 1次)。