2020年4月25日土曜日

学習環境

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


  1. A1=1-3+2=0B10C1=1+3-4=0

    よって、

    x-1

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

    A-1=-1+3+20B-1=-1-1+100C-1=1+3-4=0

    よって

    x+1

    を因数にもつのは C。

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

    よって

    x+2

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


  2. 整式

    Px

    2x2+x-1

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

    ax+b

    とおく。

    このとき、

    Qx

    とある整式とし、

    Px=Qx2x2+x-1+ax+b=Qxx+12x-1+ax+b

    とおくことができる。

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

    x+12x-1

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

    P-1=-a+b=6P12=12a+b=3

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

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

    よって、求める余りは

    -2x+4

  3. x2-4=x+2x-2{-8+4p-2q+6=08+4p+2q+6=016+4q=0q=-4-8+4p+8+6=0p=-32

コード

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

コメントを投稿