2019年12月30日月曜日

学習環境

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


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

    2. 8 a 3 + b 3 + c 3 - 6 a b c = 2 a 3 + b 3 + c 3 - 3 2 a b c = 2 a + b + c 4 a 2 + b 2 + c 2 - 2 a b - b c - 2 c a

    3. x 3 + 8 y 3 - 64 z 3 + 24 x y z = x 3 + 2 y 3 + - 4 z 3 - 3 x 2 y - 4 z = x + 2 y - 4 z x 2 + 4 y 2 + 16 z 2 - 2 x y + 8 y z + 4 z x

コード

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

print('8.')


class MyTest(TestCase):
    def test1(self):
        x, y, z = symbols('x, y, z', real=True)
        spam = [x ** 3 + y ** 3 + 1 - 3 * x * y,
                8 * x ** 3 + y ** 3 + z ** 3 - 6 * x * y * z,
                x ** 3 + 8 * y ** 3 - 64 * z ** 3 + 24 * x * y * z]

        egg = [(x + y + 1) * (x ** 2 + y ** 2 + 1 - x * y - y - x),
               (2 * x + y + z) * (4 * x ** 2 + y ** 2 +
                                  z ** 2 - 2 * x * y - y * z - 2 * z * x),
               (x + 2 * y - 4 * z) * (x ** 2 + 4 * y ** 2 + 16 * z ** 2 - 2 * x * y + 8 * y * z + 4 * z * x)]
        for s, t in zip(spam, egg):
            self.assertEqual(s.expand(), t.expand())
            self.assertEqual(s.factor(), t)


if __name__ == '__main__':
    main()

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

% ./sample8.py -v
8.
test1 (__main__.MyTest) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.094s

OK
%

0 コメント:

コメントを投稿