高校数学: Σ (シグマ) の計算 2: Python3: SymPy: Sum(), doit(), latex()

使用する数式

k=154

k=14(2k2+5k+3)

k=15(k23k)

k=1n(6k2+2)

k=1n(8k+4)

上の数式は以下で作成 (SymPy: latex())

>>> import sympy as sym
>>> k, n = sym.symbols('k n')
>>> print(sym.latex(sym.Sum(4, (k, 1, 5))))
\sum_{k=1}^{5} 4
>>> print(sym.latex(sym.Sum(2*k**2 + 5*k + 3, (k, 1, 4))))
\sum_{k=1}^{4} \left(2 k^{2} + 5 k + 3\right)
>>> print(sym.latex(sym.Sum(k**2 - 3*k, (k, 1, 5))))
\sum_{k=1}^{5} \left(k^{2} - 3 k\right)
>>> print(sym.latex(sym.Sum(6*k**2 + 2, (k, 1, n))))
\sum_{k=1}^{n} \left(6 k^{2} + 2\right)
>>> print(sym.latex(sym.Sum(8*k + 4, (k, 1, n))))
\sum_{k=1}^{n} \left(8 k + 4\right)

Python3 コード

sigma2.py

#!/usr/bin/env python3


"""(docstring)
"""


import sympy as sym


def print_math_problem():
    """(docstring)
    """
    print("""Σ (シグマ) の計算をせよ。""")


def sigma2():
    """(docstring)
    """
    k, n = sym.symbols('k n')

    print('解答:\n')
    # 式を作成。
    ans1 = sym.Sum(4, (k, 1, 5))
    # pprint() で式を出力。
    sym.pprint(ans1)
    # doit() で評価。
    print('\n=', ans1.doit())
    print('')

    print('-'*79)
    print('解答:\n')
    ans2 = sym.Sum(2*k**2 + 5*k + 3, (k, 1, 4))
    sym.pprint(ans2)
    print('\n=', ans2.doit())
    print('')

    print('-'*79)
    print('解答:\n')
    ans3 = sym.Sum(k**2 - 3*k, (k, 1, 5))
    sym.pprint(ans3)
    print('\n=', ans3.doit())
    print('')

    print('-'*79)
    print('解答:\n')
    ans4 = sym.Sum(6*k**2 + 2, (k, 1, n))
    sym.pprint(ans4)
    print('\n=', ans4.doit())
    print('\npprint():\n')
    sym.pprint(ans4.doit())
    print('')

    print('-'*79)
    print('解答:\n')
    ans5 = sym.Sum(8*k + 4, (k, 1, n))
    sym.pprint(ans5)
    print('\n=', ans5.doit())
    print('\npprint():\n')
    sym.pprint(ans5.doit())
    print('')


    # 他には、summation()


if __name__ == '__main__':
    print_math_problem()
    print('-'*79)
    sigma2()

出力

$ python3 sigma2.py
Σ (シグマ) の計算をせよ。
-------------------------------------------------------------------------------
解答:

  5    
 ___   
 ╲     
  ╲   4
  ╱    
 ╱     
 ‾‾‾   
k = 1  

= 20

-------------------------------------------------------------------------------
解答:

  4                   
 ___                  
 ╲                    
  ╲   ⎛   2          ⎞
  ╱   ⎝2⋅k  + 5⋅k + 3⎠
 ╱                    
 ‾‾‾                  
k = 1                 

= 122

-------------------------------------------------------------------------------
解答:

  5             
 ___            
 ╲              
  ╲   ⎛ 2      ⎞
  ╱   ⎝k  - 3⋅k⎠
 ╱              
 ‾‾‾            
k = 1           

= 10

-------------------------------------------------------------------------------
解答:

  n             
 ___            
 ╲              
  ╲   ⎛   2    ⎞
  ╱   ⎝6⋅k  + 2⎠
 ╱              
 ‾‾‾            
k = 1           

= 2*n**3 + 3*n**2 + 3*n

pprint():

   3      2      
2⋅n  + 3⋅n  + 3⋅n

-------------------------------------------------------------------------------
解答:

  n            
 ___           
 ╲             
  ╲   (8⋅k + 4)
  ╱            
 ╱             
 ‾‾‾           
k = 1          

= 4*n**2 + 8*n

pprint():

   2      
4⋅n  + 8⋅n

参考文献 (数式を参考)

小・中・高の計算がまるごとできる

小・中・高の計算がまるごとできる