2020年1月3日金曜日

学習環境

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



    1. z 2 x y z x 2 x y z y 2 x y z

    2. a x 2 z 3 x 3 y 2 z 3 2 b 2 x 3 x 3 y 2 z 3 3 c y 2 z 2 x 3 y 2 z 3

    3. 2 a - 1 2 a - 1 3 4 a - 1 a - 1 3 8 a - 1 3

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

コード

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

print('12.')


class MyTest(TestCase):
    def test(self):
        x, y, z, a, b, c = symbols('x, y, z, a, b, c')
        spam = [z / (x * y), x / (y * z), y / (z * x),
                a / (x * y ** 2), 2 * b ** 2 /
                (y ** 2 * z ** 3), 3 * c / (z * x ** 3),
                2 / (a - 1), 4 / (a - 1) ** 2, 8 / (a - 1) ** 3,
                (x ** 2 + x + 1) / (x + 1), (x ** 2 - x + 1) / (x - 1)]
        egg = [z ** 2 / (x * y * z), x ** 2 / (x * y * z), y ** 2 / (x * y * z),
               a * x ** 2 * z ** 3 / (x ** 3 * y ** 2 * z ** 3), 2 * b ** 2 * x ** 3 / (
                   x ** 3 * y ** 2 * z ** 3), 3 * c * y ** 2 * z ** 2 / (x ** 3 * y ** 2 * z ** 3),
               2 * (a - 1) ** 2 / (a - 1) ** 3, 4 *
               (a - 1) / (a - 1) ** 3, 8 / (a - 1) ** 3,
               (x ** 3 - 1) / (x ** 2 - 1), (x ** 3 + 1) / (x ** 2 - 1)]
        for s, t in zip(spam, egg):
            self.assertEqual((s - t).simplify(), 0)


if __name__ == '__main__':
    main()

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

% ./sample12.py -v
12.
test (__main__.MyTest) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.438s

OK
%

0 コメント:

コメントを投稿