学習環境
- Surface
- Windows 10 Pro (OS)
- Nebo(Windows アプリ)
- iPad
- MyScript Nebo - MyScript(iPad アプリ(iOS))
- 参考書籍
代数への出発 (新装版 数学入門シリーズ) (松坂 和夫(著)、岩波書店)の第5章(連立方程式と高次方程式)、1(連立1次方程式)、問2の解答を求めてみる。
コード
#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, solve
print('2.')
x, y, z, u = symbols('x, y, z, u', real=True)
eqss = [(2 * x - 3 * y - 4 * z + 4,
3 * x + 4 * y - 2 * z + 11,
4 * x - 2 * y + 3 * z - 17),
(x + y - z - 14,
x - y + z - 10,
x - y - z),
(x - 4 * y + 2 * z - 3,
2 * x + y - z - 5,
3 * x + y + 2 * z - 14),
(2 * x - y + z + 1,
5 * y - 3 * z - 1,
6 * x - y + 5 * z - 7),
((3 * x + 2 * y) / 4 - 2,
(3 * y + z) / 5 - 2,
(5 * x + y - z) / 6 - 2),
(y + z + u - 9,
z + u + x - 8,
u + x + y - 7,
x + y + z - 6),
(x + y + z + 3 * u - 2,
x + y + 3 * z + u + 6,
x + 3 * y + z + u,
3 * x + y + z + u - 4),
(x - (2 * y + 2),
y - (2 * z - 4),
z - (2 * u + 5),
u - (2 * x + 2))]
xyzus = [(1, -2, 3),
(12, 7, 5),
(3, 1, 2),
(-1, 2, 3),
(-6, 13, -29),
(1, 2, 3, 4),
(2, 0, -3, 1),
(-2, -2, 1, -2)]
class Test(TestCase):
def test3(self):
for eqs, (x0, y0, z0) in zip(eqss[0:5], xyzus[:5]):
s = solve(eqs)
d = {x: x0, y: y0, z: z0}
if type(s) == list:
self.assertEqual(s, [d])
else:
self.assertEqual(s, d)
def test4(self):
for eqs, (x0, y0, z0, u0) in zip(eqss[5:], xyzus[5:]):
s = solve(eqs)
d = {x: x0, y: y0, z: z0, u: u0}
if type(s) == list:
self.assertEqual(s, [d])
else:
self.assertEqual(s, d)
if __name__ == "__main__":
main()
入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))
% ./sample2.py -v
2.
test3 (__main__.Test) ... ok
test4 (__main__.Test) ... ok
----------------------------------------------------------------------
Ran 2 tests in 0.106s
OK
%
0 コメント:
コメントを投稿