2020年1月3日金曜日

学習環境

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



    1. z2xyzx2xyzy2xyz

    2. ax2z3x3y2z32b2x3x3y2z33cy2z2x3y2z3

    3. 2a-12a-134a-1a-138a-13

    4. x-1x2+x+1x2-1=x3+1x2-1x+1x2-x+1x2-1=x3-1x2-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 コメント:

コメントを投稿