2020年3月20日金曜日

学習環境

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



    1. 線形写像は8。

      実際に確認。

      f0=e0,0=1,00,0

      よって線形ではない。


    2. fO=20

      よって線形ではない。


    3. fx1,y1+x2,y2=fx1+x2,y1+y2=2x1+x2,3y1+y2=2x1+2x2,3y1+3y2=2x1,3y1+2x2,3y2=fx1,y1+fx2,y2fcx,y=fcx,cy=2cx,3cy=c2x,3y=cfx,y

      よって線形写像である。


    4. fzx,y=f2x,2y=4xy,2y=2xy,y+2xy,0=2fx,y+2xy,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 コメント:

コメントを投稿