2019年12月24日火曜日

学習環境

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



    1. 27x3-1=3x-19x2+3x+1

    2. x3+125=x+5x2-5x+25

    3. 2通りの方法で。

      a6-b6=a2-b2a4+a2b2+b4=a+ba-ba2+b22-a2b2=a+ba-ba2+ab+b2a2-ab+b2a6-b6=a3-b3a3+b3=a-ba+ba2+ab+b2a-ab+b2

    4. 18x3+34x2+32x+1=18x3+6x2+12x+8=18x+23

    5. 2a+3b3-2a-3b3=2a+3b-2a-3b2a+3b2+2a+3b2a-3b+2a-3b2=6b4a2+6ab+9b2+4a2-9b2+4a2-6ab+9b2=6b12a2+9b2=18b4a2+3b2

コード

#!/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 コメント:

コメントを投稿