2017年12月23日土曜日

学習環境

数学読本〈5〉微分法の応用/積分法/積分法の応用/行列と行列式(松坂 和夫(著)、岩波書店)の第21章(もう1つの数学の基盤 - 行列と行列式)、21.3(連立1次方程式と行列式)、n = 3 の場合、問38.を取り組んでみる。


  1. ( a a ' + b c ' a b ' + b d ' c a ' + d c ' c b ' + d d ' ) = ( p q r s )
    p = a a ' + b c ' q = a b ' + b d ' r = c a ' + d c ' s = c b ' + d d '
    p s - q r = a a ' + b c ' c b ' + d d ' - a b ' + b d ' c a ' + d c ' = a c a ' b ' + a d a ' d ' + b c b ' c ' + b d c ' d ' - a c a ' b ' - a d b ' c ' - b c a ' d ' - b d c ' d ' = a d a ' d ' + b c b ' c ' - a d b ' c ' - b c a ' d '
    a d - b c a ' d ' - b ' c ' = a d a ' d ' + b c b ' c ' - a d b ' c ' - b c a ' d '

    よって、

    p s - q r = a d - b c a ' d ' - b ' c '

    ゆえに

    det A B = det A det B

コード(Emacs)

Python 3

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

a1, b1, c1, d1, a2, b2, c2, d2, p, q, r, s = symbols(
    'a1, b1, c1, d1, a2, b2, c2, d2, p, q, r, s')

A = Matrix([[a1, b1],
            [c1, d1]])
B = Matrix([[a2, b2],
            [c2, d2]])
AB = A * B

for t in [A, B, AB]:
    for s in [t, t.det()]:
        pprint(s)
        print()
    print()

print(AB.det().expand() == (A.det() * B.det()).expand())

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

$ ./sample38.py
⎡a₁  b₁⎤
⎢      ⎥
⎣c₁  d₁⎦

a₁⋅d₁ - b₁⋅c₁


⎡a₂  b₂⎤
⎢      ⎥
⎣c₂  d₂⎦

a₂⋅d₂ - b₂⋅c₂


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

(a₁⋅a₂ + b₁⋅c₂)⋅(b₂⋅c₁ + d₁⋅d₂) - (a₁⋅b₂ + b₁⋅d₂)⋅(a₂⋅c₁ + c₂⋅d₁)


True
$

0 コメント:

コメントを投稿