2020年1月2日木曜日

学習環境

代数への出発 (新装版 数学入門シリーズ) (松坂 和夫(著)、岩波書店)の第3章(因数分解と分数式)、3(分数式とその計算)の問11の解答を求めてみる。



    1. 4 a b 16 a 2 b 3 = 1 4 a b 2

    2. x - y 2 x 2 - y 2 = x - y x + y

    3. 4 a 3 + 8 a b 2 5 a 2 = 4 a 2 + 8 b 2 5 a

    4. x 3 - x y x 2 + x y = x 2 - y x + y

    5. a 2 + 7 a + 10 a 2 + 9 a + 20 = a + 2 a + 5 a + 4 a + 5 = a + 2 a + 4

    6. x 2 - 8 x + 7 x 2 - 3 x - 28 = x - 1 x - 7 x - 7 x + 4 = x - 1 x + 4

    7. x 2 - 5 x y + 6 y 2 x 2 - 7 x y + 12 y 2 = x - 2 y x - 3 y x - 3 y x - 4 y = x - 2 y x - 4 y

    8. 2 x 2 + x - 1 x 3 + 1 = x + 1 2 x - 1 x + 1 x 2 - x + 1 = 2 x - 1 x 2 - x + 1

    9. a 3 - 4 a a 3 + 2 a 2 - 4 a - 8 = a a 2 - 2 a - 2 a 2 + 4 a + 4 = a a + 2 a - 2 a - 2 a + 2 2 = a a + 2

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols

print('11.')


class MyTest(TestCase):
    def test(self):
        x, y, a, b = symbols('x, y, a, b')
        spam = [4 * a * b / (16 * a ** 2 * b ** 3),
                (x - y) ** 2 / (x ** 2 - y ** 2),
                (4 * a ** 3 + 8 * a * b ** 2) / (5 * a ** 2),
                (x ** 3 - x * y) / (x ** 2 + x * y),
                (a ** 2 + 7 * a + 10) / (a ** 2 + 9 * a + 20),
                (x ** 2 - 8 * x + 7) / (x ** 2 - 3 * x - 28),
                (x ** 2 - 5 * x * y + 6 * y ** 2) /
                (x ** 2 - 7 * x * y + 12 * y ** 2),
                (2 * x ** 2 + x - 1) / (x ** 3 + 1),
                (a ** 3 - 4 * a) / (a ** 3 + 2 * a ** 2 - 4 * a - 8)]
        egg = [1 / (4 * a * b ** 2),
               (x - y) / (x + y),
               (4 * a ** 2 + 8 * b ** 2) / (5 * a),
               (x ** 2 - y) / (x + y),
               (a + 2) / (a + 4),
               (x - 1) / (x + 4),
               (x - 2 * y) / (x - 4 * y),
               (2 * x - 1) / (x ** 2 - x + 1),
               a / (a + 2)]
        for s, t in zip(spam, egg):
            self.assertEqual(s.simplify(), t.simplify())


if __name__ == '__main__':
    main()

入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))

% ./sample11.py -v
11.
test (__main__.MyTest) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.723s

OK
%

0 コメント:

コメントを投稿