学習環境
- Surface Go、タイプ カバー、Surfaceペン(端末)
- Windows 10 Pro (OS)
- Nebo(Windows アプリ)
- iPad Pro + Apple Pencil
- MyScript Nebo(iPad アプリ(iOS))
- 参考書籍
線型代数入門(松坂 和夫(著)、岩波書店)の第7章(固有値と固有ベクトル)、2(固有多項式(特性多項式))、問題3.を取り組んでみる。
B ではなく C の場合も同様。
コード(Emacs)
Python 3
#!/usr/bin/env python3
from sympy import pprint, symbols, Matrix, I, solve
import random
print('3.')
x = symbols('x')
def f(n, A):
def g(i, j):
if i == j:
return 1
return 0
In = Matrix([[g(i, j) for j in range(n)]
for i in range(n)])
return (x * In - A)
for _ in range(10):
n = random.randrange(2, 5)
r = random.randrange(1, n)
A1 = Matrix([[symbols(f'a{i + 1}{j + 1}') for j in range(r)]
for i in range(r)])
A2 = Matrix([[symbols(f'c{i + 1}{j + 1}') for j in range(n - r)]
for i in range(n - r)])
B = Matrix([[symbols(f'b{i + 1}{j + 1}') for j in range(n - r)]
for i in range(r)])
def h(i, j):
if i < r and j < r:
return A1[i, j]
if i < r and j >= r:
return B[i, j - r]
if j < r:
return 0
return A2[i - r, j - r]
A = Matrix([[h(i, j) for j in range(n)]
for i in range(n)])
fa = f(n, A)
fa1 = f(r, A1)
fa2 = f(n - r, A2)
for t in [A, fa.det().expand() == (fa1.det() * fa2.det()).expand()]:
pprint(t)
print()
print()
A1 = Matrix([[symbols(f'a{i + 1}{j + 1}') for j in range(r)]
for i in range(r)])
A2 = Matrix([[symbols(f'c{i + 1}{j + 1}') for j in range(n - r)]
for i in range(n - r)])
B = Matrix([[symbols(f'b{i + 1}{j + 1}') for j in range(r)]
for i in range(n - r)])
def h(i, j):
if i < r and j < r:
return A1[i, j]
if i < r and j >= r:
return 0
if j < r:
return B[i - r, j]
return A2[i - r, j - r]
A = Matrix([[h(i, j) for j in range(n)]
for i in range(n)])
fa = f(n, A)
fa1 = f(r, A1)
fa2 = f(n - r, A2)
for t in [A, fa.det().expand() == (fa1.det() * fa2.det()).expand()]:
pprint(t)
print()
print()
入出力結果(Terminal, Jupyter(IPython))
$ ./sample3.py 3. ⎡a₁₁ b₁₁ b₁₂⎤ ⎢ ⎥ ⎢ 0 c₁₁ c₁₂⎥ ⎢ ⎥ ⎣ 0 c₂₁ c₂₂⎦ True ⎡a₁₁ 0 0 ⎤ ⎢ ⎥ ⎢b₁₁ c₁₁ c₁₂⎥ ⎢ ⎥ ⎣b₂₁ c₂₁ c₂₂⎦ True ⎡a₁₁ a₁₂ a₁₃ b₁₁⎤ ⎢ ⎥ ⎢a₂₁ a₂₂ a₂₃ b₂₁⎥ ⎢ ⎥ ⎢a₃₁ a₃₂ a₃₃ b₃₁⎥ ⎢ ⎥ ⎣ 0 0 0 c₁₁⎦ True ⎡a₁₁ a₁₂ a₁₃ 0 ⎤ ⎢ ⎥ ⎢a₂₁ a₂₂ a₂₃ 0 ⎥ ⎢ ⎥ ⎢a₃₁ a₃₂ a₃₃ 0 ⎥ ⎢ ⎥ ⎣b₁₁ b₁₂ b₁₃ c₁₁⎦ True ⎡a₁₁ b₁₁⎤ ⎢ ⎥ ⎣ 0 c₁₁⎦ True ⎡a₁₁ 0 ⎤ ⎢ ⎥ ⎣b₁₁ c₁₁⎦ True ⎡a₁₁ a₁₂ b₁₁⎤ ⎢ ⎥ ⎢a₂₁ a₂₂ b₂₁⎥ ⎢ ⎥ ⎣ 0 0 c₁₁⎦ True ⎡a₁₁ a₁₂ 0 ⎤ ⎢ ⎥ ⎢a₂₁ a₂₂ 0 ⎥ ⎢ ⎥ ⎣b₁₁ b₁₂ c₁₁⎦ True ⎡a₁₁ a₁₂ b₁₁ b₁₂⎤ ⎢ ⎥ ⎢a₂₁ a₂₂ b₂₁ b₂₂⎥ ⎢ ⎥ ⎢ 0 0 c₁₁ c₁₂⎥ ⎢ ⎥ ⎣ 0 0 c₂₁ c₂₂⎦ True ⎡a₁₁ a₁₂ 0 0 ⎤ ⎢ ⎥ ⎢a₂₁ a₂₂ 0 0 ⎥ ⎢ ⎥ ⎢b₁₁ b₁₂ c₁₁ c₁₂⎥ ⎢ ⎥ ⎣b₂₁ b₂₂ c₂₁ c₂₂⎦ True ⎡a₁₁ a₁₂ a₁₃ b₁₁⎤ ⎢ ⎥ ⎢a₂₁ a₂₂ a₂₃ b₂₁⎥ ⎢ ⎥ ⎢a₃₁ a₃₂ a₃₃ b₃₁⎥ ⎢ ⎥ ⎣ 0 0 0 c₁₁⎦ True ⎡a₁₁ a₁₂ a₁₃ 0 ⎤ ⎢ ⎥ ⎢a₂₁ a₂₂ a₂₃ 0 ⎥ ⎢ ⎥ ⎢a₃₁ a₃₂ a₃₃ 0 ⎥ ⎢ ⎥ ⎣b₁₁ b₁₂ b₁₃ c₁₁⎦ True ⎡a₁₁ b₁₁⎤ ⎢ ⎥ ⎣ 0 c₁₁⎦ True ⎡a₁₁ 0 ⎤ ⎢ ⎥ ⎣b₁₁ c₁₁⎦ True ⎡a₁₁ b₁₁⎤ ⎢ ⎥ ⎣ 0 c₁₁⎦ True ⎡a₁₁ 0 ⎤ ⎢ ⎥ ⎣b₁₁ c₁₁⎦ True ⎡a₁₁ b₁₁ b₁₂⎤ ⎢ ⎥ ⎢ 0 c₁₁ c₁₂⎥ ⎢ ⎥ ⎣ 0 c₂₁ c₂₂⎦ True ⎡a₁₁ 0 0 ⎤ ⎢ ⎥ ⎢b₁₁ c₁₁ c₁₂⎥ ⎢ ⎥ ⎣b₂₁ c₂₁ c₂₂⎦ True ⎡a₁₁ a₁₂ b₁₁ b₁₂⎤ ⎢ ⎥ ⎢a₂₁ a₂₂ b₂₁ b₂₂⎥ ⎢ ⎥ ⎢ 0 0 c₁₁ c₁₂⎥ ⎢ ⎥ ⎣ 0 0 c₂₁ c₂₂⎦ True ⎡a₁₁ a₁₂ 0 0 ⎤ ⎢ ⎥ ⎢a₂₁ a₂₂ 0 0 ⎥ ⎢ ⎥ ⎢b₁₁ b₁₂ c₁₁ c₁₂⎥ ⎢ ⎥ ⎣b₂₁ b₂₂ c₂₁ c₂₂⎦ True $
0 コメント:
コメントを投稿