$3x = 1$
$3^{-1}3x = 3^{-1}1$
$1x = 3^{-1}$
$x= \frac{1}{3}$
$Ax = b$
$A^{-1}Ax = A^{-1}b$
$Ix = A^{-1}b$
$x = A^{-1}b$
A matrix is invertible if it is:
Square
Full rank: 最大階数(充足階数, 完全階数)
$ \left[ \begin{matrix} 1 \quad 6 \\ 7 \quad 2 \end{matrix} \right]$ $ \left[ \begin{matrix} 1 \quad 2 \\ 7 \quad 14 \end{matrix} \right]$ $ \left[ \begin{matrix} -1\quad 1 \\ 1 \quad 0 \end{matrix} \right]$ $ \left[ \begin{matrix} 1\quad 0 \\ 7 \quad 0 \end{matrix} \right]$ $ \left[ \begin{matrix} 6\quad 5 \\ 5 \quad 6 \end{matrix} \right]$
$\quad \bigcirc \quad \: \: \: \quad \times \quad \: \: \: \quad \bigcirc \quad \: \: \: \quad \times \quad \: \: \: \quad \bigcirc $
$\times = \text {singular matrix}$
import numpy as np
import matplotlib.pyplot as plt
m = 5
A = np.random.randint(-m,m+1,(m,m)) # -5~5, 5x5
print(A)
Ainv = np.linalg.inv(A)
# print(Ainv)
fig,ax = plt.subplots(1,3)
ax[0].imshow(A)
ax[0].set_title('A')
ax[1].imshow(Ainv)
ax[1].set_title('A$^{-1}$')
ax[2].imshow(A@Ainv)
ax[2].set_title('AA$^{-1}$')
plt.show()
A[:,0] = A[:,1]
print(A)
# Ainv = np.linalg.inv(A) # invalid
Apinv = np.linalg.pinv(A) # valid
fig,ax = plt.subplots(1,3)
ax[0].imshow(A)
ax[0].set_title('A')
ax[1].imshow(Apinv)
ax[1].set_title('A$^*$')
ax[2].imshow(A@Apinv)
print(np.round(A@Apinv,2))
ax[2].set_title('AA$^*$')
for i in ax:
i.axis('off')
plt.show()
A = np.random.randn(m,m+2)
Apinv = np.linalg.pinv(A) # valid
fig,ax = plt.subplots(1,3)
ax[0].imshow(A)
ax[0].set_title('A')
ax[1].imshow(Apinv)
ax[1].set_title('A$^*$')
ax[2].imshow(A@Apinv)
print(np.round(A@Apinv,2))
ax[2].set_title('AA$^*$')
for i in ax:
i.axis('off')
plt.show()