2020年5月12日火曜日

学習環境

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



    1. 16-16-6+6=0x-22x2-3=0x-22x-32x+3=0x=2,±62

    2. x2-3x+2x-3=24x3-6x2+11x-30=0125-150+55-30=0x-5x2-x+6=0x=1±1-242=1±23i2x=5,1±23i2

    3. 5-12+1+6=0x-15x2-7x-6=0x-1x-25x+3=0x=-35,1,2

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

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

    6. 16-40+20-6+18081-135+45-9+18=0x-3x3-2x2-x-6=027-18-3-6=0x-32x2+x+2=0x=-1±1-82=-1±7i2x=3,-1±7i2

    7. x2-5x2-6x2-5x-55=0x2-5x-11x2-5x+5=0x=5±25+442,5±25-202=5±692,5±52

    8. x3+x3+3x2+3x+1+x3+6x2+12x+8=x3+9x2+27x+272x3-12x-18=0x3-6x-9=027-18-9=0x-3x2+3x+3=0x=-3±9-122=-3±3i2x=3,-3±3i2

コード

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

コメントを投稿