2020年4月8日水曜日

学習環境

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


  1. 甲、乙、丙の容器に入っている食塩水の濃度をそれぞれ a、 b、 c %とする。

    問題の仮定より、

    { a 100 + b 100 + c 100 = 3 · 10 100 2 5 · a 100 + 3 5 · b 100 = 7 100 3 5 · b 100 + 2 5 · c 100 = 9 100

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

    a + b + c = 30 2 a + 3 b = 35 3 b + 2 c = 45 b = 35 - 2 a 3 c = 45 - 3 b 2 = 45 - 35 + 2 a 2 = 5 + a a + 35 - 2 a 3 + 5 + a = 30 3 a + 35 - 2 a + 15 + 3 a = 90 4 a = 40 a = 10 b = 5 c = 15

    よって、甲、乙、 丙の食塩水の濃度はそれぞれ10%、 5%、15%。

コード

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

print('7.')

a, b, c = symbols('a, b, c', real=True, nonnegative=True)
x, y = symbols('x, y', real=True, nonnegative=True)


class Test(TestCase):
    def test(self):
        s = solve([x * a + x * b + x * c - 3 * x * 10,
                   2 * a + 3 * b - 5 * 7,
                   3 * b + 2 * c - 5 * 9])
        self.assertEqual(len(s), 1)
        self.assertEqual(s[0], {a: 10, b: 5, c: 15})


if __name__ == "__main__":
    main()

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

% ./sample7.py -v
7.
test (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.340s

OK
%

0 コメント:

コメントを投稿