2017年11月2日木曜日

学習環境

ラング線形代数学(上)(S.ラング (著)、芹沢 正三 (翻訳)、ちくま学芸文庫)の2章(ベクトル空間)、3(基底)、練習問題3.を取り組んでみる。


    1. a( 1,1,1 )+b( 1,1,0 )+c( 1,0,1 )=( 1,0,0 ) ab+c=1 a+b=0 ac=0 c=a b=a a+a+a=1 a= 1 3 b= 1 3 c= 1 3 ( 1 3 , 1 3 , 1 3 )

    2. a( 0,1,1 )+b( 1,1,0 )+c( 1,0,2 )=( 1,1,1 ) b+c=1 a+b=1 a+2c=1 c=1b a=1b 1+b+22b=1 b=0 c=1 a=1 ( 1,0,1 )

    3. a( 1,1,1 )+b( 1,1,0 )+c( 1,0,1 )=( 0,0,1 ) ab+c=0 a+b=0 ac=1 b=a c=a1 a+a+a1=0 3a=1 a= 1 3 b= 1 3 c= 1 3 1= 2 3 ( 1 3 , 1 3 , 2 3 )

コード(Emacs)

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, Matrix, solve

print('3.')
a, b, c = symbols('a b c')
vs = [((1, 0, 0), (1, 1, 1), (-1, 1, 0), (1, 0, -1)),
      ((1, 1, 1), (0, 1, -1), (1, 1, 0), (1, 0, 2)),
      ((0, 0, 1), (1, 1, 1), (-1, 1, 0), (1, 0, -1))]

for i, (x0, a0, b0, c0) in enumerate(vs):
    print(f'({chr(ord("a") + i)})')
    X = Matrix(x0)
    A = Matrix(a0)
    B = Matrix(b0)
    C = Matrix(c0)
    eq = (a * A + b * B + c * C) - X
    for t in [eq, solve(eq, dict=True)]:
        pprint(t)
        print()
    print()

入出力結果(Terminal, Jupyter(IPython))

$ ./sample3.py
3.
(a)
⎡a - b + c - 1⎤
⎢             ⎥
⎢    a + b    ⎥
⎢             ⎥
⎣    a - c    ⎦

[{a: 1/3, b: -1/3, c: 1/3}]


(b)
⎡ b + c - 1  ⎤
⎢            ⎥
⎢ a + b - 1  ⎥
⎢            ⎥
⎣-a + 2⋅c - 1⎦

[{a: 1, b: 0, c: 1}]


(c)
⎡a - b + c⎤
⎢         ⎥
⎢  a + b  ⎥
⎢         ⎥
⎣a - c - 1⎦

[{a: 1/3, b: -1/3, c: -2/3}]


$

0 コメント:

コメントを投稿