使用する数式
上の数式は以下で作成 (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
参考文献 (数式を参考)
- 作者: 間地秀三
- 出版社/メーカー: ベレ出版
- 発売日: 2005/12/25
- メディア: 単行本
- 購入: 5人 クリック: 41回
- この商品を含むブログ (9件) を見る