2017年11月29日水曜日

学習環境

数学読本〈5〉微分法の応用/積分法/積分法の応用/行列と行列式(松坂 和夫(著)、岩波書店)の第21章(もう1つの数学の基盤 - 行列と行列式)、21.1(行列とその演算)、逆行列、問20.を取り組んでみる。


  1. 逆行列をもつ行列 A、 B を

    A = ( a b c d ) , β = ( e f g h )

    とすると、各逆行列は、

    A - 1 = 1 a d - b c ( d - b - c a ) , B - 1 = 1 e h - f g ( h - f - g e )

    よって、

    B - 1 A - 1 = 1 a d - b c e h - f g ( d h + c f - b h - a f - dg - c e b g + a e )

    また、

    A B = ( a e + b g a f + b h c e + dg c f + d h )

    よって、

    A B - 1 = 1 a e + b g c f + d h - a f + b h c e + dg ( c f + d h - a f - b h - c e - dg a e + b g ) = 1 a d e h + b c f g - a d f g - b c e h ( c f + d h - a f - b h - c e - dg a e + b g ) = 1 a d - b c e h - f g ( c f + d h - a f - b h - c e - dg a e + b g )

    ゆえに、

    A B - 1 = B - 1 A - 1

    である。
    (証明終)

コード(Emacs)

Python 3

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

a, b, c, d, e, f, g, h = symbols('a, b, c, d, e, f, g, h')

A = Matrix([[a, b],
            [c, d]])
B = Matrix([[e, f],
            [g, h]])

l = (A * B).inv()
r = B.inv() * A.inv()

for t in [A, B, A.inv(), B.inv(), l, r, l == r, l.expand() == r.expand()]:
    pprint(t)
    print()

for i in range(2):
    for j in range(2):
        print(l[i, j].expand() == r[i, j].expand())

print()
for i in range(2):
    for j in range(2):
        print(l[i, j].factor() == r[i, j].factor())

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

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

⎡e  f⎤
⎢    ⎥
⎣g  h⎦

⎡    d         -b    ⎤
⎢─────────  ─────────⎥
⎢a⋅d - b⋅c  a⋅d - b⋅c⎥
⎢                    ⎥
⎢   -c          a    ⎥
⎢─────────  ─────────⎥
⎣a⋅d - b⋅c  a⋅d - b⋅c⎦

⎡    h         -f    ⎤
⎢─────────  ─────────⎥
⎢e⋅h - f⋅g  e⋅h - f⋅g⎥
⎢                    ⎥
⎢   -g          e    ⎥
⎢─────────  ─────────⎥
⎣e⋅h - f⋅g  e⋅h - f⋅g⎦

⎡(a⋅e + b⋅g)⋅(c⋅f + d⋅h) - (a⋅f + b⋅h)⋅(-c⋅e - d⋅g) - (a⋅f + b⋅h)⋅(c⋅e + d⋅g) 
⎢──────────────────────────────────────────────────────────────────────────── 
⎢      (a⋅e + b⋅g)⋅((a⋅e + b⋅g)⋅(c⋅f + d⋅h) - (a⋅f + b⋅h)⋅(c⋅e + d⋅g))        
⎢                                                                             
⎢                                 -c⋅e - d⋅g                                  
⎢             ─────────────────────────────────────────────────               
⎣             (a⋅e + b⋅g)⋅(c⋅f + d⋅h) - (a⋅f + b⋅h)⋅(c⋅e + d⋅g)               

                   -(a⋅f + b⋅h)                   ⎤
 ─────────────────────────────────────────────────⎥
 (a⋅e + b⋅g)⋅(c⋅f + d⋅h) - (a⋅f + b⋅h)⋅(c⋅e + d⋅g)⎥
                                                  ⎥
                     a⋅e + b⋅g                    ⎥
 ─────────────────────────────────────────────────⎥
 (a⋅e + b⋅g)⋅(c⋅f + d⋅h) - (a⋅f + b⋅h)⋅(c⋅e + d⋅g)⎦

⎡           c⋅f                       d⋅h                         a⋅f         
⎢ ─────────────────────── + ───────────────────────   - ──────────────────────
⎢ (a⋅d - b⋅c)⋅(e⋅h - f⋅g)   (a⋅d - b⋅c)⋅(e⋅h - f⋅g)     (a⋅d - b⋅c)⋅(e⋅h - f⋅g
⎢                                                                             
⎢            c⋅e                       d⋅g                       a⋅e          
⎢- ─────────────────────── - ───────────────────────   ───────────────────────
⎣  (a⋅d - b⋅c)⋅(e⋅h - f⋅g)   (a⋅d - b⋅c)⋅(e⋅h - f⋅g)   (a⋅d - b⋅c)⋅(e⋅h - f⋅g)

              b⋅h          ⎤
─ - ───────────────────────⎥
)   (a⋅d - b⋅c)⋅(e⋅h - f⋅g)⎥
                           ⎥
             b⋅g           ⎥
 + ─────────────────────── ⎥
   (a⋅d - b⋅c)⋅(e⋅h - f⋅g) ⎦

False

False

False
True
True
True

True
True
True
True
$

0 コメント:

コメントを投稿