2017年12月9日土曜日

学習環境

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


  1. 第2列 に関する展開式。

    - a 12 | a 21 a 23 a 31 a 33 | + a 22 | a 11 a 13 a 31 a 33 | - a 23 | a 11 a 13 a 21 a 23 | = - a 12 a 21 a 33 - a 23 a 31 + a 22 a 11 a 33 - a 13 a 31 - a 32 a 11 a 23 - a 13 a 21 = - a 12 a 21 a 33 + a 12 a 23 a 31 + a 22 a 11 a 33 - a 22 a 13 a 31 - a 32 a 11 a 23 + a 32 a 13 a 21

    第3列に関する展開式。

    a 13 | a 21 a 22 a 31 a 32 | - a 23 | a 11 a 12 a 31 a 32 | + a 33 | a 11 a 12 a 21 a 22 | = a 13 a 21 a 32 - a 22 a 31 - a 23 a 11 a 32 - a 12 a 31 + a 33 a 11 a 22 - a 12 a 21 = a 13 a 21 a 32 - a 13 a 22 a 31 - a 23 a 11 a 32 + a 23 a 12 a 31 + a 33 a 11 a 22 - a 33 a 12 a 21

    よって、結果6つの項が同じ項になることを確認できる。

コード(Emacs)

Python 3

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

a11, a12, a13, a21, a22, a23, a31, a32, a33 = symbols(
    'a11, a12, a13, a21, a22, a23, a31, a32, a33')

A = Matrix([[a11, a12, a13],
            [a21, a22, a23],
            [a31, a32, a33]])

expr1 = -a12 * A[1:, 0::2].det() + a22 * A[::2, 0::2].det() - \
    a32 * A[:2, 0::2].det()
expr2 = a13 * A[1:, 0:2].det() - a23 * A[::2, 0:2].det() + \
    a33 * A[:2, 0:2].det()

for t in [A, A.det(), expr1, expr2, A.det().expand() == expr1.expand() == expr2.expand()]:
    pprint(t)
    print()

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

$ ./sample25.py
⎡a₁₁  a₁₂  a₁₃⎤
⎢             ⎥
⎢a₂₁  a₂₂  a₂₃⎥
⎢             ⎥
⎣a₃₁  a₃₂  a₃₃⎦

a₁₁⋅a₂₂⋅a₃₃ - a₁₁⋅a₂₃⋅a₃₂ - a₁₂⋅a₂₁⋅a₃₃ + a₁₂⋅a₂₃⋅a₃₁ + a₁₃⋅a₂₁⋅a₃₂ - a₁₃⋅a₂₂⋅
a₃₁

-a₁₂⋅(a₂₁⋅a₃₃ - a₂₃⋅a₃₁) + a₂₂⋅(a₁₁⋅a₃₃ - a₁₃⋅a₃₁) - a₃₂⋅(a₁₁⋅a₂₃ - a₁₃⋅a₂₁)

a₁₃⋅(a₂₁⋅a₃₂ - a₂₂⋅a₃₁) - a₂₃⋅(a₁₁⋅a₃₂ - a₁₂⋅a₃₁) + a₃₃⋅(a₁₁⋅a₂₂ - a₁₂⋅a₂₁)

True

$

0 コメント:

コメントを投稿