2020年3月20日金曜日

学習環境

ラング線形代数学(上) (ちくま学現文庫)(S.ラング (著)、芹沢 正三 (翻訳)、筑摩書房)の4章(線形写像)、2(線形写像)、練習問題8の解答を求めてみる。



    1. 線形写像は8。

      実際に確認。

      f 0 = e 0 , 0 = 1 , 0 0 , 0

      よって線形ではない。


    2. f O = 2 0

      よって線形ではない。


    3. f x 1 , y 1 + x 2 , y 2 = f x 1 + x 2 , y 1 + y 2 = 2 x 1 + x 2 , 3 y 1 + y 2 = 2 x 1 + 2 x 2 , 3 y 1 + 3 y 2 = 2 x 1 , 3 y 1 + 2 x 2 , 3 y 2 = f x 1 , y 1 + f x 2 , y 2 f c x , y = f c x , c y = 2 c x , 3 c y = c 2 x , 3 y = c f x , y

      よって線形写像である。


    4. f z x , y = f 2 x , 2 y = 4 x y , 2 y = 2 x y , y + 2 x y , 0 = 2 f x , y + 2 x y , 0

      よって線形ではない。

コード

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


print('8.')
t, x, y = symbols('t, x, y')
xs = symbols('x:4')


class MyTestCase(TestCase):
    def test4(self):
        self.assertNotEqual(Matrix([exp(t), t]).subs({t: 0}), Matrix([0, 0]))

    def test7(self):
        a = Matrix([1, 1, -1, 3])
        self.assertNotEqual(Matrix(xs).subs({z: 0 for z in xs}).dot(a) + 2, 0)

    def test8(self):
        f = Matrix([2 * x, 3 * y])
        x0, x1 = symbols('x:2')
        y0, y1 = symbols('y:2')
        c = symbols('c')
        self.assertEqual(f.subs({x: x0 + x1, y: y0 + y1}),
                         f.subs({x: x0, y: y0}) + f.subs({x: x1, y: y1}))
        self.assertEqual(f.subs({x: c * x, y: c * y}), c * f)

    def test9(self):
        f = Matrix([x * y, y])
        self.assertNotEqual(f.subs({x: 2 * x, y: 2 * y}), 2 * f)


if __name__ == "__main__":
    main()

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

% ./sample8.py -v
8.
test4 (__main__.MyTestCase) ... ok
test7 (__main__.MyTestCase) ... ok
test8 (__main__.MyTestCase) ... ok
test9 (__main__.MyTestCase) ... ok

----------------------------------------------------------------------
Ran 4 tests in 0.051s

OK
%

0 コメント:

コメントを投稿