Processing math: 100%

2017年12月23日土曜日

学習環境

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


  1. (aa'+bc'ab'+bd'ca'+dc'cb'+dd')=(pqrs)
    p=aa'+bc'q=ab'+bd'r=ca'+dc's=cb'+dd'
    ps-qr=(aa'+bc')(cb'+dd')-(ab'+bd')(ca'+dc')=aca'b'+ada'd'+bcb'c'+bdc'd'-aca'b'-adb'c'-bca'd'-bdc'd'=ada'd'+bcb'c'-adb'c'-bca'd'
    (ad-bc)(a'd'-b'c')=ada'd'+bcb'c'-adb'c'-bca'd'

    よって、

    ps-qr=(ad-bc)(a'd'-b'c')

    ゆえに

    det(AB)=detAdetB

コード(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 コメント:

コメントを投稿