Python 3 で数学を。

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

因数分解 (Python 3, SymPy: factor())

使用するライブラリ

SymPy

Python 3 コード

factorization.py

#!/usr/bin/env python3


"""(docstring)
"""


import sympy as sym


def factorization(expr):
    """(docstring)
    """
    return sym.factor(expr)


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

    expressions = [x**2 + 7*x + 10,
                   x**2 - 5*x + 6,
                   a**2 + 2*a - 15,
                   x**2 - 2*x*y - 24*y**2,
                   16*a**2 + 24*a*b + 9*b**2]

    for idx, expr in enumerate(expressions):
        print('({})\n'.format(idx+1))
        print('数式:\n')
        sym.pprint(expr)
        print('\n解答:\n')
        sym.pprint(factorization(expr))
        print('')
        print('-'*79)

出力

$ python3 factorization.py
(1)

数式:

 2           
x  + 7⋅x + 10

解答:

(x + 2)⋅(x + 5)

-------------------------------------------------------------------------------
(2)

数式:

 2          
x  - 5⋅x + 6

解答:

(x - 3)⋅(x - 2)

-------------------------------------------------------------------------------
(3)

数式:

 2           
a  + 2⋅a - 15

解答:

(a - 3)⋅(a + 5)

-------------------------------------------------------------------------------
(4)

数式:

 2               2
x  - 2⋅x⋅y - 24⋅y 

解答:

(x - 6⋅y)⋅(x + 4⋅y)

-------------------------------------------------------------------------------
(5)

数式:

    2               2
16⋅a  + 24⋅a⋅b + 9⋅b 

解答:

           2
(4⋅a + 3⋅b) 

-------------------------------------------------------------------------------

参考文献 (数式を参考)

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

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