• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで逆行列を計算していますがエラーが出ます)

エクセルで逆行列を計算する際にエラーが発生する問題

このQ&Aのポイント
  • エクセル2007で108×108の対角行列の逆行列を計算する際に#NUMエラーが発生し、計算が進まない問題が発生しています。
  • 57×57以上の行列では行列式の値も#NUMとなり、逆行列の計算も#NUMとなってしまいます。
  • 問題の原因はソフトやPCの処理能力ではなく、別の要素に起因している可能性があります。

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.5

#1です。 「対角行列」は読んでいませんでした。 一般の場合、逆行列をMINVERSE関数で求めるとき、Excelは行列式を計算します。対角行列かどうかはExcelは知らない。計算値がExcel最大値を超えて「#NUM」になるなら、 「=MINVERSE(行列範囲/k)/k で、求められるのではないか、ということです。 たとえば、質問の場合、k=1000にするとか、k=10000にするとかで。 ただし、Excelは、、有効桁数が15桁ほどだったと思うので、繰り返し計算が多いとデータによっては誤差が出ます。それはまた別の話ですが。

alo1-pphg9
質問者

お礼

ありがとうございますm(__)m この方法で計算できました! 大変助かりましたm(__)m

その他の回答 (4)

  • f272
  • ベストアンサー率46% (8469/18131)
回答No.4

対角行列の逆行列ですね。対角成分を逆数にするだけですから,エラーが出るような状況にはならないはずだが,どうやって計算してるの?

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

#1です。 ああ、Excelの制限だけ気にしていたのですが、行列の桁数を下げればできるかも。 1000*|1.2345|とかにすれば回避できるか。でも制限に引っかかるかな。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

#1です. 訂正してください。 3.回避方法 行列の次数を下げて ↓ 3.回避方法 行列式の次数を下げて

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

1. 「ソフトやPCの処理能力の問題かとも思ったのですが違う」 どうしてそう思うのでしょうか。 Excel 2007の仕様では、処理できる最大値は、1.79769313486231E+308です。 逆行列を求めるには行列式の値を使います。 7桁~4桁の数の108乗を扱うことになれば、最大値をオーバーして「#NUM」になります。57×57ほどすなわち57乗程度が限度でしょう。 2. 逆行列がなければ、「#NUM」になります。行列式の値が0でなければいいのですが、それを確認するにも、1.の制限でそのままではできないでしょう。 3.回避方法 行列の次数を下げて計算して再組立てすればできるはずですが、108次から56次以下まで下げるなんて、プログラムでも組まなければにわかにはできないでしょう。 数学計算専用ソフトでも使いますか。

関連するQ&A