2020年5月12日火曜日

学習環境

代数への出発 (新装版 数学入門シリーズ) (松坂 和夫(著)、岩波書店)の第5章(連立方程式と高次方程式) 、問8の解答を求めてみる。



    1. 16 - 16 - 6 + 6 = 0 x - 2 2 x 2 - 3 = 0 x - 2 2 x - 3 2 x + 3 = 0 x = 2 , ± 6 2

    2. x 2 - 3 x + 2 x - 3 = 24 x 3 - 6 x 2 + 11 x - 30 = 0 125 - 150 + 55 - 30 = 0 x - 5 x 2 - x + 6 = 0 x = 1 ± 1 - 24 2 = 1 ± 23 i 2 x = 5 , 1 ± 23 i 2

    3. 5 - 12 + 1 + 6 = 0 x - 1 5 x 2 - 7 x - 6 = 0 x - 1 x - 2 5 x + 3 = 0 x = - 3 5 , 1 , 2

    4. 1 + 8 + 9 - 8 - 10 = 0 x - 1 x 3 + 9 x 2 + 18 x + 10 = 0 - 1 + 9 - 18 + 10 = 0 x - 1 x + 1 x 2 + 8 x + 10 = 0 x = - 4 ± 16 - 10 = - 4 ± 6 x = ± 1 , - 4 ± 6

    5. 4 x 2 - 1 x 2 + 3 = 0 x = ± 1 2 , ± 3 i

    6. 16 - 40 + 20 - 6 + 18 0 81 - 135 + 45 - 9 + 18 = 0 x - 3 x 3 - 2 x 2 - x - 6 = 0 27 - 18 - 3 - 6 = 0 x - 3 2 x 2 + x + 2 = 0 x = - 1 ± 1 - 8 2 = - 1 ± 7 i 2 x = 3 , - 1 ± 7 i 2

    7. x 2 - 5 x 2 - 6 x 2 - 5 x - 55 = 0 x 2 - 5 x - 11 x 2 - 5 x + 5 = 0 x = 5 ± 25 + 44 2 , 5 ± 25 - 20 2 = 5 ± 69 2 , 5 ± 5 2

    8. x 3 + x 3 + 3 x 2 + 3 x + 1 + x 3 + 6 x 2 + 12 x + 8 = x 3 + 9 x 2 + 27 x + 27 2 x 3 - 12 x - 18 = 0 x 3 - 6 x - 9 = 0 27 - 18 - 9 = 0 x - 3 x 2 + 3 x + 3 = 0 x = - 3 ± 9 - 12 2 = - 3 ± 3 i 2 x = 3 , - 3 ± 3 i 2

コード

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

print('8.')


class TestEquations(TestCase):
    def test(self):
        x = symbols('x')
        eqs = [2 * x ** 3 - 4 * x ** 2 - 3 * x + 6,
               (x - 1) * (x - 2) * (x - 3) - 24,
               5 * x ** 3 - 12 * x ** 2 + x + 6,
               x ** 4 + 8 * x ** 3 + 9 * x ** 2 - 8 * x - 10,
               4 * x ** 4 + 11 * x ** 2 - 3,
               x ** 4 - 5 * x ** 3 + 5 * x ** 2 - 3 * x + 18,
               (x ** 2 - 5 * x - 2) * (x ** 2 - 5 * x - 4) - 63,
               x ** 3 + (x + 1) ** 3 + (x + 2) ** 3 - (x + 3) ** 3]
        xss = [(2, -sqrt(6) / 2, sqrt(6) / 2),
               (5, (1 - sqrt(23) * I) / 2, (1 + sqrt(23) * I) / 2),
               (-Rational(3, 5), 1, 2),
               (-1, 1, -4 - sqrt(6), -4 + sqrt(6)),
               (-Rational(1, 2), Rational(1, 2), -sqrt(3) * I, sqrt(3) * I),
               (3, (-1 - sqrt(7) * I) / 2, (-1 + sqrt(7) * I) / 2),
               ((5 - sqrt(5)) / 2, (5 + sqrt(5)) / 2,
                (5 - sqrt(69)) / 2, (5 + sqrt(69)) / 2),
               (3, (-3 - sqrt(3) * I) / 2, (-3 + sqrt(3) * I) / 2)]
        for i, (eq, xs) in enumerate(zip(eqs, xss), 1):
            print(f'({i})')
            self.assertEqual(solveset(eq), set(xs))


if __name__ == "__main__":
    main()

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

% ./sample8.py -v
8.
test (__main__.TestEquations) ... (1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
ok

----------------------------------------------------------------------
Ran 1 test in 0.371s

OK
%

0 コメント:

コメントを投稿