2019年12月31日火曜日

学習環境

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



    1. a4-b2c2+a2c2-b4=a2-b2a2+b2+c2a2-b2=a+ba-ba2+b2+c2

    2. x3-y3-x2+2xy-y2=x-yx2+xy+y2-x-y2=x-yx2+xy+y2-x+y

    3. a4+2a3b-2ab3-b4=a2-b2a2+b2+2aba2-b2=a+ba-ba+b2=a+b3a-b

    4. 3x3+x2y+2y3=3x3+3y3-y3+x2y=3x+yx2-xy+y2-yy2-x2=3x+yx2-xy+y2+yx+yx-y=x+y3x2-3xy+3y2+xy-y2=x+y3x2-2xy+2y2

    5. a3+3ab2+4b3=a3+b3+3b3+3ab2=a+ba2-ab+b2+3b2a+b=a+ba2-ab+4b2

    6. a+b+c3-a3-b3-c3=a3+3a2b+c+3ab+c2+b+c3-a3-b3-c3=3a2b+c+3ab+c2+3b2c+3bc2=3a2b+c+3ab+c2+3bcb+c=3b+ca2+ab+c+bc=3b+ca+ba+c=3a+bb+cc+a

    7. x2+x-2x2+x+1-28=x2+x2-x2+x-30=x2+x-6x2+x+5=x+3x-2x2+x+5

    8. 2x2-3x2x2-3x-6+5=2x2-3x2-62x2-3x+5=2x2-3x-12x2-3x-5=2x2-3x-12x-5x+1

コード

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

print('9.')


class MyTest(TestCase):
    def test1(self):
        x, y, z, a, b, c = symbols('x, y, z, a, b, c', real=True)
        spam = [a ** 4 - b ** 2 * c ** 2 + a ** 2 * c ** 2 - b ** 4,
                (x ** 3 - y ** 3 - x ** 2 + 2 * x * y - y ** 2),
                a ** 4 + 2 * a ** 3 * b - 2 * a * b ** 3 - b ** 4,
                3 * x ** 3 + x ** 2 * y + 2 * y ** 3,
                a ** 3 + 3 * a * b ** 2 + 4 * b ** 3,
                (a + b + c) ** 3 - a ** 3 - b ** 3 - c ** 3,
                (x ** 2 + x - 2) * (x ** 2 + x + 1) - 28,
                (2 * x ** 2 - 3 * x) * (2 * x ** 2 - 3 * x - 6) + 5]

        egg = [(a + b) * (a - b) * (a ** 2 + b ** 2 + c ** 2),
               (x - y) * (x ** 2 + x * y + y ** 2 - x + y),
               (a + b) ** 3 * (a - b),
               (x + y) * (3 * x ** 2 - 2 * x * y + 2 * y ** 2),
               (a + b) * (a ** 2 - a * b + 4 * b ** 2),
               3 * (a + b) * (b + c) * (c + a),
               (x + 3) * (x - 2) * (x ** 2 + x + 5),
               (2 * x ** 2 - 3 * x - 1) * (2 * x - 5) * (x + 1)]
        for s, t in zip(spam, egg):
            self.assertEqual(s.expand(), t.expand())
            self.assertEqual(s.factor(), t.factor())


if __name__ == '__main__':
    main()

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

% ./sample9.py -v
9.
test1 (__main__.MyTest) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.194s

OK
%

0 コメント:

コメントを投稿