2018年12月7日金曜日

学習環境

ラング線形代数学(上)(S.ラング (著)、芹沢 正三 (翻訳)、ちくま学芸文庫)の1章(R^n におけるベクトル)、6(複素数)、練習問題6.を取り組んでみる。



    1. -B,A=-β1-α1++βn-αn=--α1β1++-αnβn=--α1β1++--αnβn=--α1-β1+...+--αn-βn=α1-β1++αn-βn=A,B

    2. A,B+C=α1-(β1+γ1)++αn-(βn+γn)=α1(-β1+-γ1)++αn(-βn+-γn)=α1-β1++αn-βn+α1-γ1++αn-γn=A,B+A,C

    3. αA,B=(αα1)-β1++(ααn)-βn=α(α1-β1++αn-βn)=αA,BA,αB=α1-(αβ1)++αn-(αβn)=α1-α-β1++αn-α-βn=-α(α1-β1++αn-βn)=-αA,B

    4. A,A=α1-α1++αn-αn=|α1|2++|αn|2

      ここで A が O のとき、

      A,A=0++0=0

      ここで A が O ではない場合、

      A,A>0

      (証明終)

コード(Emacs)

Python 3

#!/usr/bin/env python3
import random
from sympy import pprint, symbols, I, Matrix

print('6.')


def dot(a, b):
    return sum([ai * bi.conjugate() for ai, bi in zip(a, b)])


n = 5
a = Matrix(symbols([f'a{i + 1}' for i in range(n)]))
b = Matrix(symbols([f'b{i + 1}' for i in range(n)]))
c = Matrix(symbols([f'c{i + 1}' for i in range(n)]))
o = Matrix([0 for _ in range(n)])
alpha = symbols('a')


lrs = [(dot(a, b), dot(b, a).conjugate()),
       (dot(a, b + c), dot(a, b) + dot(a, c)),
       (dot(alpha * a, b), alpha * dot(a, b)),
       (dot(a, alpha * b), alpha.conjugate() * dot(a, b))]
for l, r in lrs:
    for t in [l, r, l.expand() == r.expand()]:
        pprint(t)
        print()
    print()

print(dot(o, o) == 0)

for _ in range(n):
    a = Matrix([random.randrange(-5, 6) + random.randrange(-5, 6) * I
                for _ in range(n)])
    for t in [a, dot(a, a), dot(a, a).expand(), dot(a, a) > 0]:
        pprint(t)
        print()
    print()

入出力結果(Terminal, cmd(コマンドプロンプト), Jupyter(IPython))

$ ./sample6.py
6.
   __      __      __      __      __
a₁⋅b₁ + a₂⋅b₂ + a₃⋅b₃ + a₄⋅b₄ + a₅⋅b₅

   __      __      __      __      __
a₁⋅b₁ + a₂⋅b₂ + a₃⋅b₃ + a₄⋅b₄ + a₅⋅b₅

True


   ⎛__   __⎞      ⎛__   __⎞      ⎛__   __⎞      ⎛__   __⎞      ⎛__   __⎞
a₁⋅⎝b₁ + c₁⎠ + a₂⋅⎝b₂ + c₂⎠ + a₃⋅⎝b₃ + c₃⎠ + a₄⋅⎝b₄ + c₄⎠ + a₅⋅⎝b₅ + c₅⎠

   __      __      __      __      __      __      __      __      __      __
a₁⋅b₁ + a₁⋅c₁ + a₂⋅b₂ + a₂⋅c₂ + a₃⋅b₃ + a₃⋅c₃ + a₄⋅b₄ + a₄⋅c₄ + a₅⋅b₅ + a₅⋅c₅

True


     __        __        __        __        __
a⋅a₁⋅b₁ + a⋅a₂⋅b₂ + a⋅a₃⋅b₃ + a⋅a₄⋅b₄ + a⋅a₅⋅b₅

  ⎛   __      __      __      __      __⎞
a⋅⎝a₁⋅b₁ + a₂⋅b₂ + a₃⋅b₃ + a₄⋅b₄ + a₅⋅b₅⎠

True


   _ __      _ __      _ __      _ __      _ __
a₁⋅a⋅b₁ + a₂⋅a⋅b₂ + a₃⋅a⋅b₃ + a₄⋅a⋅b₄ + a₅⋅a⋅b₅

⎛   __      __      __      __      __⎞ _
⎝a₁⋅b₁ + a₂⋅b₂ + a₃⋅b₃ + a₄⋅b₄ + a₅⋅b₅⎠⋅a

True


True
⎡5 - 4⋅ⅈ⎤
⎢       ⎥
⎢  3⋅ⅈ  ⎥
⎢       ⎥
⎢1 - 5⋅ⅈ⎥
⎢       ⎥
⎢ 5 - ⅈ ⎥
⎢       ⎥
⎣   0   ⎦

9 + (1 - 5⋅ⅈ)⋅(1 + 5⋅ⅈ) + (5 - ⅈ)⋅(5 + ⅈ) + (5 - 4⋅ⅈ)⋅(5 + 4⋅ⅈ)

102

True


⎡-2 - 2⋅ⅈ⎤
⎢        ⎥
⎢-3 + 2⋅ⅈ⎥
⎢        ⎥
⎢   ⅈ    ⎥
⎢        ⎥
⎢-5 + 4⋅ⅈ⎥
⎢        ⎥
⎣-5 + 4⋅ⅈ⎦

1 + (-2 - 2⋅ⅈ)⋅(-2 + 2⋅ⅈ) + (-3 - 2⋅ⅈ)⋅(-3 + 2⋅ⅈ) + 2⋅(-5 - 4⋅ⅈ)⋅(-5 + 4⋅ⅈ)

104

True


⎡-5 + 4⋅ⅈ⎤
⎢        ⎥
⎢  5⋅ⅈ   ⎥
⎢        ⎥
⎢1 + 3⋅ⅈ ⎥
⎢        ⎥
⎢4 + 2⋅ⅈ ⎥
⎢        ⎥
⎣  5⋅ⅈ   ⎦

(1 - 3⋅ⅈ)⋅(1 + 3⋅ⅈ) + (4 - 2⋅ⅈ)⋅(4 + 2⋅ⅈ) + (-5 - 4⋅ⅈ)⋅(-5 + 4⋅ⅈ) + 50

121

True


⎡-3 - 4⋅ⅈ⎤
⎢        ⎥
⎢1 - 2⋅ⅈ ⎥
⎢        ⎥
⎢ 1 + ⅈ  ⎥
⎢        ⎥
⎢-3 + 3⋅ⅈ⎥
⎢        ⎥
⎣2 + 3⋅ⅈ ⎦

(1 - ⅈ)⋅(1 + ⅈ) + (1 - 2⋅ⅈ)⋅(1 + 2⋅ⅈ) + (2 - 3⋅ⅈ)⋅(2 + 3⋅ⅈ) + (-3 - 3⋅ⅈ)⋅(-3 +
 3⋅ⅈ) + (-3 - 4⋅ⅈ)⋅(-3 + 4⋅ⅈ)

63

True


⎡5 - 2⋅ⅈ ⎤
⎢        ⎥
⎢-2 - 3⋅ⅈ⎥
⎢        ⎥
⎢-1 + 3⋅ⅈ⎥
⎢        ⎥
⎢-4 + 4⋅ⅈ⎥
⎢        ⎥
⎣   5    ⎦

(-1 - 3⋅ⅈ)⋅(-1 + 3⋅ⅈ) + (-2 - 3⋅ⅈ)⋅(-2 + 3⋅ⅈ) + 25 + (5 - 2⋅ⅈ)⋅(5 + 2⋅ⅈ) + (-4
 - 4⋅ⅈ)⋅(-4 + 4⋅ⅈ)

109

True


$

0 コメント:

コメントを投稿