2019年12月26日木曜日

学習環境

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



    1. x 2 - x y - 6 y 2 - x + 23 y - 20 = x 2 - y + 1 x - 6 y 2 - 23 y + 20 = x 2 - y + 1 x - 2 y - 5 3 y - 4 = x + 2 y - 5 x - 3 y - 4 = x + 2 y - 5 x - 3 y + 4

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

    3. 2 x 2 + 5 x y - 3 y 2 - 4 x + 23 y - 30 = 2 x 2 + 5 y - 4 x - 3 y 2 - 23 y + 30 = 2 x 2 + 5 y - 4 x - 3 y - 5 y - 6 = 2 x - y + 6 x + 3 y - 5

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

    5. 2 x 2 + x y - y 2 + 10 x + 4 y + 12 = 2 x 2 + y + 10 x - y 2 - 4 y - 12 = 2 x 2 + y + 10 x - y - 6 y + 2 = 2 x - y + 6 x + y + 2

    6. a 5 a + 2 b - 19 a - 6 b + 12 = 2 a - 3 b + 5 a 2 - 19 a + 12 = 2 a - 3 b + 5 a - 4 a - 3 = a - 3 5 a + 2 b - 4

コード

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

print('6.')


class MyTest(TestCase):
    def test1(self):
        x, y = symbols('x, y')
        spam = [x ** 2 - x * y - 6 * y ** 2 - x + 23 * y - 20,
                2 * x ** 2 - 3 * x * y - 2 * y ** 2 + x + 3 * y - 1,
                2 * x ** 2 + 5 * x * y - 3 * y ** 2 - 4 * x + 23 * y - 30,
                x ** 2 + (2 * y - 3) * x - (3 * y ** 2 + y - 2),
                2 * x ** 2 + x * y - y ** 2 + 10 * x + 4 * y + 12,
                x * (5 * x + 2 * y) - 19 * x - 6 * y + 12]
        egg = [(x + 2 * y - 5) * (x - 3 * y + 4),
               (2 * x + y - 1) * (x - 2 * y + 1),
               (2 * x - y + 6) * (x + 3 * y - 5),
               (x + 3 * y - 2) * (x - y - 1),
               (2 * x - y + 6) * (x + y + 2),
               (x - 3) * (5 * x + 2 * y - 4)]
        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))

% ./sample6.py -v
6.
test1 (__main__.MyTest) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.121s

OK
%

0 コメント:

コメントを投稿