sympyで数列の和を計算

インストール
pip install sympy

例:
sympyで数列の和を計算して,因数分解

  • コード

calc.py

from sympy import *
i,N=symbols('i N',integer=True)
a=summation(i**2,(i,1,N))
print a
b=factor(a)
print b
  • 実行

$ python calc.py

  • 出力

N**3/3 + N**2/2 + N/6
N*(N + 1)*(2*N + 1)/6

例2:
等比数列の和

from sympy import *
r=symbols('r')
i,N=symbols('i N',integer=True)
c=factor(summation(r**i,(i,1,N)))
print c
Piecewise((N, r == 1), (-r*r**N/(-r + 1) + r/(-r + 1), True))

例3 関数を使う

  • コード
from sympy import *
r=symbols('r')
i,j,N=symbols('i j N',integer=True)
f=3**i
print f.subs([(i,3)])
d=factor(summation(f.subs([(i,j)]),(j,1,N)))
print d
  • 出力
27
3*(3**N - 1)/2

例4:場合分け(区分計算)
Piecewise関数を使う

f=Piecewise((i,i>=3),(0,True))

print f.subs([(i,5)])
print f.subs([(i,2)])

e=(summation(f.subs([(i,j)]),(j,1,12)))
print e

出力

5
0
75