# 高校数学でわかる線形代数 (:41)


```python
# 3行の拡大係数行列
from sympy import * # NumPyでは、xやy等の変数を含んだ行列計算は出来ないのでsympy
k = Symbol('k')
A = Matrix([[k,0,0],[0,1,0],[0,0,1]])
B = Matrix([[0,1,0,50],[1,1,0,150],[0,0,1,70]])
A*B
```




    Matrix([
    [0, k, 0, 50*k],
    [1, 1, 0,  150],
    [0, 0, 1,   70]])




```python
# 1行目をk倍して3行目に足すのはどうでしょうか?
C = Matrix([[1,0,0],[0,1,0],[k,0,1]])
D = Matrix([[1,2,0,50],[1,1,0,150],[2,3,1,70]])
C*D
```




    Matrix([
    [    1,       2, 0,        50],
    [    1,       1, 0,       150],
    [k + 2, 2*k + 3, 1, 50*k + 70]])



## 行の基本変形を行列の掛け算に置き換える(:42)


```python
# 3行目-2行目
E = Matrix([[1,0,0],[0,1,0],[0,-1,1]])
F = Matrix([[1,2,1,270],[1,1,0,150],[1,1,1,220]])
L = E*F
L
```




    Matrix([
    [1, 2, 1, 270],
    [1, 1, 0, 150],
    [0, 0, 1,  70]])




```python
# 1行目-3行目
G = Matrix([[1,0,-1],[0,1,0],[0,0,1]])

M = G*L
M
```




    Matrix([
    [1, 2, 0, 200],
    [1, 1, 0, 150],
    [0, 0, 1,  70]])




```python
# 1行目-2行目
H = Matrix([[1,-1,0],[0,1,0],[0,0,1]])

N = H*M
N
```




    Matrix([
    [0, 1, 0,  50],
    [1, 1, 0, 150],
    [0, 0, 1,  70]])




```python
# 2行目-1行目
I = Matrix([[1,0,0],[-1,1,0],[0,0,1]])

O = I*N
O
```




    Matrix([
    [0, 1, 0,  50],
    [1, 0, 0, 100],
    [0, 0, 1,  70]])




```python
# 1行目と2行目の交換
J = Matrix([[0,1,0],[1,0,0],[0,0,1]])

P = J*O
P
```




    Matrix([
    [1, 0, 0, 100],
    [0, 1, 0,  50],
    [0, 0, 1,  70]])



# 複数の行の基本変形を1つの行列にまとめよう
このように，「行列のかけ算」で「行の基本変形」が行えるということは，  
このすべてのかけ算を行列 $\boldsymbol{ A }$ に左からかけると，  
ここで見たように，拡大係数行列の左側部分の小行列は単位行列になることを意味しています．  
実際にここで使った行列のかけ算をしてみると


```python
Q = J*I*H*G*E*F
Q
```




    Matrix([
    [1, 0, 0, 100],
    [0, 1, 0,  50],
    [0, 0, 1,  70]])



となり，拡大係数行列の左側部分は単位行列になっています．  
この左側の $5$ つの行列のかけ算を求めてみましょう．


```python
R = J*I*H*G*E
R
```




    Matrix([
    [-1,  1,  1],
    [ 1,  0, -1],
    [ 0, -1,  1]])



この行列を $\boldsymbol{A'}$ と書くことにして，$\boldsymbol{A'}$ を $\boldsymbol{A}$ にかけると単位行列 $\boldsymbol{E}$ になるので，この関係は  


```python

```

d3e106216b966176a66d044aa5bb33bfbf302d0f
ipynb
Jupyter Notebook
.ipynb_checkpoints/linear_algebra-checkpoint.ipynb
hidenori-t/math
132ce914a91015f34375c06ef36377de82042d2e
MIT
.ipynb_checkpoints/linear_algebra-checkpoint.ipynb
hidenori-t/math
132ce914a91015f34375c06ef36377de82042d2e
MIT
.ipynb_checkpoints/linear_algebra-checkpoint.ipynb
hidenori-t/math
132ce914a91015f34375c06ef36377de82042d2e
MIT
Qwen/Qwen-72B
1. YES
2. YES