2019年12月24日火曜日

学習環境

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



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

    2. x 3 + 125 = x + 5 x 2 - 5 x + 25

    3. 2通りの方法で。

      a 6 - b 6 = a 2 - b 2 a 4 + a 2 b 2 + b 4 = a + b a - b a 2 + b 2 2 - a 2 b 2 = a + b a - b a 2 + a b + b 2 a 2 - a b + b 2 a 6 - b 6 = a 3 - b 3 a 3 + b 3 = a - b a + b a 2 + a b + b 2 a - a b + b 2

    4. 1 8 x 3 + 3 4 x 2 + 3 2 x + 1 = 1 8 x 3 + 6 x 2 + 12 x + 8 = 1 8 x + 2 3

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

コード

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

print('5.')


class MyTest(TestCase):
    def test1(self):
        x, a, b = symbols('x, a, b')
        spam = [27 * x ** 3 - 1,
                x ** 3 + 125,
                a ** 6 - b ** 6,
                x ** 3 / 8 + 3 * x ** 2 / 4 + 3 * x / 2 + 1,
                (2 * a + 3 * b) ** 3 - (2 * a - 3 * b) ** 3]
        egg = [(3 * x - 1) * (9 * x ** 2 + 3 * x + 1),
               (x + 5) * (x ** 2 - 5 * x + 25),
               (a + b) * (a - b) * (a ** 2 + a * b +
                                    b ** 2) * (a ** 2 - a * b + b ** 2),
               (x + 2) ** 3 / 8,
               18 * b * (4 * a ** 2 + 3 * b ** 2)]
        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))

% ./sample5.py -v
5.
test1 (__main__.MyTest) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.093s

OK
%

0 コメント:

コメントを投稿