- ベストアンサー
平面の式と逆行列
3点(0,2,2) (-2,0,0) (0,-2,-2次に)通る平面を求めました。 平面の式 ax+by+cz=0 にそれぞれ代入しa,b,c,dの連立方程式として求め、 2b+2c+d=0 -2a+d=0 -2b-2c+d=0 答えy-z=0 を得ました。次に、簡単化のため逆行列でa,b,cをdの式で求めようとしたところ、なんと行列式がゼロとなり求められません。 なぜ?直線上にない3点が定まれば平面が一意に定まり、当然逆行列も存在すると思ってましたが、違うのですか?また、この場合どうやって求めたらいいでしょうか?もちろんて計算ではなく自動計算化を考えてのことです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
←A No.3 a,b,c,d についての連立一次方程式と考えると 四元三連立となって式が不足するから、 d を定数項と解釈して、a,b,c についての方程式 と見なした。その結果、a,b,c が d の文字式で 表されるはずだったが、 a,b,c の三元三連立方程式を行列計算で 解こうとすると、係数行列が行列式 0 なので 逆行列が作れず、うまくいかない… という話だと思うけど。 連立一次方程式には、n 元 m 連立について、 n>m であっても、n<m であっても、 不定解を全て求めたり、解不能であることを判定 したりすることを含めて、一本道の手順で行う 一般解法が存在している。 広義には掃き出し法の一種、狭義には掃き出し法の バリエーションにあたるのだけれど、 線型代数の本には、そこまでの細部は書いてない ことが多くて、コンピュータープログラミングの 教科書などに説明がある。 別のアプローチとして、a,b,c,d の方程式の 未知数を減らそうとするときに、 今回の場合、d ではなく、b か c を定数に 持っていけば上手くいったことになる。 どの未知数を定数側に持っていくかは、 きちんと考えて選ぶ必要があり、 どれを移してもいいわけではない。 その選択が、先に触れた「ピボット選択」になる。 掃き出し法で解法を自動化する場合にも、 ピボット選択を組み入れた手順にしておく 必要があるということ。
その他の回答 (4)
- 中村 拓男(@tknakamuri)
- ベストアンサー率35% (674/1896)
えーと、d は書き落としなんでしょうね。 平面の式は ax+by+cz+d=0 をちゃんと使っているっぽい。 で、代数学的なところは置いといて、幾何学的なところを分析すると a, b, c, d は独立ではないので、a, b, c を dに対する比で表そうという 意図は分かりますが、それは d ≠ 0 の場合、つまり平面が原点を含まない場合 でないとできません。 d=0なので、あなたの目論見は不可能なんです。比で表すなら基準は b か c にする必要があります。
お礼
dでなくcを選び再計算したところ、行列式≠0で答が出ました。 なるほど納得です。
- oignies
- ベストアンサー率20% (673/3354)
そもそも、提示された平面の式にまちがいがあるのですが 平面の式 ax+by+cz=0 じゃなくて ax+by+cz+d=0 に代入して abcに関する三つの方程式をえたのでは? そこから y-z=0 を得たの部分はあっています。 ただし、そのあとでいっていることの意味がわかりません。 簡単化のために逆行列でa,b,c,をdの式でもとめようと したところ・・・ の部分です。 簡単化もなにも、暗算で溶ける程度の方程式にすぎない のに、どこをどう簡単化するのですか? 行列式そのものを使用するような問題じゃないです。
お礼
ありがとうございます。 dがないのは御指摘の通り記入ミスです。すみません。 簡略化 説明不足ですみません。 計算は単純ですが数が多いため手計算では消化出来ず、エクセルで対処する予定です。なので逆行列等を用いた「数値さえ入力すれば勝手にやってくれる」簡略化=自動計算化が必要です。ところが 動作チェックの段階で数値によってはエラーを起こし、原因を調べたところ上記質問内容に行き着きました。 ということを書いてしまうと、回答がエクセル関数の使用に偏り私自身もそれに頼ってしまい内容理解が出来ないことを懸念したため、省略しました。
- alice_44
- ベストアンサー率44% (2109/4759)
行列式が 0 になって…というのは、 a,b,c についての方程式の係数行列 0 2 2 -2 0 0 0 -2 -2 の行列式が 0 ということですね? 連立一次方程式が解を持つ条件は、 係数行列が非 0 なことではなく、 係数行列と拡大係数行列の階数が等しいこと なので、問題ありません。 拡大係数行列とは、係数行列を一列増やして 定数項の列を置いた行列のことで、今回の場合 0 2 2 -d -2 0 0 -d 0 -2 -2 -d のことです。 行列の階数(rank)について知らなければ、 それについて、少し本で調べた後で、 自動解法については、 "掃き出し法 二重ピボット選択" を google してみてください。
お礼
ありがとうございます。 逆行列が出来ない=解なし、ではないようですね。ピボットとしてdを選んだため失敗した様なので選べるようにすればいいのですが、、ええと、修正するのは私の手に余る可能性が高いのでこのまま使おうかと思ってます。使用数値はかなり限定されており、その範囲内では逆行列ゼロはありませんので。
- Tacosan
- ベストアンサー率23% (3656/15482)
「簡単化のため逆行列でa,b,cをdの式で求めようとした」ってのは ・「簡単化」とはどのような操作のことでしょうか? ・具体的にはどのようなことをしたんでしょうか? 今の場合定数項が 0 になってるところが何か影響してるんじゃないの?
お礼
ありがとう。ございます。 手計算でなく自動計算させる意味の簡略化です。
お礼
ありがとうございます。 手計算で平面を求めた方法を思い起こすと、確かにbかcをピボットにしてました。逆行列を求める時にdを選んだことになります。手計算も結局は掃き出し法を無意識にやっていたのですね。ピボットを選び行列式を計算する動作を全変数で行い、行列式≠0となるピボットを選び改めて逆行列を計算すればよい。掃き出し法は慣れてないので逆行列トライします。