Python 3 で数学を。

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

根号を含む式の乗法 (展開)。(Python 3, SymPy: sqrt(), expand())

使用するライブラリ

SymPy

Python 3 コード

expand_sqrt.py

#!/usr/bin/env python3


"""(docstring)
"""


import sympy as sym


def expand_sqrt():
    """(docstring)
    """
    expressions = [(sym.sqrt(3) + 1)*(sym.sqrt(3) - 2),
                   (sym.sqrt(7) + sym.sqrt(3))**2,
                   (2*sym.sqrt(3) - 5)*(sym.sqrt(3) + 1),
                   (sym.sqrt(12) + sym.sqrt(7))*(2*sym.sqrt(3) - sym.sqrt(7))]

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


if __name__ == '__main__':
    expand_sqrt()

出力

$ python3 expand_sqrt.py
(1)

数式:
(-2 + √3)⋅(1 + √3)

解答:
-√3 + 1

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

数式:
         2
(√3 + √7) 

解答:
2⋅√21 + 10

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

数式:
(-5 + 2⋅√3)⋅(1 + √3)

解答:
-3⋅√3 + 1

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

数式:
(-√7 + 2⋅√3)⋅(√7 + 2⋅√3)

解答:
5

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

参考文献 (数式を参考)

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

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