2020年7月7日火曜日

学習環境

ラング線形代数学(上) (ちくま学現文庫)(S.ラング (著)、芹沢 正三 (翻訳)、筑摩書房)の7章(スカラー積と直交性)、2(正値スカラー積)、練習問題1の解答を求めてみる。



    1. 直交基底を求める。

      v 1 = ( 1 , 1 , - 1 )
      v 2 = ( 1 , 0 , 1 ) - ( 1 , 0 , 1 ) · ( 1 , 1 , - 1 ) ( 1 , 1 , 1 ) · ( 1 , 1 , - 1 ) ( 1 , 1 , - 1 )
      = ( 1 , 0 , 1 )

      よって、 正規直交基底は

      ( 1 , 1 , - 1 ) ( 1 , 1 , - 1 ) = ( 1 3 , 1 3 , - 1 3 )
      ( 1 , 0 , 1 ) ( 1 , 0 , 1 ) = ( 1 2 , 0 , 1 2 )

    2. 直交基底

      ( 2 , 1 , 1 )
      ( 1 , 3 , - 1 ) - ( 1 , 3 , - 1 ) · ( 2 , 1 , 1 ) ( 2 , 1 , 1 ) · ( 2 , 1 , 1 ) ( 2 , 1 , 1 )
      = ( 1 , 3 , - 1 ) - 2 3 ( 2 , 1 , 1 )
      = ( - 1 3 , 7 3 , - 5 3 )

      正規直交基底。

      ( 2 , 1 , 1 ) ( 2 , 1 , 1 ) = ( 2 6 , 1 6 , 1 6 )
      ( - 1 , 7 , - 5 ) ( - 1 , 7 , - 5 ) = ( - 1 5 3 , 7 5 3 , - 5 5 3 ) = ( - 1 5 3 , 7 5 3 , - 1 3 )

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import Matrix, sqrt

print('1.')


class Test(TestCase):
    def test(self):
        As = [Matrix([1, 1, -1]) / sqrt(3),
              Matrix([1, 0, 1]) / sqrt(2)]
        Bs = [Matrix([2, 1, 1]) / sqrt(6),
              Matrix([-1, 7, -5]) / (5 * sqrt(3))]
        for i, (v1, v2) in enumerate([As, Bs]):
            print(f'({chr(ord("a") + i)})')
            for v in [v1, v2]:
                self.assertEqual(v.norm(), 1)
            self.assertEqual(v1.dot(v2), 0)


if __name__ == "__main__":
    main()

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

% ./sample1.py -v
1.
test (__main__.Test) ... (a)
(b)
ok

----------------------------------------------------------------------
Ran 1 test in 0.049s

OK
%

0 コメント:

コメントを投稿