Loading [MathJax]/jax/output/HTML-CSS/jax.js

2017年12月6日水曜日

学習環境

数学読本〈5〉微分法の応用/積分法/積分法の応用/行列と行列式(松坂 和夫(著)、岩波書店)の第21章(もう1つの数学の基盤 - 行列と行列式)、21.2(行列式)、2次の行列式の諸性質、D4、D5.を取り組んでみる。


  1. det(b,a)=|b1a1b2a2|=b1a2-a1b2=-(a1b2-b1a2)=-|a1b1a2b2|=-det(a,b)

  2. det(a+kb,b)=|a1+kb1b1a2+kb2b2|=(a1+kb1)b2-b1(a2+kb2)=a1b2+kb1b2-b1a2-kb1b2=a1b2-b1a2=|a1b1a2b2|=det(a,b)
    det(a,b+ka)=|a1b1+ka,a2b2+ka2|=a1(b2+ka2)-(b1+ka1)a2=a1b2+ka1a2-b1a2-ka1a2=a1b2-b1a2=|a1b1a2b2|=det(a,b)

コード(Emacs)

Python 3

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

print('D4')
a1, a2, b1, b2, k = symbols('a1, a2, b1, b2, k')

X = Matrix([[a1, b1],
            [a2, b2]])
Y = Matrix([[b1, a1],
            [b2, a2]])

for t in [X, Y, Y.det(), Y.det() == -X.det()]:
    pprint(t)
    print()

print('D5')
X = Matrix([[a1 + k * b1, b1],
            [a2 + k * b2, b2]])
Y = Matrix([[a1, b1],
            [a2, b2]])

for t in [X, Y, X.det(), X.det().factor() == Y.det().factor()]:
    pprint(t)
    print()

X = Matrix([[a1, b1 + k * a1],
            [a2, b2 + k * a2]])
Y = Matrix([[a1, b1],
            [a2, b2]])

for t in [X, Y, X.det(), X.det().factor() == Y.det().factor()]:
    pprint(t)
    print()

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

$ ./sample0.py
D4
⎡a₁  b₁⎤
⎢      ⎥
⎣a₂  b₂⎦

⎡b₁  a₁⎤
⎢      ⎥
⎣b₂  a₂⎦

-a₁⋅b₂ + a₂⋅b₁

True

D5
⎡a₁ + b₁⋅k  b₁⎤
⎢             ⎥
⎣a₂ + b₂⋅k  b₂⎦

⎡a₁  b₁⎤
⎢      ⎥
⎣a₂  b₂⎦

-b₁⋅(a₂ + b₂⋅k) + b₂⋅(a₁ + b₁⋅k)

True

⎡a₁  a₁⋅k + b₁⎤
⎢             ⎥
⎣a₂  a₂⋅k + b₂⎦

⎡a₁  b₁⎤
⎢      ⎥
⎣a₂  b₂⎦

a₁⋅(a₂⋅k + b₂) - a₂⋅(a₁⋅k + b₁)

True

$

0 コメント:

コメントを投稿