• ベストアンサー

Excel-VBAで内臓のMINVERSE,MMLUT関数を使って53行以上の連立一次方程式の解法

ExcelでMINVERSE,MMLUT関数を使って連立一次方程式を解く場合,52元が制限です。53元以上の連立一次方程式は解けないのです。ExcelのMINVERSE,MMLUT関数をそのまま使って,53行以上の連立一次方程式を解くにはどうしたらいいでしょうか。制限以内の行列数に分割して解く方法がありそうな気がしますけど,お分かりの方,教えて下さい。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >>52元が制限です >これはへルプ、実際経験、書籍・WEBの記述のどれに拠ったものでしょうか。 「52」というのは、 http://support.microsoft.com/default.aspx?scid=kb;ja;416526 [XL2000]配列のサイズの制限について さらに、 http://support.microsoft.com/default.aspx?scid=kb;ja;166342 操作で Excel 2000 のと Excel 2002 のと Excel 2003 での配列で使用する制限の説明 に出てくることで、正確には、52×52のマトリックスです。 ただ、逆行列は、有名なアルゴリズムですから、 http://www.keep-on.com/excelyou/2000lng2/200010/00100213.txt ここを参考にしてみてください。 英語でも、検索すれば出てくるはずです。本来は、VBのコードです。 ただし、計算は、一方通行ですから、お間違えないように。検算しようと思って、MINVERSE と MMULT を行っても、元には戻りません。 VBAでうまくいかない場合、そのデータ型を工夫してみると良いです。

warigosoba
質問者

お礼

Wendy02さん 早速の回答ありがとうございます。たいへん参考になりました。私の使っているパソコンのExcelはWindowsXPに付いてたものです。最新のExcelは機能UPされたかもしれません。これから確認してみます。 Wendy02さんの活躍すごいですね。多くの皆さんがどれだけ助かっていることか。益々のご活躍を祈念します。 今後も何かの機会にお世話になるかもしれません。よろしくお願いします。感謝!感謝!です。

その他の回答 (1)

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

詳しくない者ですが >52元が制限です これはへルプ、実際経験、書籍・WEBの記述のどれに拠ったものでしょうか。 http://www.ryukoku.seikyou.ne.jp/%7Ea95273aq/educate2005/computer/inverse/index.html の最後の記述では、256元となっていますが。 多分エクセル列数の制限256を意識したものだと思います。 そしてMINVERSE関数は、列数=行数の条件ですね。 どちらが正しいか、別のことを言っているか述べる知識は私には残念ながらありません。 この程度の質問になると、OKWEBでは的確に答えられる回答者層がごく少ないようです。といっても正解は1人でもよいわけですが。 数学カテゴリや他の質問サイトが適当では。

warigosoba
質問者

お礼

imogasiさん 早速の回答ありがとうございます。たいへん参考になりました。これを手がかりに,確認と勉強してみます。今後もいろいろ教えて下さい。感謝!感謝!です。

関連するQ&A

  • 連立1次方程式の構成の問題について

     3つの変数(a,b,c)を未知とする、連立1次方程式があり、さらに、(b,c,d)を未知数とするもう1つの連立1次方程式があります。未知数としてb,cの部分は重なっていますが、今のままでは2つの連立1次方程式は全く別ものとなっています。しかし、やはりb,cは共通だと考えた場合、今度は(a,b,c,d)を未知数とする4×4の連立方程式を構成して解くということになります。  つまり、2組の連立1次方程式(3元)から1つの4元の連立1次方程式を作るということになります。この場合、4元連立1次方程式を作る方法は唯一であるはずなのですが、どのように考えたらいいでしょうか。解き方としては逆行列などを作用させて...と考えます。変な行列を作ってしまたら(例えば1つの行が(0,0,0,0)とか)になると逆行列が作れず唯一の解が出ないと思います。でもちょっと考えたら(作り方をまちがえたら?)そうなってしまう可能性があります。このように2つの連立方程式からちょっと大きな別の連立方程式を作って逆行列で解く方法について教えて頂きたいのですが。 なお、3×3は行列式は非ゼロであり、至極無理のないものを考えています。変なマトリックス(係数が10^(-8)とか)は全く想定していません。 最終的にはプログラム化していくことを考えていますが、今はその前段階の考え方についてお尋ねします。 よろしくお願いします。

  • 連立方程式の解法

    連立方程式: Ax=B (A;係数行列、x;未知数、B;右辺行列) において detA = 0 であった場合、この解は一義的には定まらない という事なのですが、 このことはSOR法などの反復法も 使えないと言うこと言ってるのですか? detA = 0 の連立方程式はどうしても解けないのですか?

  • 連立方程式の解法

    有限要素法のプログラムにおいて、連立方程式を解く方法にガウスの消去法を使用しています。ガウスの消去法の他に、行列を解く方法や計算精度が上がるテクニックなどあれば教えてほしいのですが‥‥

  • 連立方程式

    こんばんは。 本来はN元連立方程式を考えているのですが、ここでは5元連立方程式として質問させていただきます。 今、下記の5元の連立方程式を考えます。 u[0]-2*u[1]+u[2]=a u[1]-2*u[2]+u[3]=b u[2]-2*u[3]+u[4]=c u[3]-2*u[4]+u[5]=d u[4]-2*u[5]+u[6]=e (a~eは定数で、左辺はu"を差分表示したものです) これでは方程式の数が2つ少なくて解けないので、条件としてu[0]=u[5]、u[1]=u[6]とします。 上の条件を考慮して行列になおすと、 -2 1 0 0 1 1 -2 1 0 0 0 1 -2 1 0 0 0 1 -2 1 1 0 0 1 -2 となり、これをガウス・ジョルダン法で解こうと思っているのですが、行列式が0になってしまい解けません。つまりこの連立方程式は自明な解しか存在しないと言うことでしょうか?ガウス・ジョルダン法以外の別の解く方法か良いテクニックがありましたらアドバイスお願いします。 また分かりにくい場合は補足要求お願いいたします。

  • 連立一次方程式の行列を使った解法

    質問です。 y-xy=0 -2x+y=0 上の2つの連立方程式を、クラーメルの公式のような、 行列を使って、x=y=0以外の解を求めたいのですが方法が分かりません。どなたか教えてください。 よろしくお願いいたします。

  • 連立方程式を解きたい!

    気体の実験の結果をまとめるために、たくさんの連立方程式をとかないといけません。しかも、解があるのかもよくわからないのですが・・・。例えば以下のような連立方程式です。 y=(2621.28x-94332.37)/(-207.01x-213.45) y=-(160.73x+40124.02)/(115.06x+786.02) こういう式をたくさん解くために、エクセルでやる方法やフリーソフトなどは無いのでしょうか?がんばって手で解いていくしかありませんか?それとも、上の問題でも簡単に関数電卓などで解けますか?連立ではなくて、因数分解をする手前まではできたのですが、そこから難しくて・・・。 ご存知の方教えてください!!!

  • 準ニュートン法による連立方程式の解法

    勾配をZeroに収束させることで最適化させる資料は見かけますが、連立方程式を解く場合についても近似ヘッセ行列の更新方法は同じでしょうか?ご回答ないしはサイトをご存知でしたら教えて頂ければと思います。

  • 5元連立方程式を解きたい

    複雑な方程式を解きたいと考えています。 方程式は、未知数は5つ、関係式も5つあるので、 解析的に解くことが可能な5元連立方程式だと思います。 複雑、といっても、高度な関数などが登場するのではなく (せいぜい三角関数程度)、項の数がかなり多いだけです。 とりあえず手計算を試みたのですが、 項を書き下すことすら難しいような状況で、 そのまま計算を進めても、結局、解まで辿り着けたことはありません (数人で挑戦したのですが、みんな駄目でした)。 フリーの数式処理ソフト Maxima も導入して計算させてみたのですが、 エラーを吐いてしまい、やはり解は求まりませんでした (誤植等が無いか何度も確認しましたが、駄目でした)。 他の、有償のソフトならば解ける可能性はあるでしょうか? また、方程式が解析的に解けるものなのかどうかを 判断する方法などがありましたら、お教え下さい。

  • できるだけスマートに連立方程式を解いてください

    「ある学校の生徒数は、去年180人だった。今年は、男子が15%増え、女子が5%減り、生徒数が全体で11人増加した。去年の男女の生徒数を求めなさい」 以上の文章題をもとに立てた連立方程式です。 x + y = 180・・・(1) 1.15 x+0.95 y=191・・・(2) 質問:この連立方程式を解くにあたって、「できるだけスマート」に、連立方程式の解を導き出してください。尚、中学生で習う範囲でできるだけスマートに解いてください。 因みに、この質問の意図は、私はあまり連立方程式をスマートに解けないからです。

  • 行列を用いて連立一次方程式を作る問題について

    解ベクトル(x e)を用いてこの国の為替市場が均衡する。この国の通貨に対する需要量(供給量)と為替レートを求めるための連立一次方程式を表記せよという問題があるのですが、この場合の係数行列は2×2ですか? 需要関数x=100-e 供給関数x=-300+5e という条件が与えられていて、 (1)でその連立一次方程式を表記する問題 (2)ではその求めた連立一次方程式とクラメールの公式を用いて均衡為替レートを求めよ、という問いになっています。 隠れた均衡式xd=xsを含めて考えて3×3の係数行列として計算するとちょうど綺麗な数字(100)が出てくるのですが、解ベクトル(x e)は2つしかありません。しかしそのまま二つの式だけで求めようとすると割り切れない値(-400÷-6)が出てきてしまいます。 これはきちんと係数行列をまとめる方法があるのでしょうか?それとも単純に自分のミスでしょうか・・?

専門家に質問してみよう