2017年11月27日月曜日

学習環境

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


  1. 行列 C を

    C = ( x u y v )

    とおく。

    C A = ( x u y v ) ( a b c d ) = ( a x + c u b x + d u a y + c v b y + d v )
    a x + c u = 1 b x + d u = 0 a y + c v = 0 b y + d v = 1
    a dx + c d u = d b c x + c d u = 0 a dy + c d v = 0 b c y + c d v = c
    a d - b c x = d - a d - b c y = c
    a d - b c 0 x = d a d - b c y = - c a d - b c
    a b x + b c u = b a b x + a d u = 0 a b y + b c v = 0 a b y + a d v = a
    - a d - b c u = b a d - b c v = a
    u = - b a d - b c v = a a d - b c

    よって、

    C = 1 a d - b c ( d - b - c a )

    また、

    a d - b c = 0

    の場合は等式と矛盾するので逆行列は存在しない。

    ゆえに、 C は本文の行列 B と一致する。

コード(Emacs)

Python 3

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

x, y, u, v, a, b, c, d = symbols('x, y, z, u, a, b, c, d')
A = Matrix([[a, b],
            [c, d]])
X = Matrix([[x, u],
            [y, v]])

E = Matrix([[1 if i == j else 0 for j in range(2)]
            for i in range(2)])

for t in [A, X, E, solve(A * X - E, (x, y, u, v)), solve(X * A - E, (x, y, u, v))]:
    pprint(t)
    print()

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

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

⎡x  z⎤
⎢    ⎥
⎣y  u⎦

⎡1  0⎤
⎢    ⎥
⎣0  1⎦

⎧       a             d            -c            -b    ⎫
⎨u: ─────────, x: ─────────, y: ─────────, z: ─────────⎬
⎩   a⋅d - b⋅c     a⋅d - b⋅c     a⋅d - b⋅c     a⋅d - b⋅c⎭

⎧       a             d            -c            -b    ⎫
⎨u: ─────────, x: ─────────, y: ─────────, z: ─────────⎬
⎩   a⋅d - b⋅c     a⋅d - b⋅c     a⋅d - b⋅c     a⋅d - b⋅c⎭

$

0 コメント:

コメントを投稿