## 2018年12月16日日曜日

### 数学 - Python - 線型代数 - エルミート双1次形式、内積空間 - 内積空間(ノルム、等式、平行四辺形の法則、中線定理)

1. $\begin{array}{}{∥u+v∥}^{2}+{∥u-v∥}^{2}\\ =\left(\left(u+v\right)|\left(u+v\right)\right)+\left(\left(u-v\right)|\left(u-v\right)\right)\\ =\left(u|u\right)+\left(u|v\right)+\left(v|u\right)+\left(v|v\right)+\left(u|u\right)-\left(u|v\right)-\left(v|u\right)+\left(v|v\right)\\ =2{∥u∥}^{2}+2{∥v∥}^{2}\\ =2\left({∥u∥}^{2}+{∥v∥}^{2}\right)\end{array}$

コード(Emacs)

Python 3

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

print('1.')

n = 3
u = Matrix(symbols([f'u{i + 1}' for i in range(n)], imag=True))
v = Matrix(symbols([f'v{i + 1}' for i in range(n)], imag=True))
l = (u + v).norm() ** 2 + (u - v).norm() ** 2
r = 2 * (u.norm() ** 2 + v.norm() ** 2)

for t in [u.T, v.T, l, r, (l - r).expand() == 0]:
pprint(t)
print()

u = Matrix(symbols([f'u{i + 1}' for i in range(n)], real=True))
v = Matrix(symbols([f'v{i + 1}' for i in range(n)], real=True))
l = (u + v).norm() ** 2 + (u - v).norm() ** 2
r = 2 * (u.norm() ** 2 + v.norm() ** 2)

for t in [u.T, v.T, l, r, (l - r).expand() == 0]:
pprint(t)
print()

for _ in range(5):
u = Matrix([random.randrange(-5, 6) + random.randrange(-5, 6) * I
for _ in range(n)])
v = Matrix([random.randrange(-5, 6) + random.randrange(-5, 6) * I
for _ in range(n)])
l = (u + v).norm() ** 2 + (u - v).norm() ** 2
r = 2 * (u.norm() ** 2 + v.norm() ** 2)

for t in [u.T, v.T, l, r, l == r]:
pprint(t)
print()


$./sample1.py 1. [u₁ u₂ u₃] [v₁ v₂ v₃] 2 2 2 2 2 2 │u₁ - v₁│ + │u₁ + v₁│ + │u₂ - v₂│ + │u₂ + v₂│ + │u₃ - v₃│ + │u₃ + v₃│ 2 2 2 2 2 2 2⋅│u₁│ + 2⋅│u₂│ + 2⋅│u₃│ + 2⋅│v₁│ + 2⋅│v₂│ + 2⋅│v₃│ False [u₁ u₂ u₃] [v₁ v₂ v₃] 2 2 2 2 2 2 (u₁ - v₁) + (u₁ + v₁) + (u₂ - v₂) + (u₂ + v₂) + (u₃ - v₃) + (u₃ + v₃) 2 2 2 2 2 2 2⋅u₁ + 2⋅u₂ + 2⋅u₃ + 2⋅v₁ + 2⋅v₂ + 2⋅v₃ True [-5 + 3⋅ⅈ 2 + 4⋅ⅈ -2 - 5⋅ⅈ] [-1 + 3⋅ⅈ -2 1 - 4⋅ⅈ] 228 228 True [5 - 3⋅ⅈ -4 - 4⋅ⅈ 1] [-3 - 3⋅ⅈ -2 + 3⋅ⅈ 3 - 3⋅ⅈ] 232 232 True [-1 + 5⋅ⅈ 2 - 2⋅ⅈ 2 - ⅈ] [-4 + ⅈ 4 - ⅈ 3] 164 164 True [1 + ⅈ -2⋅ⅈ 4 - 4⋅ⅈ] [-4 - ⅈ 4 - 5⋅ⅈ -3 - ⅈ] 212 212 True [-2 - 2⋅ⅈ 2 - 4⋅ⅈ -2 - ⅈ] [3 -3 + ⅈ 4 - 2⋅ⅈ] 144 144 True$


SymPyはSymbolが複素数の場合は上手く計算してくれないみたい。