• ベストアンサー

EXCELで複素数の行列計算をする方法は?

EXCELで逆行列の計算ができて便利です。  MINVERSE 引数を複素数にはできないのでしょうか。 または、関数の組み合わせなどで、簡単にできるほうほうがありましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>引数を複素数にはできないのでしょうか 引数は1つだけ見ると、実数であるはずです。ただa+biの aとbを第1引数、第2引数とかにそれぞれ割り当てることは行われています。 私は知識が不十分ですが、複素数a+biをそのまま演算に使うことは、コンピュターでは出来ないと思います。コンピュタの記憶や演算は根本のところ実数値しか扱えないからです。扱えるように見せているのはa,bの組みを意識してアルゴリズム内で理論にかなうように解決(処理)しているからです(複素計算パッケージなど)。 これは色々な理系ソフトで当然考えることです。 複素数(a,b)のデータ形式を独自に決めたりもあります。 http://www.cybernet.co.jp/matlab/support/webcourse/module/3_3.shtml ただ数値(データ)形式(1語128ビットとかの)そのものから、実数部と虚数部を1データ内に持つ形式(指数表示の指数部・仮数部のように)も研究されているとは思いますが。 http://www.issp.u-tokyo.ac.jp/center/vppman/node24.html ------ ●下記関数が使えないか検討してください。 エクセルでは、例えば http://www2.odn.ne.jp/excel/function.html を開き、編集-このページの検索-(検索語)複素数で 検索して見てください。15個以上の関数が出てきます。 COMPLEX,IMABS、IMAGINARY、IMCONJUGATE、IMCOS、IMSIN、IMDIV、IMEXP、IMLOG10、IMLOG2IMPOWER、IMPRODUCT,IMREAL、IMARGUMENT、IMSUB,IMSUMなど。 ●エクセルの「配列」機能が使えないか検討してください。a+biのa,bを配列(a,b)と考えることになります。 A+B、A-C、A*Bなどが出来ます。但しA*Bは 要素の積です。ドット積・スカラー積・内積ですから注意のこと。 http://apollo.mse.waseda.ac.jp/ITA/oishi/document/emat.htm に判りやすい解説があります。

noname#4461
質問者

補足

複素数関数は調べてみました。逆行列を求める計算式をいれれば、できそうなのですが、計算が複雑になりすぎて、合わせることができません。(おそらく、計算ミス)。 配列の積などを計算するのでしょうか。難しいそうですが、面白そうなので、勉強してみます。本当にいろいろありがとうございます。

その他の回答 (1)

  • gukky
  • ベストアンサー率28% (17/60)
回答No.1

EXCELのワークシート関数を調べて見ましたが、複素数計算できるのは四則演算や複素数の大きさ、角度を求める関数や三角関数、指数・対数関数のようです。 行列の大きさがわかれば、逆行列を求める式(各要因の四則演算により求める)を使って複素数計算させることはできますが、ご質問の内容からするとこれではないと思います。 ですから結論として、ワークシート関数の組合せだけではできないと思います。 尚、matlabというソフトであれば複素数の逆行列を求めることはできますが、値段が高い(数十万円)です。但し学生割引というのがあって、学生であれば数万円で購入できるということを聞いたことがあります。

noname#4461
質問者

補足

ありがとうございます。逆行列関数は、使えないのですね。