Python 3 で数学を。

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

2次関数 (二次関数)。2次方程式 (二次方程式) の応用 (Python 3, SymPy: solve(, dict=True), Eq())

使用するライブラリ

SymPy

Python 3 コード

quadratic_functions2.py

#!/usr/bin/env python3


"""(docstring)
"""


import sympy as sym


def print_math_problems():
    """(docstirng)
    """
    print("""以下の 2 次方程式の応用問題を解け。

(1) ある数 x から 3 を引いて 2 乗した数が、
    x を 2 倍して 3 を引いた数に等しくなった。
    ある数 x を求めよ。

(2) ある数 x から 4 を引いて 2 乗した数が、
    x を 2 倍して 4 を引いた数に等しくなった。
    ある数 x を求めよ。
""")


def solutions():
    """(docstring)
    """
    x = sym.Symbol('x')

    # (1) を数式化: (x - 3)^2 = 2x - 3
    # (2) を数式化: (x - 4)^2 = 2x - 4
    expressions = [sym.Eq((x - 3)**2, 2*x - 3),
                   sym.Eq((x - 4)**2, 2*x - 4)]

    for idx, expr in enumerate(expressions, 1):
        print('({})\n'.format(idx))
        print('解答:')
        sym.pprint(sym.solve(expr, dict=True))
        print('')
        print('-'*79)


if __name__ == '__main__':
    print_math_problems()
    print('-'*79)
    solutions()

出力

$ python3 quadratic_functions2.py
以下の 2 次方程式の応用問題を解け。

(1) ある数 x から 3 を引いて 2 乗した数が、
    x を 2 倍して 3 を引いた数に等しくなった。
    ある数 x を求めよ。

(2) ある数 x から 4 を引いて 2 乗した数が、
    x を 2 倍して 4 を引いた数に等しくなった。
    ある数 x を求めよ。

-------------------------------------------------------------------------------
(1)

解答:
[{x: 2}, {x: 6}]

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

解答:
[{x: -√5 + 5}, {x: √5 + 5}]

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

参考文献 (数式を参考)

高校数学解法事典 第九版

高校数学解法事典 第九版