2020年4月18日土曜日

学習環境

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


  1. 直方体の縦、横、高さをそれぞれ a、 b、c とする。

    問題の仮定より、

    a>0,b>0,c>0{2ab+bc+ca=3762a+1b+bc+ca+1=376+362ab+1+b+1c+1+c+1a=376+70

    この連立3元2次方程式の解を求める。

    {ab+bc+ca=188ab+bc+ca+b+c=206ab+a+bc+b+c+1+ca+c=223b+c=206-188b+c=18206+a+c=222a+c=16b=18-ca=16-c16-c18-c+18-cc+c16-c=188c2-34c+16·18+18c-c2+16c-c2=188c2=100c=10b=8a=6

    よって問題の直方体の縦、横、高さのはそれぞれ6 cm、 8 cm、10 cm。

コード

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

print('14.')

x, y, z = symbols('x, y, z', positive=True)


def s(a, b, c):
    return 2 * (a * b + b * c + c * a)


class TestRightTriangleSides(TestCase):
    def test(self):
        self.assertEqual(solve([s(x, y, z) - 376,
                                s(x + 1, y, z) - (376 + 36),
                                s(x + 1, y + 1, z) - (376 + 70)]),
                         [{x: 6, y: 8, z: 10}])


if __name__ == "__main__":
    main()

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

% ./sample14.py -v
14.
test (__main__.TestRightTriangleSides) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.325s

OK
%

0 コメント:

コメントを投稿