2020年5月19日火曜日

学習環境

ラング線形代数学(上) (ちくま学現文庫)(S.ラング (著)、芹沢 正三 (翻訳)、筑摩書房)の5章(線形写像と行列)、2(線形写像に対応する行列)、練習問題7の解答を求めてみる。


  1. X = x 2 + y 2 F X = [ cos θ - sin θ sin θ cos θ ] [ x y ] = [ x cos θ - y sin θ x sin θ + y cos θ ] = x 2 cos 2 θ - 2 x y sin θ cos θ + y 2 cos 2 θ + x 2 sin 2 θ + 2 x y sin θ cos θ + y 2 sin 2 θ = x 2 + y 2

    よって、

    X = F X

コード

#!/usr/bin/env python3
from unittest import TestCase, main
import random
from sympy import symbols, Matrix, cos, sin, solve

print('7.')


class TestRotateNorm(TestCase):
    def test(self):
        x, y = symbols('x, y')
        X = Matrix([x, y]).reshape(2, 1)
        theta = symbols('θ')
        A = Matrix([[cos(theta), sin(theta)],
                    [-sin(theta), cos(theta)]])
        for _ in range(10):
            d = {o: random.randrange(-10, 11) for o in [x, y, theta]}
            self.assertEqual(
                float(X.norm().subs(d)),
                float((A * X).norm().subs(d))
            )


if __name__ == "__main__":
    main()

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

% ./sample7.py -v
7.
test (__main__.TestRotateNorm) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.358s

OK
%

0 コメント:

コメントを投稿