◀ Previous | TOC | Next ▶ |
行列 \(A \in \mathbb R^{n \times n}\) (\(n\) は正の整数)が与えられたとき,
を満たす \(\lambda \in \mathbb C\) を \(A\) の固有値, \(\boldsymbol x\) を固有ベクトルという.
の行列式, 固有値と固有ベクトルを求めよ.
[1]:
import numpy as np
aa = np.array([[2, 0], [0, 3]])
print(np.linalg.det(aa))
print(np.trace(aa))
print(np.linalg.eig(aa))
6.0
5
(array([2., 3.]), array([[1., 0.],
[0., 1.]]))
\(\det A = 6\).
\(\operatorname{trace} A = 5\).
固有値は 2, 3.
固有ベクトルは
次の行列の固有値と固有ベクトルを求めよ.
\(A\) は Jordan 標準形
固有ベクトルは 1 つである.
このようなとき, 系は(行列は, 固有値は, 固有ベクトルは)縮退しているという.
行列 \(B\) は縮退していない, 固有ベクトルが 2 つある.
行列 C の固有値, 固有ベクトルは虚数である.
\(\lambda = 3/2 \pm i \sqrt{3}/2\)
[2]:
aa = [[2, 1], [0, 2]]
np.linalg.eig(aa)
[2]:
(array([2., 2.]),
array([[ 1.0000000e+00, -1.0000000e+00],
[ 0.0000000e+00, 4.4408921e-16]]))
[3]:
bb = np.array([[2, 1], [0, 3]])
np.linalg.eig(bb)
[3]:
(array([2., 3.]),
array([[1. , 0.70710678],
[0. , 0.70710678]]))
[4]:
cc = [[1, -1], [1, 2]]
np.linalg.eig(cc)
[4]:
(array([1.5+0.8660254j, 1.5-0.8660254j]),
array([[-0.35355339+0.61237244j, -0.35355339-0.61237244j],
[ 0.70710678+0.j , 0.70710678-0.j ]]))
\(\boldsymbol a\), \(\boldsymbol b\) の内積, dot product を求めよ.
[5]:
a = [1, 2]
b = [2, 3]
print(np.inner(a, b))
print(np.dot(a, b))
# print(np.einsum('i,j->i', a, b))
8
8
次の行列 \(P\), \(Q\) の内積, dot product 行列の積を求めよ.
[6]:
pp = np.array([[1, 2], [3, 4]])
qq = np.array([[2, 2], [1, 3]])
# print(np.inner(pp, a))
# print(np.dot(pp, a))
# print(np.matmul(pp, a))
print(np.inner(pp, qq))
print(np.dot(pp, qq))
print(np.matmul(pp, qq))
print(np.einsum('ij, jk->ik', pp, qq))
[[ 6 7]
[14 15]]
[[ 4 8]
[10 18]]
[[ 4 8]
[10 18]]
[[ 4 8]
[10 18]]
次の微分方程式の解をグラフにせよ.
初期値にはつぎのデータを用いよ.
x_0s = [
[1, 1], [1, 0], [1, -1], [0, -1],
[-1, -1], [-1, 0], [-1, 1], [0, 1],
[1, -.25], [1, -.5], [1, -.75],
[-1, .25], [-1, .5], [-1, .75]
]
[7]:
import matplotlib.pyplot as plt
import scipy.linalg
fig, ax = plt.subplots(figsize=(3, 3), dpi=96)
dd = np.array([[-.5, 1], [0, -1]])
x_0s = [
[1, 1], [1, 0], [1, -1], [0, -1],
[-1, -1], [-1, 0], [-1, 1], [0, 1],
[1, -.25], [1, -.5], [1, -.75],
[-1, .25], [-1, .5], [-1, .75]
]
nts = 100
ts = np.linspace(0, 10, nts)
for x_0 in x_0s:
xts = []
for t in ts:
xts.append(np.matmul(scipy.linalg.expm(t * dd), x_0))
xts = np.array(xts)
#print(xts)
ax.plot(xts[:, 0], xts[:, 1])
plt.savefig('cc.png')
plt.show()
Find the eigenvalues and eigenvectors of the following matrix.
次の微分方程式の解をグラフにせよ.
初期値は x_0 = [1, 1] とせよ.
(オプショナル)初期値にはつぎのデータを用いよ.
x_0s = [
[1, 1], [1, 0], [1, -1], [0, -1],
[-1, -1], [-1, 0], [-1, 1], [0, 1],
[1, -.25], [1, -.5], [1, -.75],
[-1, .25], [-1, .5], [-1, .75]
]
次の行列の行列式, 固有値, 固有ベクトルを求めよ.
\(e^{tA}\) はどの固有ベクトルに沿って発散し, どの固有ベクトルに沿って 0 に近づくか.
◀ Previous | TOC | Next ▶ |