Python 3 で数学を。

Python 3 とライブラリで数学の問題を解いていきます。統計学や機械学習はときどき。

単項式と多項式の乗法。複数の数式を for 文で処理。 (Python3: enumerate(), SymPy: symbols(), expand())

使用するライブラリ

SymPy

Python 3 コード

mul_monomials_polynomials.py

#!/usr/bin/env python3


"""(docstring)
"""


import sympy as sym


def mul_monomials_polynomials(expr):
    """(docstring)
    """
    res = sym.expand(expr)

    return res


if __name__ == '__main__':
    a, b, x, y = sym.symbols('a b x y')

    expressions = [-4*x*(x - 3*y),
                   (4*x - 6*y)*(1/2)*x,
                   5*a*(3*a - 2*a*b + b)]

    for idx, expr in enumerate(expressions):
        print('({}):\n'.format(idx+1))
        sym.pprint(mul_monomials_polynomials(expr))
        print('')

出力

$ python3 mul_monomials_polynomials.py
(1):

     2         
- 4⋅x  + 12⋅x⋅y

(2):

     2          
2.0⋅x  - 3.0⋅x⋅y

(3):

      2         2        
- 10⋅a ⋅b + 15⋅a  + 5⋅a⋅b

参考文献 (数式を参考)

チャート式体系数学2代数編―中高一貫教育をサポートする

チャート式体系数学2代数編―中高一貫教育をサポートする