2020年7月12日日曜日

学習環境

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



    1. 直交基底。

      (1,i,0)
      (1,1,1)-(1,1,1)·(1,i,0)(1,i,0)·(1,i,0)(1,i,0)
      =(1,1,1)-1-i2(1,i,0)
      =12(1+i,1-i,2)

      正規直交基底。

      (1,i,0)(1,i,0)=12(1,i,0)
      (1+i,1-i,2)(1+i,1-i,2)=12+2+4(1+i,1-i,2)=122(1+i,1-i,2)

    2. 直交基底。

      (1,-1,-i)
      (i,1,2)-(i,1,-2)·(1,-1,-i)(1,-1,-i)·(1,-1,-i)(1,-1,-i)
      =(i,1,2)-i-1+2i1+1+1(1,-1,-i)
      =(i,1,2)+1-3i3(1,-1,-i)
      =13(1,2+3i,3-i)

      正規直交基底。

      (1,-1,-i)(1,-1,-i)=13(1,-1,-i)
      (1,2+3i,3-i)(1,2+3i,3-i)=11+13+10(1,2+3i,3-i)=126(1,2+3i,3-i)

コード

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

print('6.')


class Test(TestCase):
    def test_a(self):
        u = Matrix([1, I, 0]) / sqrt(2)
        v = Matrix([1 + I, 1 - I, 2]) / (2 * sqrt(2))
        for o in [u, v]:
            self.assertEqual(o.norm(), 1)
        self.assertEqual(u.dot(v.conjugate()).expand(), 0)

    def test_b(self):
        u = Matrix([1, -1, -I]) / sqrt(3)
        v = Matrix([1, 2 + 3 * I, 3 - I]) / (2 * sqrt(6))
        for o in [u, v]:
            self.assertEqual(o.norm(), 1)
        self.assertEqual(u.dot(v.conjugate()).expand(), 0)


if __name__ == "__main__":
    main()

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

% ./sample6.py -v
6.
test_a (__main__.Test) ... ok
test_b (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.061s

OK
%

0 コメント:

コメントを投稿