2020年1月31日金曜日

学習環境

ラング線形代数学(上) (ちくま学現文庫)(S.ラング (著)、芹沢 正三 (翻訳)、筑摩書房)の3章(行列)、1(1次方程式)、練習問題4の解答を求めてみる。



    1. -x-2iy=ix+iy=2-iy=2+iy=-1+2ix=2-iy=2-i-1+2i=4+i

    2. {2x+iy-1+iz=12x-4y+2iz=02x+2iy-2+4iz=2ii+4y+-1-3iz=1iy+-1-3iz=2i-14y=2-2iy=1-i2i·1-i2+-1-3iz=2i-1-1-3iz=2i-1-i+12-1-3iz=-3+3i2z=31-i21+3i=31-i1-3i21+9=3-2-4i20=-3-6i10x=2y-iz=1-i+3i-610=4-7i10

    3. 1+2ix=3-ix=3-i1+2i=3-i1-2i5=1-7i5y=1+i1-7i5=8-6i5

    4. ix-2+iy=1ix+1+2iy=-1+i-3-3iy=2-iy=2-i-31+i=2-i1-i-3·2..=1-3i-3·2=-1+3i6x=1+i-2-i·-1+3i6=1+i-1+7i6=5-i6

コード

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

print('4.')

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


class MyTestCase(TestCase):
    def test_a(self):
        s = solve((I * x - 2 * y - 1, x + I * y - 2))
        self.assertEqual(s[x].expand(), 4 + I)
        self.assertEqual(s[y].expand(), -1 + 2 * I)

    def test_b(self):
        self.assertEqual(solve((2 * x + I * y - (1 + I) * z - 1,
                                x - 2 * y + I * z,
                                -I * x + y - (2 - I) * z - 1)),
                         {x: (4 - 7 * I) / 10, y: (1 - I) / 2, z: (-3 - 6 * I) / 10})

    def test_c(self):
        s = solve(((1 + I) * x - y,
                   I * x + y - (3 - I)))
        self.assertEqual(s[x].expand(), ((1 - 7 * I) / 5).expand())
        self.assertEqual(s[y].expand(), ((8 - 6 * I) / 5).expand())

    def test_d(self):
        s = solve((I * x - (2 + I) * y - 1,
                   x + (2 - I) * y - (1 + I)))
        self.assertEqual(s[x].expand(), ((5 - I) / 6).expand())
        self.assertEqual(s[y].expand(), ((-1 + 3 * I) / 6).expand())


if __name__ == '__main__':
    main()

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

% ./sample4.py -v
4.
test_a (__main__.MyTestCase) ... ok
test_b (__main__.MyTestCase) ... ok
test_c (__main__.MyTestCase) ... ok
test_d (__main__.MyTestCase) ... ok

----------------------------------------------------------------------
Ran 4 tests in 0.729s

OK
%

0 コメント:

コメントを投稿