2020年4月25日土曜日

学習環境

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


  1. A 1 = 1 - 3 + 2 = 0 B 1 0 C 1 = 1 + 3 - 4 = 0

    よって、

    x - 1

    を因数にもつのは A と C。

    A - 1 = - 1 + 3 + 2 0 B - 1 = - 1 - 1 + 10 0 C - 1 = 1 + 3 - 4 = 0

    よって

    x + 1

    を因数にもつのは C。

    A - 2 = - 8 + 6 + 2 = 0 B - 2 = - 8 - 2 + 10 = 0 C - 2 = 16 + 12 - 4 0

    よって

    x + 2

    を因数にもつのは A と B。


  2. 整式

    P x

    2 x 2 + x - 1

    で割った余りの次数は1以下なので、求める余りを

    a x + b

    とおく。

    このとき、

    Q x

    とある整式とし、

    P x = Q x 2 x 2 + x - 1 + a x + b = Q x x + 1 2 x - 1 + a x + b

    とおくことができる。

    問題の仮定より、この整式を

    x + 1 2 x - 1

    で割った余りはそれぞれ6、 3なので

    P - 1 = - a + b = 6 P 1 2 = 1 2 a + b = 3

    この連立2元1次方程式を解く。

    3 2 a = - 3 a = - 2 b = 4

    よって、求める余りは

    - 2 x + 4

  3. x 2 - 4 = x + 2 x - 2 { - 8 + 4 p - 2 q + 6 = 0 8 + 4 p + 2 q + 6 = 0 16 + 4 q = 0 q = - 4 - 8 + 4 p + 8 + 6 = 0 p = - 3 2

コード

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

print('17, 18, 19.')

x = symbols('x', real=True)


class TestFactorTheorem(TestCase):
    def test_17(self):
        a = x ** 3 - 3 * x + 2
        b = x ** 3 + x + 10
        c = x ** 4 + 3 * x ** 2 - 4
        ts = [(True, False, True),
              (False, False, True),
              (True, True, False)]
        for x0, blns in zip([1, -1, -2], ts):
            for p,  bln in zip([a, b, c], blns):
                self.assertEqual(p.subs({x: x0}) == 0, bln)

    def test_18(self):
        a, b = symbols('a, b', real=True)
        p = (2 * x ** 2 + x - 1) + a * x + b
        self.assertEqual(solve([p.subs({x: -1}) - 6,
                                p.subs({x: Rational(1, 2)}) - 3]),
                         {a: -2, b: 4})

    def test_19(self):
        p = -Rational(3, 2)
        q = -4
        expr = x ** 3 + p * x ** 2 + q * x + 6
        for x0 in [-2, 2]:
            self.assertEqual(expr.subs({x: x0}), 0)


if __name__ == "__main__":
    main()

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

% ./sample17.py -v
17, 18, 19.
test_17 (__main__.TestFactorTheorem) ... ok
test_18 (__main__.TestFactorTheorem) ... ok
test_19 (__main__.TestFactorTheorem) ... ok

----------------------------------------------------------------------
Ran 3 tests in 0.054s

OK
%

0 コメント:

コメントを投稿