2020年3月22日日曜日

学習環境

代数への出発 (新装版 数学入門シリーズ) (松坂 和夫(著)、岩波書店)の第4章(1次方程式, 2次方程式 )、練習問題18、19の解答を求めてみる。


  1. a 2 - 2 a b + 3 + a 2 - 2 a - 8 i = 0 a 2 - 2 a - 8 = 0 a - 4 a + 2 = 0 a = - 2 , 4 4 + 4 b + 3 = 0 b = - 7 4 16 - 8 b + 3 = 0 b = 19 8

    よって、 求める a、 b の値は

    a = - 2 , b = - 7 4

    または

    a = 4 , b = 19 8

  2. b 0 a + b i 3 = a 3 + 3 a 2 b i + 3 a b i 2 + b i 3 = a 3 - 3 a b 2 + 3 a 2 b - b 3 i

    これが実数なので、

    3 a 2 b - b 3 = 0 b 3 a 2 - b 2 = 0 ± 3 a

    よって、 定数を a で表すと、

    a 3 - 3 a · 3 a 2 = - 8 a 3

コード

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

print('18, 19.')


class MyTestCase(TestCase):
    def test18(self):
        a, b = symbols('a, b', real=True)
        s = solve(a ** 2 * (1 + I) - 2 * a * (b + I) + (3 - 8 * I))
        self.assertEqual(s, [{a: -2, b: -Rational(7, 4)},
                             {a: 4, b: Rational(19, 8)}])

    def test19(self):
        a = symbols('a', real=True)
        b = symbols('b', nonzero=True, real=True)
        alpha = a + b * I
        r, i = (alpha ** 3).as_real_imag()
        bs = solve(i, b)
        self.assertGreater(len(bs), 1)
        for b0 in bs:
            self.assertEqual(r.subs({b: b0}), -8 * a ** 3)


if __name__ == "__main__":
    main()

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

% ./sample18.py -v
18, 19.
test18 (__main__.MyTestCase) ... ok
test19 (__main__.MyTestCase) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.352s

OK
%

0 コメント:

コメントを投稿