2020年5月17日日曜日

学習環境

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


  1. x 2 - x - 2 = 0 x - 2 x + 1 = 0 x = - 1 , 2

    問題の3次方程式が解-1または2をもつためには、

    - 2 - 5 + 4 + a = 0 a = 3 16 - 20 - 8 + a = 0 a = 12

    a が3のとき、 3次方程式 の解は

    2 x 3 - 5 x 2 - 4 x + 3 = 0 x + 1 2 x 2 - 7 x + 3 = 0 x + 1 2 x - 1 x - 3 = 0 x = - 1 , 1 2 , 3

    a が12の場合、

    2 x 3 - 5 x 2 - 4 x + 12 = 0 x - 2 2 x 2 - x - 6 = 0 x - 2 2 x + 3 x - 2 = 0 x = - 3 2 , 2

コード

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

print('11.')

x, a, b = symbols('x, a, b')
eq1 = 2 * x ** 3 - 5 * x ** 2 - 4 * x + a
eq2 = x ** 2 - x - 2
xs = solveset(eq2)


class TestEquations(TestCase):
    def test1(self):
        self.assertEqual(xs, {-1, 2})

    def test2(self):
        self.assertEqual(solveset(eq1.subs({a: 3})),
                         {-1, Rational(1, 2), 3})

    def test3(self):
        self.assertEqual(solveset(eq1.subs({a: 12})),
                         {-Rational(3, 2), 2})


if __name__ == "__main__":
    main()

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

% ./sample11.py -v
11.
test1 (__main__.TestEquations) ... ok
test2 (__main__.TestEquations) ... ok
test3 (__main__.TestEquations) ... ok

----------------------------------------------------------------------
Ran 3 tests in 0.044s

OK
%

0 コメント:

コメントを投稿