• 締切済み

数式処理ソフトでの式の簡単化について

数式処理ソフトmaximaで逆行列を求めることをやりました。7×7程度であり、手でやってもできそうなのですが、間違いそうですし、時間の節約になるのでソフトウェアでやりたいと思いました。添付した画像がその例です。結構ゼロもありますし、ものすごく複雑な形ではなさそうという風に思えるのですが、ソフトウェアにかけると長くなります。その理由の1つは簡略的に表示できるものをそのまま残しているからです。例えば、逆行列は行列式で割るという形式になりますが、それを行列の各要素全部に一律にかけるとかしているようです。逆行列の前にくくりだしておけばいいのにというわけです。また、差し引きゼロでクリアされるところが残ったり、行列式も長たらしく示すのではなく、くくれるところはくくって積の形式にするとかです。別件ですが、sin^2+cos^2=1を使って簡単表示することすらやってくれないことがありました。今回は行列ですが、簡単化するところは簡単にして手短に表示してほしいということをソフトウェアに指示することはできるのでしょうか。手計算で式を誘導していくときに、複雑な式からどんどん項が消えていって最後には短い式が残って達成感があるということがありますが、数式処理ソフトだとそれがないように思えるのですが。(x-x)(a+b)ですら0にならないみたいな。今回のソフトはmaximaです。よろしくお願いします。

みんなの回答

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.2

「分割支配」なら、     ↓ 参考 URL >ブロック行列の行列式,逆行列の公式と証明 … など。   

参考URL:
https://mathtrain.jp/blockmatrix
  • f272
  • ベストアンサー率46% (8477/18147)
回答No.1

入力 factor(expand(determinant(matrix([g^3,g^2,3*e^2,e*g,e^3,e^2,e^2*g],[g^3,g^2,0,0,0,0,0],[0,0,0,0,e^3,e^2,0],[3*g^2,2*g^2,0,0,0,0,0],[0,0,0,e,0,0,e^2],[0,0,g^2,g,0,0,0],[0,0,0,e,3*e^2,2*e,0])))); 答え -3e^8*g^5*(2g-3)

skmsk1941093
質問者

お礼

回答ありがとうございました。expand, factorで包むということですね。expand と factorはやろうとする方向が逆という不思議もありますが。ratsimpという関数もあると今、本を見たら書いてありました。sin^2+cos^2=1とかx^3+2x+y=1という式が別にあってそれを使ったら式が簡単化されるというような指示を出すことはできるでしょうか。

関連するQ&A