2020年5月23日土曜日

学習環境

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


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

    (証明終)

コード

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

print('2.')


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


if __name__ == "__main__":
    main()

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

% ./sample2.py -v
2.
test (__main__.TestRotateNorm) ... ok

----------------------------------------------------------------------
Ran 1 test in 1.554s

OK
%

0 コメント:

コメントを投稿