逆行列

Inverse[m]正方行列の逆行列を求める

逆行列

簡単な2×2の行列を入力する.
In[1]:=
Click for copyable input
Out[1]=
の逆行列を求める.公式が生成される際に,行列式がゼロではないと仮定される.
In[2]:=
Click for copyable input
Out[2]=
逆行列ともとの行列の積を取ると単位行列が得られるはずである.
In[3]:=
Click for copyable input
Out[3]=
Togetherを使い分母を約さなければ,もとの標準形単位行列が得られない.
In[4]:=
Click for copyable input
Out[4]=
有理数からなる行列を構成しておく.
In[5]:=
Click for copyable input
Out[5]=
厳密な逆行列が求まる.
In[6]:=
Click for copyable input
Out[6]=
もとの行列と掛け合せると単位行列が得られる.
In[7]:=
Click for copyable input
Out[7]=
特異行列の逆行列を求めようとすると,警告メッセージが表示され,入力したリストがそのまま返される.
In[8]:=
Click for copyable input
Out[8]=

文字成分からなる行列,および,厳密な数値成分からなる行列なら,Wolfram言語で厳密に逆行列を求めることが可能である.一方,行列成分の1つでも実数近似値のときは,逆行列も近似値になる.

近似実数を持つ行列を例にする.
In[9]:=
Click for copyable input
Out[9]=
数値計算的な逆行列を見付ける.
In[10]:=
Click for copyable input
Out[10]=
答をもとの行列に掛け合せると非常に小さな丸め誤差のある近似的な単位行列が得られる.
In[11]:=
Click for copyable input
Out[11]=
Chopを使えば,対角から外れた微小成分を削除できる.
In[12]:=
Click for copyable input
Out[12]=

Wolfram言語で逆行列を求めるとき,行列の成分が数値であっても厳密でありさえすれば,行列が特異かどうかが必ず判明する.一方,近似数値の行列から逆行列を求めるときは,行列が特異かどうかを確実に判明させることは困難である.判明するのは,行列式がもとの行列の成分に比べて極めて小さい,というくらいである.数値行列の逆行列を取ろうとし,それが特異であるという疑いがあるときは,Wolfram言語から警告が発せられる.

特異性の疑いがあるため,警告メッセージが表示される.
In[13]:=
Click for copyable input
Out[13]=
これは特異行列である.出力される警告メッセージは異なり,結果は使えない.
In[14]:=
Click for copyable input
Out[14]=

もとの行列で高精度の近似を使っているとき,Wolfram言語はその行列の逆行列を求めるときもその精度をなるべく保とうとする.

20桁精度の成分で6×6の行列を構成する.
In[15]:=
Click for copyable input
もとの行列に逆行列を掛け合せ,得られる積の第1行を表示する.
In[16]:=
Click for copyable input
Out[16]=
20桁精度で6×6のヒルベルト(Hilbert)行列を作る.ヒルベルト行列は,数値計算的に逆にするのが難しいことで有名である.
In[17]:=
Click for copyable input
求まる数値は正確である.ただし,精度は落ちる.
In[18]:=
Click for copyable input
Out[18]=

Inverseは正方行列に対してのみ機能する.「行列の高度な操作」で関数PseudoInverseを使った正方でない行列の逆行列の取り方を説明する.