2020年3月31日火曜日

学習環境

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



    1. x=-1-2y3-1-2y-4y=17-3-6y-4y=17y=-2x=3

    2. x=28-6y56-12y+y=12y=4x=4

    3. {6x-5y=-166x+2y=107y=26y=2673x+267=53x=97x=37

    4. 1-23y=-1+12y12+23y=23+4y=12y=127x=1-23·127=21-2421=-17

    5. {5x+2y=122x+5y=-12{10x+4y=2410x+25y=-6021y=-84y=-42x-20=-12x=4

    6. {x-y+3y=34x+3y=2{x+2y=34x+3y=2x=3-2y12-8y+3y=2y=2x=-1

    7. {x+3y=1x-2y=05y=1y=15x=25

    8. {4y-3x=-xy6y+x=4xyx=6y4y-14y-18y4y-1=-6y24y-144y-1-18=-6y24y-1-9=-3y11y=11y=1x=2

コード

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

print('1.')

x, y = symbols('x, y', real=True)
eqss = [(x + 2 * y + 1, 3 * x - 4 * y - 17),
        (2 * x + y - 12, x + 6 * y - 28),
        (6 * x - 5 * y + 16, 3 * x + y - 5),
        (x + 2 * y / 3 - 1, x - y / 2 + 1),
        (Rational(5, 10) * x + Rational(2, 10) * y - Rational(12, 10),
         x / 2 + 5 * y / 4 + 3),
        ((x - y) / 3 + y - 1, 4 * x + 3 * y - 2),
        (2 * x + 3 * y - 1 - x, 2 * (x - y) - x),
        (4 / x - 3 / y + 1, 6 / x + 1 / y - 4)]
xys = [(3, -2),
       (4, 4),
       (Rational(3, 7), Rational(26, 7)),
       (-Rational(1, 7), Rational(12, 7)),
       (4, -4),
       (-1, 2),
       (Rational(2, 5), Rational(1, 5)),
       (2, 1)]


class Test(TestCase):
    def test(self):
        for i, (eqs, (x0, y0)) in enumerate(zip(eqss, xys), 1):
            s = solve(eqs)
            d = {x: x0, y: y0}
            if type(s) == list:
                self.assertEqual(s, [d])
            else:
                self.assertEqual(s, d)


if __name__ == "__main__":
    main()

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

% ./sample1.py -v
1.
test (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.309s

OK
%

0 コメント:

コメントを投稿