2020年6月8日月曜日

学習環境

ラング線形代数学(上) (ちくま学現文庫)(S.ラング (著)、芹沢 正三 (翻訳)、筑摩書房)の6章(行列式)、4(行列式の存在)、練習問題10の解答を求めてみる。


  1. d dt det [ f t g t h t f ' t g ' t h ' t f ' ' t g ' ' t h ' ' t ]
    = d dt f t g ' t h ' ' t - g ' ' t h ' t - d dt g t f ' t h ' ' t - f ' ' t h ' t + d dt h t f ' t g ' ' t - f ' ' t g ' t
    = f ' t g ' t h ' ' t - g ' ' t h ' t + f t g ' ' t h ' ' t + g ' t h ' ' ' t - g ' ' ' t h ' t - g ' ' t h ' ' t
    = f ' t g ' t h ' ' t - f ' t g ' ' t h ' t + f t g ' t h ' ' ' t - f t g ' ' ' t h ' t - f ' t g ' t h ' ' t + f ' ' t g ' t h ' t + f ' t g t h ' ' ' t - f ' ' ' t g t h ' t + f ' t g ' ' t h ' t - f ' ' t g ' t h ' t + f ' t g ' ' ' t h t - f ' ' ' t g ' t h t
    = det [ f t f t h t f ' t g ' t h ' t f ' ' ' t g ' ' ' t h ' ' ' t ]

    一般化。

    d dt det [ f 1 t f n t f 1 1 t f n 1 t f 1 n - 1 t f n n - 1 t ] = det [ f 1 t f n t f 1 1 t f n 1 t f 1 n t f n n t ]

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import Matrix, Function
from sympy.abc import t

print('10.')


class TestMatrixDetDerivative(TestCase):
    def test(self):
        n = 3
        f = Function('f')(t)
        g = Function('g')(t)
        h = Function('h')(t)
        a = Matrix([[f.diff(t, i), g.diff(t, i), h.diff(t, i)]
                    for i in range(n)]).det().diff(t, 1)
        b = Matrix(
            [[f.diff(t, i), g.diff(t, i), h.diff(t, i)]
             for i in range(n - 1)] +
            [[f.diff(t, n), g.diff(t, n), h.diff(t, n)]]).det()
        self.assertEqual(a.simplify(), b.simplify())


if __name__ == "__main__":
    main()

入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))

% ./sample10.py -v
10.
test (__main__.TestMatrixDetDerivative) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.418s

OK
%

0 コメント:

コメントを投稿