コンテンツにスキップ

連立一次方程式

拡大係数行列

𝑁=1,2,3,…個の未知数𝑥1,…,𝑥𝑁と𝑀=1,2,3,…個の等式からなる次の形の連立方程式

{𝑎11𝑥1+…+𝑎1𝑁𝑥𝑁=𝑏1,⋮𝑎𝑀1𝑥1+…+𝑎𝑀𝑁𝑥𝑁=𝑏𝑀

のことを連立一次方程式あるいは線形方程式系などという。 𝑀と𝑁が異なる場合は解がなかったり複数あったりするのでそのような場合を考える必要を感じないかもしれないが、さまざまな場合を扱えた方が良いのでここでは𝑀と𝑁が異なる場合を含めて考える(そもそも𝑀=𝑁でも解がなかったり複数あったりする場合が存在する)。 <h_twodim> で扱ったように、この連立一次方程式は行列とベクトルを用いて

(𝑎11⋯𝑎1𝑁⋮⋱⋮𝑎𝑀1⋯𝑎𝑀𝑁)(𝑥1⋮𝑥𝑁)=(𝑏1⋮𝑏𝑀)

と表すことができる。 ここで

𝐴=(𝑎11⋯𝑎1𝑁⋮⋱⋮𝑎𝑀1⋯𝑎𝑀𝑁),𝒙=(𝑥1⋮𝑥𝑁),𝒃=(𝑏1⋮𝑏𝑀)

として、𝑀×𝑁型の行列𝐴を連立一次方程式の係数行列、𝑀次ベクトル𝒃を定数ベクトル、𝑁次ベクトル𝒙を未知数ベクトルとそれぞれ呼ぶ。 また、連立一次方程式は

(𝑎11⋯𝑎1𝑁𝑏1⋮⋱⋮⋮𝑎𝑀1⋯𝑎𝑀𝑁𝑏𝑀)(𝑥1⋮𝑥𝑁−1)=(0⋮0)

のようにも変形できる。 この時の係数行列𝐴と定数ベクトル𝒃を並べて得られる𝑀×(𝑁+1)型の行列

𝐴̃=(𝐴𝒃)=(𝑎11⋯𝑎1𝑁𝑏1⋮⋱⋮⋮𝑎𝑀1⋯𝑎𝑀𝑁𝑏𝑀)

を連立一次方程式の拡大係数行列という。 連立一次方程式は係数行列と定数ベクトルが与えられたら定まるので、拡大係数行列は連立一次方程式の必要な情報をすべて表現する。

基本変形

<h_twodim> で紹介した連立一次方程式の解法は方程式

𝐴𝒙=𝒃

の両辺に係数行列𝐴の逆行列を左からかけるというものであったが、 この方法が適用できるのは𝐴が正方行列つまり𝑀=𝑁であって逆行列を持つ場合である。 しかしながら今回は一般の状況で方程式を解くために別の方法を考える必要がある。 加えて逆行列の簡便な公式があるのは2次の場合だけで、3次以上だと連立一次方程式を発展させた方程式

𝐴𝑋=𝐼

を解く必要がある。

連立一次方程式を解くために使われる方法が基本変形である。 基本変形による方法は掃き出し法やガウスの消去法とも呼ばれる重要な解法である。

基本変形の基本的な着想は中学校で習う加減法である。 つまり、𝑀個の等式からなる連立一次方程式に対して次の三つの操作を考える。

  1. 二つの等式を入れ替える。
  2. ある等式を0でない定数倍する。
  3. ある等式に、別の等式の定数倍を加える。

これらをまとめて連立方程式の基本変形という。 基本変形は同値な変形になっており、繰り返し用いることで連立一次方程式を解くことができる。

例 1

鶴亀算の方程式

{𝑥+𝑦=8,2𝑥+4𝑦=26

を考える。 第2式に第1式の−2倍を足して、

{𝑥+𝑦=8,2𝑦=10.

第2式を12≠0倍して、

{𝑥+𝑦=8,𝑦=5.

第1式に第2式の−1倍を足して、

{𝑥=3,𝑦=5.

これにて解(𝑥,𝑦)=(3,5)が得られた。

これを拡大係数行列への操作に置き換えると次が対応する。

  1. 二つの行を入れ替える。
  2. ある行を0でない定数倍する。
  3. ある行に、別の行の定数倍を加える。

これらをまとめて行列の行基本変形という。 なお、行のところを列に変えることで列基本変形も定義でき、行基本変形と列基本変形を合わせて行列の基本変形というが、 連立一次方程式の基本変形に対応するのは行基本変形であることに注意する。

行列の基本変形を導入する利点は基本変形は以下の通りの可逆行列をかけることとして定式化できることにある。 つまり𝑀×𝑁型の行列に対する行基本変形は𝑖,𝑗=1,2,3,…,𝑀で𝑐をスカラーとして次の操作と考えられる。

  1. 第𝑖行と第𝑗行を入れ替える基本変形は、正方行列

    𝑃𝑀(𝑖,𝑗)=(⋱01⋱10⋱)

    を左からかけることである(三点で省略した部分は1)。

  2. 第𝑖行を𝑐≠0倍する基本変形は、正方行列

    𝑄𝑀(𝑖,𝑐)=(⋱𝑐⋱1⋱)

    を左からかけることである(三点で省略した部分は1)。

  3. 第𝑖行に第𝑗≠𝑖行の𝑐倍を加える基本変形は、正方行列

    𝑅𝑀(𝑖,𝑗,𝑐)=(⋱1𝑐⋱1⋱)

    を左からかけることである(三点で省略した部分は1)。

これらの正方行列𝑃𝑀(𝑖,𝑗), 𝑄𝑀(𝑖,𝑐), 𝑅𝑀(𝑖,𝑗,𝑐)をまとめて基本行列という。 なお、行基本行列と呼ばないのは、列基本変形は基本行列𝑃𝑁(𝑖,𝑗), 𝑄𝑁(𝑖,𝑐), 𝑅𝑁(𝑖,𝑗,𝑐)を右からかけることに相当するので行基本変形と共通であるためである。

基本行列はいずれも可逆である。 実際、

𝑃𝑀(𝑖,𝑗)−1=𝑃𝑀(𝑖,𝑗),𝑄𝑀(𝑖,𝑐)−1=𝑄𝑀(𝑖,𝑐−1),𝑅𝑀(𝑖,𝑗,𝑐)−1=𝑅𝑀(𝑖,𝑗,−𝑐)

である。 そのため行列の基本変形は同値な変形となっている。

例 2

やっていることは連立一次方程式の基本変形と同じだが鶴亀算の方程式の拡大係数行列を行基本変形すると以下のようになる。

(1182426)→(1180210)→(118015)→(103015)

ここから解は(𝑥,𝑦)=(3,5)が結論づけられる。

掃き出し法と行列の階数

基本変形を用いて一定の手続きで連立一次方程式を解く手法が掃き出し法(ガウスの消去法)である。 𝐴を𝑀×𝑁型の行列として第(𝑖,𝑗)成分について掃き出すことを以下で定義する。

  1. 𝐴の第(𝑖,𝑗)成分𝑎𝑖𝑗で第𝑖行を割る、つまり逆数𝑎𝑖𝑗−1をかける。
  2. 𝐴の第𝑖行以外の行(第𝑘行とする)から第𝑖行の𝑎𝑘𝑗倍を引く、つまり−𝑎𝑘𝑗倍を足す。

この操作により第𝑗列は第𝑖行だけ1でそれ以外の成分はすべて0となるように変形される。 なお、第(𝑖,𝑗)成分𝑎𝑖𝑗が0の場合はこの操作は行えないことに注意する。

この掃き出しを用いて𝑀×𝑁型の行列𝐴を以下のように変形していく。

  1. 最初𝑖=1, 𝑗=1とする。
  2. 第(𝑖,𝑗)成分が零の場合はそれより下に、つまり𝑘=𝑖+1,…,𝑀として第(𝑘,𝑗)成分が非零の行を見つけて第𝑖行と第𝑘行を入れ替える。
  3. 第(𝑖,𝑗)成分が非零になったところで第(𝑖,𝑗)成分について掃き出し、𝑖を1増やす。
  4. 非零の行が見つからない場合は𝑗を1増やす。
  5. 上記のことを繰り返して𝑖が𝑀を超えたり𝑗が𝑁を超えたところで変形を終了する。

この掃き出しを行簡約化といい、それよって行列は以下の形になる。

定義 1 (行簡約行列)

𝑀×𝑁型の行列が行簡約行列であるとは以下の条件が満たされることをいう。 各行(第𝑖行)に対して成分が非零である一番左の成分の列数を𝑗(𝑖)として(ただし全ての成分が零の時は𝑗(𝑖)=∞とする)、 𝑗(𝑖)は単調増加かつ第𝑗(𝑖)列は第(𝑖,𝑗(𝑖))成分だけが1でそれ以外はすべて零である。 またこの時、第(𝑖,𝑗(𝑖))成分を行簡約行列の主成分といい、その個数を行簡約行列の階数という。

例えば次は行簡約行列であり階数は2である。

(01∗0∗0001∗00000).

重要なことはこの行簡約行列は元の行列に対して一意に決まることである。 行簡約行列𝐴̄を(𝐴̃∗)と区分けすると左部分の𝐴̃も行簡約行列であることに注意する。

定理 2 (行簡約行列の一意性)

行列𝐴に行基本変形を繰り返し用いることで簡約行列𝐴̄1が得られて、別の変形方法によって簡約行列𝐴̄2が得られたとする時、𝐴̄1=𝐴̄2である。

証明

行基本変形は可逆なので、正則行列𝑃1,𝑃2が存在して𝑃1𝐴=𝐴̄1, 𝑃2𝐴=𝐴̄2が成立する。 よって、正則行列𝑃=𝑃2𝑃1−1により𝐴̄2=𝑃𝐴̄1とでき、このとき𝐴̄2=𝐴̄1を示せばよい。 列数𝑁についての数学的帰納法で証明する。 すぐわかることとして𝑁=1の時は成立する(行簡約行列は縦零ベクトル𝟎か𝒆1しかない)。 列数が𝑁で成立するとき列数が𝑁+1の場合について考える。 𝐴̄1=(𝐴̃1𝒂1), 𝐴̄2=(𝐴̃2𝒂2)と区分けして、 𝐴̄2=𝑃𝐴̄1より𝐴̃2=𝑃𝐴̃1かつ𝒂2=𝑃𝒂1である。 よって数学的帰納法の仮定より𝐴̃1=𝐴̃2であり、これを𝐴̃としてその階数を𝑅とおく。 このとき、行簡約行列の定義から各𝑖=1,…,𝑅に対して𝐴̃の第𝑗(𝑖)行は𝒆𝑖で、𝐴̃=𝑃𝐴̃から𝑃𝒆𝑖=𝒆𝑖を得る。 ここで階数の定義から𝐴̄1と𝐴̄2の階数は𝑅または𝑅+1である。 𝐴̄1の階数が𝑅の場合、𝒂1の第𝑅+1行目以降はすべて零なので、スカラー𝑐1,…,𝑐𝑅を使って𝒂1=𝑐1𝒆1+…+𝑐𝑅𝒆𝑅とできる。 よって、

𝒂2=𝑃𝒂1=𝑐1𝑃𝒆1+…+𝑐𝑅𝑃𝒆𝑅=𝑐1𝒆1+…+𝑐𝑅𝒆𝑅=𝒂1

である。 𝐴̄1=𝑃−1𝐴̄2なので同様の議論をすれば𝐴̄2の階数が𝑅の場合も𝐴̄1=𝐴̄2がわかる。 残るは𝐴̄1,𝐴̄2の階数がともに𝑅+1の場合であるが、この時は𝒂1=𝒂2=𝒆𝑅+1しかありえない。 以上より定理の証明が完成した。

このことにより、任意の𝑀×𝑁型の行列𝐴に対して簡約行列𝐴̄が一意に定まり、 その簡約行列𝐴̄の階数をもって元の行列𝐴の階数としてrank(𝐴)と表す。

注意 3

本によっては上記の行に対する掃き出し法と同様にして列に対する掃き出し法や列簡約行列を導入して、 さらに行簡約行列かつ列簡約行列である行列、すなわち簡約行列の階数により行列の階数を定める。 この場合、階数𝑅の簡約行列は

(𝐼𝑅𝑂𝑂𝑂)

と表される。

命題 4 (転置の階数)

行列𝐴に対して、

rank(𝐴𝖳)=rank(𝐴)

が成り立つ。

証明

𝐴𝖳に対応する行簡約行列は𝐴の列簡約行列の転置である。 𝐴の行簡約行列の階数も列簡約行列の階数も、簡約行列の階数に等しいので、二つは一致する。 したがって、rank(𝐴𝖳)=rank(𝐴)がいえる。

命題 5 (正則行列の階数)

𝑁次正方行列が正則であることはその階数が𝑁であることと同値であり、 その際の行簡約行列は単位行列𝐼𝑁である。 また、正則行列は基本行列の積になる。

証明

𝑁次正方行列を𝐴、その行簡約行列を𝐴̄とする。 階数の定義から𝐴の階数は𝐴̄の階数に等しく𝑁以下であることに注意する。 𝐴の階数が𝑁でないとすると、𝐴̄の階数も𝑁でなく𝑁−1以下であり𝐴̄の第𝑁行は零ベクトルとなる。 したがって𝐴の第𝑁行も零ベクトルとなりこれは正則でない。 以上より𝐴が正則の時、rank(𝐴)=𝑁である。 次に𝐴の階数が𝑁の時、𝑁次正方行列の行簡約行列𝐴̄の階数も𝑁であり、階数の定義より

1≤𝑗(1)<𝑗(2)<𝑗(3)<…<𝑗(𝑁)≤𝑁

がわかるので、𝑗(1)=1,…,𝑗(𝑁)=𝑁なので最終的に𝐴̄=𝐼𝑁がわかる。 また𝐴は基本行列の積になるので正則であり、逆に正則ならば基本行列の積になっている。

命題 6 (区分けと行簡約行列)

𝐴を𝑀×𝑁型の行列、𝐵を𝑀×𝐿型の行列とする。 𝑀×(𝑁+𝐿)型の行列𝐴̃=(𝐴𝐵)の行簡約行列を(𝐴̄𝐵̄)とおくと、 𝐴̄は𝐴の行簡約行列である。 さらにrank(𝐴̃)≥rank(𝐴)である。

注意 7

𝐵̄の方は𝐵の行簡約行列とは限らない。

この節の最後に<h_matrix> で触れた逆行列の同値な条件の証明を与える。

定理 8 (逆行列の同値な条件)

𝐴,𝑋を𝑁次正方行列とする。 ここで𝐴𝑋=𝐼𝑁か𝑋𝐴=𝐼𝑁のどちらか片方が成立したら、もう片方も成立して𝑋は𝐴の逆行列である。

証明

議論は行と列を入れ替えれば同様なので、𝑋𝐴=𝐼𝑁ならば𝐴𝑋=𝐼𝑁を示す。 𝑁=1,2,3,…についての数学的帰納法による。 𝑁=1の時は𝑁次正方行列はスカラーにほかならなく、スカラーの乗法の交換法則より𝐴𝑋=𝑋𝐴なので成立する。 𝑁次正方行列に対して成り立つとき、𝑁+1次正方行列𝐴を考える。 第1列が零ベクトルだと𝑋𝐴=𝐼𝑁は成り立たないので、第(𝑘,1)成分が非零となるような第𝑘行が存在し、第1行と第𝑘行を入れ替えてから第(1,1)成分について掃き出すことで

𝑃𝐴=(1𝒂𝟎𝐴̃)

となる𝑁+1次の正則行列𝑃が存在することがわかる。 ここで𝑋𝐴=(𝑋𝑃−1)(𝑃𝐴)より𝑋𝑃−1=(𝑥11𝒙12𝒙21𝑋̃)と区分けすると

𝑋𝐴=(𝑥11𝒙12𝒙21𝑋̃)(1𝒂𝟎𝐴̃)=(𝑥11𝑥11𝒂+𝒙12𝐴̃𝒙21𝑋̃𝐴̃)=(1𝟎𝟎𝐼𝑁)

よって、

𝑥11=1,𝑥11𝒂+𝒙12𝐴̃=𝟎,𝒙21=𝟎,𝒙21𝒂+𝑋̃𝐴̃=𝐼𝑁.

特に𝑁次正方行列𝐴̃,𝑋̃に対して𝑋̃𝐴̃=𝐼𝑁なので、数学的帰納法の仮定から𝐴̃𝑋̃=𝐼𝑁が成り立つ。 また、𝒂=−𝒙12𝐴̃であることに注意する。 したがって𝐴𝑋を計算すると

𝐴𝑋=(1𝒂𝟎𝐴̃)(𝑥11𝒙12𝒙21𝑋̃)=(𝑥11+𝒂𝒙21𝒙12+𝒂𝑋̃𝐴̃𝒙21𝐴̃𝑋̃)=(1𝟎𝟎𝐼𝑁)

以上より数学的帰納法から定理が示された。

連立一次方程式の解

連立一次方程式を解くことを考えると拡大係数行列に対する行基本変形は同値変形になる。 その結果として行簡約行列が得られたとすると実はそれで連立一次方程式はもう解かれた形になっていることがわかる。

つまり以下の流れで解くことができる。

  1. 連立一次方程式が与えられる。
  2. 対応する拡大係数行列を書く。
  3. 行基本変形して行簡約行列を求める。
  4. 対応する連立一次方程式を書く。
  5. 解を得る。

いくつかの具体例を見てみる。

例 1 (連立一次方程式の解法)

前の方で述べた通り解はただ一つに定まるとは限らず、解がない場合と複数ある場合が存在する。 複数ある場合は未知数のうちいくつかが自由に値を取れる状態になり解は無数にあることになる。

例 2 (解を持たない場合)

例 3 (解が無数にある場合)

これらの状況を一般化してまとめると以下の定理が得られる。

定理 4 (連立一次方程式の解)

𝐾上の𝑀×𝑁型の行列𝐴を係数行列、𝑀次の縦ベクトル𝒃を定数項ベクトルとして連立一次方程式𝐴𝒙=𝒃を考える。 𝐴̃=(𝐴𝒃)を拡大係数行列とする。

  • rank(𝐴̃)>rank(𝐴)の時、𝐴𝒙=𝒃は解を持たない。
  • rank(𝐴̃)=rank(𝐴)の時、𝑁次のベクトル𝒙̄と𝐿=𝑁−rank(𝐴)個の𝑁次のベクトル𝒚1,…𝒚𝐿が存在して、解は𝐿個のスカラー𝑐1,…𝑐𝐿∈𝐾を使って

    𝒙=𝒙̄+𝑐1𝒚1+…+𝑐𝐿𝒚𝐿

    と書ける。 特にrank(𝐴)=𝑁の時、解はただ一つである。

定数項がすべて零である連立一次方程式

𝐴𝒙=𝟎

を斉次連立一次方程式という。 この場合拡大係数行列𝐴̃=(𝐴𝟎)を行基本変形しても一番右の列は常に零ベクトルである。 そのため拡大係数行列を考える必要はなく係数行列𝐴を行基本変形したので十分である。 特にrank(𝐴̃)=rank(𝐴)である。 よく考えてみると零ベクトル𝒙=𝟎は解なので解を持たないことはない。 そのため前の定理は斉次連立一次方程式に対しては以下のように単純になる。

定理 5 (斉次連立一次方程式の解)

𝐾上の𝑀×𝑁型の行列𝐴を係数行列として斉次連立一次方程式𝐴𝒙=𝟎を考える。 このとき、𝐿=𝑁−rank(𝐴)個の𝑁次のベクトル𝒚1,…𝒚𝐿が存在して、解は𝐿個のスカラー𝑐1,…𝑐𝐿∈𝐾を使って

𝒙=𝑐1𝒚1+…+𝑐𝐿𝒚𝐿

と書ける。 特にrank(𝐴)=𝑁の時、解は零ベクトル𝟎ただ一つである。

係数行列の等しい連立一次方程式と斉次連立一次方程式

𝐴𝒙=𝒃,𝐴𝒙=𝟎

を考える。 ここでもし斉次とは限らない連立一次方程式𝐴𝒙=𝒃の解𝒙̄が一つ見つかったとする。 このとき、斉次連立一次方程式𝐴𝒙=𝟎の任意の解𝒚とスカラー𝑐に対して𝒙̄+𝑐𝒚は連立一次方程式𝐴𝒙=𝒃の解である。 そのため前の定理によって斉次連立一次方程式𝐴𝒙=𝟎の全ての解

𝒙=𝑐1𝒚1+…+𝑐𝐿𝒚𝐿

を得たとすると、連立一次方程式𝐴𝒙=𝒃の全ての解は

𝒙=𝒙̄+𝑐1𝒚1+…+𝑐𝐿𝒚𝐿

となる。 つまり方程式の解を一つ見つけて斉次方程式を完全に解くと元の方程式も完全に解かれる。 このような解のことを特解という。 連立一次方程式だと拡大係数行列を行簡約化する手間も係数行列を行簡約化する手間とあまり変わらないので斉次方程式のありがたみを感じないが、 微分方程式に対しても同様のことができしばしば重要になる。

逆行列の計算

この章の始めの方で述べたように𝑁次正方行列𝐴の逆行列を計算することは

𝐴𝑋=𝐼𝑁

を満たす𝑁次正方行列𝑋を見つけることである。 正方行列𝑋と単位行列𝐼𝑁を

𝑋=(𝒙1⋯𝒙𝑁),𝐼𝑁=(𝒆1⋯𝒆𝑁)

と区分けする(𝒆1,…,𝒆𝑁は𝑁次の標準基底ベクトル)と、

𝐴𝒙1=𝒆1,…,𝐴𝒙𝑁=𝒆𝑁

となる。 これらは連立一次方程式になっていて、つまり逆行列を求めることは上記の𝑁個の連立一次方程式を解くことに帰着される。

しかしながら𝑁個の連立一次方程式を順番に解くことは効率が悪い、なぜなら拡大係数行列は(𝐴𝒆1),…,(𝐴𝒆𝑁)であり係数行列が𝐴で同じであるため同じ計算を何度もしてしまうためである。 そこで拡大係数行列をまとめて次の𝑁×(𝑁+𝑁)型の行列

(𝐴𝒆1⋯𝒆𝑁)=(𝐴𝐼𝑁)

を行簡約化する。 もしこの行列が𝑁次正方行列𝑌=(𝒚1⋯𝒚𝑁)を使って (𝐼𝑁𝑌)=(𝐼𝑁𝒚1⋯𝒚𝑁) と行簡約化されたとすると、各𝑖=1,…,𝑁に対して(𝐴𝒆𝑖)は(𝐼𝑁𝒚𝑖)に簡約化されるので、 連立一次方程式𝐴𝒙=𝒆𝑖の解は𝒙=𝒚𝑖であり先述の議論により𝑌こそが𝐴の逆行列であることがわかる。 一方でこの形に行簡約化されない場合は逆行列を持たないこともわかり、まとめると以下になる。

定理 1 (逆行列の計算)

𝐴を𝑁次正方行列とする。

  • rank(𝐴)=𝑁の時、𝐴は正則であり、𝑁×(𝑁+𝑁)型の行列(𝐴𝐼𝑁)は(𝐼𝑁𝑋)の形に行簡約化されて、𝑋は𝐴の逆行列である。
  • rank(𝐴)≠𝑁の時、𝐴は正則でない。

注意 2

さらに𝑃(𝐴𝐼𝑁)=(𝐼𝑁𝑋)とおくと𝑋=𝑃なので、𝐴の逆行列は基本行列の積として表される。 特にすべての正則行列は基本行列の積として表される。

区分けと基本変形

行列の行基本変形は一行ずつ処理していくが、まとめて処理すると区分けされた行列の行簡約化がやりやすい場合がある。 そこで次の三つの変形を導入する。

  • いくつかの行をまとめて入れ替える。
  • 𝑅個の行に𝑅次の正則行列を左からかける。
  • ある𝐿個の行に、別の𝑅個の行に𝐿×𝑅型の行列を左からかけたものを加える。

これらはいずれも行基本変形の繰り返しとして実現できる。 (1)と(3)は容易にわかるが、(2)は前節で述べた通り正則行列が基本行列の積として表されることにより証明できる。

例 1

<t_blockinv> で見た通り𝐴を𝑁1次の正則行列、𝐷を𝑁2次の正則行列として𝑁1+𝑁2次の正方行列

(𝐴𝐵𝑂𝐷)

の逆行列は

(𝐴−1−𝐴−1𝐵𝐷−1𝑂𝐷−1)

で与えられる。 これを導出しようとすると上記の変形により

(𝐴𝐵𝐼𝑂𝑂𝐷𝑂𝐼)→(𝐼𝐴−1𝐵𝐴−1𝑂𝑂𝐷𝑂𝐼)→(𝐼𝐴−1𝐵𝐴−1𝑂𝑂𝐼𝑂𝐷−1)→(𝐼𝑂𝐴−1−𝐴−1𝐵𝐷−1𝑂𝐼𝑂𝐷−1)

とできるからわかる。