Processing math: 57%

2017年6月15日木曜日

学習環境

ラング線形代数学(上)(S.ラング (著)、芹沢 正三 (翻訳)、ちくま学芸文庫)の4章(線形写像)、2(線形写像)、練習問題8-12.を取り組んでみる。


    1. F((x1,y1,z1)+(x2,y2,z2))=F(x1+x2,y1+y2,z1+z2)=(x1+x2,z1+z2)=(x1,z1)+(x2,z2)=F(x1,y1,z1)+F(x2,y2,z2)F(c(x,y,z))=F(cx,cy,cz)=(cx,cz)=c(x,z)=cF(x,y,z)

      線形である。


    2. F(X+Y)=(X+Y)=X+Y=F(X)+F(Y)F(cX)=cX=c(X)=cF(X)

      線形である。


    3. F(X+Y)=(X+Y)+(0,1,0)=X+(0,1,0)+Y+(0,1,0)(0,1,0)=F(X)+F(Y)(0,1,0)

      線形ではない。


    4. F((x1,y1)+(x2,y2))=F(x1+x2,y1+y2)=(2(x1+x2)+(y1+y2),y1+y2)=(2x1+y1,y1)+(2x2+y2,y2)=F(x1,y1)+F(x2,y2)F(c(x,y))=F(cx,cy)=(2cx+cy,cy)=c(2x+y,y)=cF(x,y)

      線形である。


    5. F( ( x 1 , y 1 )+( x 2 , y 2 ) ) =F( x 1 + x 2 , y 1 + y 2 ) =( 2( x 1 + x 2 ),( y 1 + y 2 )( x 1 + x 2 ) ) =( 2 x 1 , y 1 x 1 )+( 2 x 2 , y 2 x 2 ) =F( x 1 , y 1 )+F( x 2 , y 2 ) F( c( x,y ) ) =F( cx,cy ) =( 2cx,cycx ) =c( 2x,yx ) =cF( x,y )

      線形である。


    6. F( ( x 1 , y 1 )+( x 2 , y 2 ) ) =F( x 1 + x 2 , y 1 + y 2 ) =( y 1 + y 2 , x 1 + x 2 ) =( y 1 , x 1 )+( y 2 , x 2 ) =F( x 1 , y 1 )+F( x 2 , y 2 ) F( c( x,y ) ) =F( cx,cy ) =( cy,cx ) =c( y,x ) =cF( y,x )

      線形である。


    7. F( ( x 1 , y 1 )+( x 2 , y 2 ) ) =F( x 1 + x 2 , y 1 + y 2 ) =( x 1 + x 2 )( y 1 + y 2 ) = x 1 y 1 + x 2 y 2 + x 1 y 2 + x 2 y 1 =F( x 1 , y 1 )+F( x 2 , y 2 )+ x 1 y 2 + x 2 y 1

      線形ではない。

コード(Emacs)

Python 3

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from sympy import pprint, symbols, Matrix

x1, x2, y1, y2, z1, z2, c = symbols('x1 x2 y1 y2 z1 z2 c')
fs = [
    (lambda m: Matrix([[m[0], m[2]]]), Matrix(
        [[x1, y1, z1]]), Matrix([[x2, y2, z2]])),
    (lambda m: -m, x1, x2),
    (lambda m: m + Matrix([[0, -1, 0]]),
     Matrix([[x1, y1, z1]]), Matrix([[x2, y2, z2]])),
    (lambda m: Matrix([[2 * m[0, 0] + m[0, 1], m[0, 1]]]),
     Matrix([[x1, y1]]), Matrix([[x2, y2]])),
    (lambda m: Matrix([[2 * m[0, 0], m[0, 1] - m[0, 0]]]),
     Matrix([[x1, y1]]), Matrix([[x2, y2]])),
    (lambda m: Matrix([[m[0, 1], m[0, 0]]]),
     Matrix([[x1, y1]]), Matrix([[x2, y2]])),
    (lambda m: m[0, 0] * m[0, 1], Matrix([[x1, y1]]), Matrix([[x2, y2]]))
]

for i, (f, x, y) in enumerate(fs):
    print('({0})'.format(chr(ord('a') + i)))
    print(f(x + y).expand() == (f(x) + f(y)).expand()
          and f(c * x).expand() == (c * f(x)).expand())

入出力結果(Terminal, IPython)

$ ./sample1.py
(a)
True
(b)
True
(c)
False
(d)
True
(e)
True
(f)
True
(g)
False
$

0 コメント:

コメントを投稿