Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

練習問題 メモ 4

4.1

次の1~3の行列の階数標準形および階数(rank)を求めよ

1.

  1. (123456)\left(\begin{array}{ll}1 & 2 \\ 3 & 4 \\ 5 & 6\end{array}\right)

行ベクトルを

(a1a2a3)\begin{pmatrix} a_1 \\ a_2 \\ a_3 \end{pmatrix}

とする

  1. a2=a2+(2)×a1a_2' = a_2 + (-2) \times a_1

import numpy as np
A = np.array([
    [1, 2],
    [3, 4],
    [5, 6],
])
# 1行目を-2倍して2行目に加える
A[1, :] += A[0, :] * (-2)
A
array([[1, 2], [1, 0], [5, 6]])
# 1行目を-3倍して3行目に加える
A[2, :] += A[0, :] * (-3)
A
array([[1, 2], [1, 0], [2, 0]])
# 3行目を(1/2)倍する
A[2, :] = (1 / 2) * A[2, :]
A
array([[1, 2], [1, 0], [1, 0]])
# 2行目を-1倍して3行目に加える
A[2, :] += A[1, :] * (-1)
A
array([[1, 2], [1, 0], [0, 0]])
# 2行目を-1倍して1行目に加える
A[0, :] += A[1, :] * (-1)
A
array([[0, 2], [1, 0], [0, 0]])
# 1行目を(1/2)倍する
A[0, :] = (1 / 2) * A[0, :]
A
array([[0, 1], [1, 0], [0, 0]])
# 1行目と2行目を入れ替える
a1 = A[0, :].copy()
a2 = A[1, :].copy()
A[0, :] = a2
A[1, :] = a1
A
array([[1, 0], [0, 1], [0, 0]])

2.

(010101010)\left(\begin{array}{lll}0 & 1 & 0 \\ 1 & 0 & 1 \\ 0 & 1 & 0\end{array}\right)
import numpy as np
A = np.array([
    [0, 1, 0],
    [1, 0, 1],
    [0, 1, 0],
])
# 1行目を-1倍して3行目に加える
A[2, :] += (-1) * A[0, :]
A
array([[0, 1, 0], [1, 0, 1], [0, 0, 0]])
# 0列目を-1倍して3列目に加える
A[:, 2] += (-1) * A[:, 0]
A
array([[0, 1, 0], [1, 0, 0], [0, 0, 0]])
# 1行目と2行目を入れ替える
a1 = A[0, :].copy()
a2 = A[1, :].copy()
A[0, :] = a2
A[1, :] = a1
A
array([[1, 0, 0], [0, 1, 0], [0, 0, 0]])

3.

(a111a111a)\left(\begin{array}{lll}a & 1 & 1 \\ 1 & a & 1 \\ 1 & 1 & a\end{array}\right)

わからなかった

from sympy import Symbol, Matrix

a = Symbol("a")
A = Matrix([
    [a, 1, 1],
    [1, a, 1],
    [1, 1, a],
])
A
Loading...
# 1行目と2行目を入れ替える
a1 = A[0, :].copy()
a2 = A[1, :].copy()
A[0, :] = a2
A[1, :] = a1
A
Loading...
A[1, :] += -a * A[0, :]
A
Loading...
A[2, :] += -1 * A[0, :]
A
Loading...

未知の変数があって最終的なランクが変わりうる → 場合分けする

もしa=1a=1なら

(1a101a21a01aa1)=(11101121101111)=(111000000)\begin{pmatrix} 1 & a & 1\\ 0 & 1 - a^{2} & 1 - a\\ 0 & 1 - a & a - 1 \end{pmatrix} = \begin{pmatrix} 1 & 1 & 1\\ 0 & 1 - 1^{2} & 1 - 1\\ 0 & 1 - 1 & 1 - 1 \end{pmatrix} = \begin{pmatrix} 1 & 1 & 1\\ 0 & 0 & 0\\ 0 & 0 & 0 \end{pmatrix}

列基本変形(列で引き算)して

(100000000)\begin{pmatrix} 1 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 0 \end{pmatrix}

→ rank=1

もしa1a \neq 1なら

(1a101a21a01aa1)\begin{pmatrix} 1 & a & 1\\ 0 & 1 - a^{2} & 1 - a\\ 0 & 1 - a & a - 1 \end{pmatrix}
A[:, 2] += 1 * A[:, 1]
A
Loading...
A[:, 1] += -1 * A[:, 2]
A
Loading...
A[1, :] += A[2, :]
A
Loading...
a1 = A[1, :].copy()
a2 = A[2, :].copy()
A[1, :] = a2
A[2, :] = a1
A
Loading...
A[1, :] += A[2, :]
A
Loading...
A[:, 2] += 1 * A[:, 1]
A
Loading...
A[:, 1] += -a * A[:, 0]
A[:, 2] += -1 * A[:, 0]
A
Loading...
A[1, :] += -1 * A[2, :]
A
Loading...
A[1, :] = (1/a) * A[1, :]
A
Loading...
A[1, 1] = -a + 1
A[1, 2] = (2/a) - 2
A
Loading...
A[2, :] - A[1, :]
Loading...
A[:, 1] += 1 * A[:, 2]
A
Loading...
A[2, :] += -((1-a)/(1-a**2)) * A[1, :]
A
Loading...
A[2, :] = (1+a)/((-1+a)*(2+a)) * A[2, :]
A
Loading...
Matrix([
[1, 0, 1+a],
[0 ,1, -1],
[0, 0, 2+a]
])
Loading...

a=2a = -2のとき

a2a \neq -2のとき

4.2

次の問に答えよ。

  1. 2次の正方行列に対する階数標準形をすべて書け

(0000)=O2,(1000),(1001)=E2\begin{pmatrix} 0 & 0 \\ 0 & 0 \\ \end{pmatrix} = O_2 , \hspace{1em} \begin{pmatrix} 1 & 0 \\ 0 & 0 \\ \end{pmatrix} , \hspace{1em} \begin{pmatrix} 1 & 0 \\ 0 & 1 \\ \end{pmatrix} = E_2
  1. 2次の正方行列に対する階段行列をすべて書け。なお、任意の数は*を用いて表せ。

=0* = 0の状況も考えて1とおくと

(0000),(100),(101)\begin{pmatrix} 0 & 0 \\ 0 & 0 \\ \end{pmatrix} , \hspace{1em} \begin{pmatrix} 1 & * \\ 0 & 0 \\ \end{pmatrix} , \hspace{1em} \begin{pmatrix} 1 & *\\ 0 & 1 \\ \end{pmatrix}