2019年12月28日土曜日

学習環境

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



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

    2. 4 a 4 - 36 a 2 b 2 + 25 b 4 = 2 a 2 - 5 b 2 2 - 16 a 2 b 2 = 2 a 2 - 4 a b - 5 b 2 2 a 2 + 4 a b - 5 b 2

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

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

コード

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

print('7.')


class MyTest(TestCase):
    def test1(self):
        x, y = symbols('x, y', real=True)
        spam = [x ** 4 + 2 * x ** 2 + 9,
                4 * x ** 4 - 36 * x ** 2 * y ** 2 + 25 * y ** 4,
                4 * x ** 4 + 1,
                x ** 8 + x ** 4 + 1]
        egg = [(x ** 2 + 2 * x + 3) * (x ** 2 - 2 * x + 3),
               (2 * x ** 2 - 4 * x * y - 5 * y ** 2) *
               (2 * x ** 2 + 4 * x * y - 5 * y**2),
               (2 * x ** 2 + 2 * x + 1) * (2 * x ** 2 - 2 * x + 1),
               (x ** 2 + x + 1) * (x ** 2 - x + 1) * (x ** 4 - x ** 2 + 1)]
        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))

% ./sample7.py -v
7.
test1 (__main__.MyTest) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.082s

OK
%

0 コメント:

コメントを投稿