2018年6月19日火曜日

学習環境

解析入門〈3〉(松坂 和夫(著)、岩波書店)の第16章(行列式)、16.2(行列式の他の性質)、問題3.を取り組んでみる。


  1. x j = 1 det A det e j , a 2 , , a n det a 1 , , a n - 1 , e j

    よって、行列 A の(i, j)成分は、

    - 1 j + i det A j i det A

    ゆえに、行列 A の逆行列は、

    A - 1 = 1 det A a d j A

コード(Emacs)

Python 3

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


def f(A, i, j, n):
    def f(k, l):
        if k < i and l < j:
            return A[k, l]
        if k < i and l >= j:
            return A[k, l + 1]
        if k >= i and l < j:
            return A[k + 1, l]
        return A[k + 1, l + 1]
    return Matrix([[f(k, l) for l in range(n - 1)]
                   for k in range(n - 1)])


def g(A, i, j, n):
    return (-1) ** (i + j) * f(A, i, j, n).det()


for n in range(1, 5):
    A = Matrix([symbols(', '.join([chr(ord('a') + i)
                                   for i in range(n * n)]))]).reshape(n, n)

    adjA = Matrix([[g(A, j, i, n) for j in range(n)]
                   for i in range(n)])

    A1 = 1 / A.det() * adjA
    E = A * A1
    for i in range(n):
        for j in range(n):
            print(E[i, j].factor(), end=' ')
        print()
    print()

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

$ ./sample4.py
1 

1 0 
0 1 

1 0 0 
0 1 0 
0 0 1 

1 0 0 0 
0 1 0 0 
0 0 1 0 
0 0 0 1 

$

0 コメント:

コメントを投稿