• ベストアンサー

連立方程式が解ける条件とは

いま、FORTRANで連立方程式を解きたいと思っています。そこで、どんな方程式なら解けるのかということを人に聞いたところ、次の(1)と(2)の場合しか解けないと言われました。 (1)マトリクスの形で表現できるもの (2)未知数が1つだけのもの これは本当ですか?(1)と(2)以外の場合は解けないのですか?教えてください。 また、(1)と(2)しか解けない場合でも、そうでない場合でも、その理由を簡単に説明してください。 よろしくお願いいたします。

  • honisu
  • お礼率78% (131/167)

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

  • ベストアンサー
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.1

(1)(2)のような単純な判断にはなりません。 実数または複素数の場合は、次のように考えます。 [ア]未知数がN個ある。 [イ]独立で、矛盾しない方程式がM個ある。 この場合、M>N なら解けません。M≦Nなら解けます。ただし、M<Nの場合は、不定方程式といって、解の中に任意の値をもつ変数が入ります。 (例)2つの未知数x,y について1つの式 x+y=1 がある場合、解はtを任意の値として x=t, y=1-t 「独立」の意味は、ある方程式から別の方程式を導くことができないということです。たとえば、式1と式2から式3が導ける場合、これらは独立ではありません。 (例)x+y+z=3, x-y-z=1, y+z=1 は独立ではありません。 方程式が矛盾する場合は解けません。 (例)x+y=3, x+z=4, z-y=5 は矛盾しています。 変域が限られている(たとえば整数)場合は、特殊な取り扱いが必要です。また、二次以上の方程式では、解が複数ある場合や、複素数なら解があるが実数では解がないという場合があります。 連立一次方程式で、未知数がN個、方程式がM個 の場合は、係数を行列で表わして、 AX=B A:係数の行列(N行M列) X:未知数の列ベクトル(N行1列) B:定数項の列ベクトル(M行1列) と書けます。マトリクスとは行列のことです。 行列式とか、行列の階数というものを計算して、解の有無を判定します。どんな場合に解がありどんな場合に解がないのか、という議論は次のページに詳しく書いてあります。 http://next1.cc.it-hiroshima.ac.jp/MULTIMEDIA/linearalg02/node7.html

参考URL:
http://next1.cc.it-hiroshima.ac.jp/MULTIMEDIA/linearalg02/node7.html
honisu
質問者

補足

詳しく説明していただきありがとうございます。 補足します。私の扱っている連立方程式はM=Nです。したがって、理論上は解けるはずです。ただし、かなり複雑な方程式なので、マトリクスの形にはなりません。このような場合でも解けるのですか?教えてください。 また、回答文中に >この場合、M>N なら解けません。M≦Nなら解けます。 とありますが、この不等号の向きは逆だと思うのですが、どうなんでしょうか? よろしくお願いいたします。

その他の回答 (2)

  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.3

No.1です。補足への回答です。 不等号の向き(方程式が多すぎると解けない)は合っていますが、いくつか不適当なところがありました。 独立で矛盾しない方程式がN個を超えてあることはありませんので、[イ]を [イ]独立な方程式がM個ある と訂正します。 また、最後の部分で A:係数の行列(N行M列) は(M行N列)の誤りです。 さて、マトリクスにならないということは、二次以上の方程式であるか、非線形関数を含んでいるということだと思います。これが代数的に解ける見通しがない場合は、反復計算を使うことになります。反復計算にはいろいろな方法があります。たとえば、連立方程式が x1 = g1(x1,x2,...,xN) x2 = g2(x1,x2,...,xN) ... というように表される場合は、適当な初期値x1,x2,...,xNから出発して次のx1,x2,..,xNを求める反復計算が考えられます。これは収束するとは限りません。 また、連立方程式が f1(x1,x2,..,xN) = b1 f2(x1,x2,...xN) = b2 .... と表わされる場合、x1,x2,...,xNに適当な初期値を入れて求めた値とb1,b2,...,bNの差を残差e1,e2,...,eNとします。 ここで偏微分 ∂f1/∂x1, ∂f1/∂x2, ..., ∂fN/∂xN を求めるとこれらは行列になります。数式で求められない場合は数値微分によります。このとき、 (∂fn/∂x1)s1 + (∂fn/∂x2)s2 + … + (∂fn/∂xN)sN = en (n=1,2,...,N) となるようなs1,...,sNを偏微係数を係数とする連立一次方程式を解いて求め、xk-sk(k=1,2,...,N)を次の近似値とするニュートン法は、最初にかなり良い近似値を選べば高速高精度です。 解が実数の範囲でないときは、複素数での計算が必要になります。その他、初期値の選び方や精度の検討、反復をどんな条件によりどこで打ち切るかの検討、収束しない場合の判定とエラー表示の検討が必要です。

honisu
質問者

お礼

ご回答ありがとうございました。

  • k_riv
  • ベストアンサー率57% (105/183)
回答No.2

FORTRANで解くと言うことなので,多元連立1次方程式に限定すれば,代数的に解けるもの,解が存在するものは全て解けます。 別にマトリックス表現をしなくても,代数解法をそのままプログラミングすれば,解けます。つまり,解き方が分かっている連立方程式は,紙と鉛筆と時間さえあれば筆算で解けますね!そのときの解法をそのままプログラムにすれば解けると言うことです。ここで,マトリックスで表現するというのは,コンピュータの「最も解きやすい形で表現する」,位の意味です。 例えば,有限の元を持つ連立方程式でないと解けません。無限だと,代数的にも解けません。 例えば,多元連立1次方程式というのは,連立の数だけ未知数があります。3元連立方程式には3個の未知数があります。当然,連立の数よりも未知数の多い連立方程式は代数では解けません。これは,FORTRANという言語の問題でなく代数的な問題です。 例えば,0による除算を含む場合は,エラーになって解けません。ただし,0による除算を含まないような形に変形することで,出来るようになります。これも,代数的な問題でしょうね。 例えば,解がない場合。これも「代数的に解けない」に含まれますよね。 結局,代数的に解けないと解けないのです。逆に言うと,代数的に解ければ解けます。 これは,私の経験則ですが,専門的にどうなるかは,別の専門家の意見を聞いてみてください。

honisu
質問者

お礼

ご回答ありがとうございました。

関連する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)とか)は全く想定していません。 最終的にはプログラム化していくことを考えていますが、今はその前段階の考え方についてお尋ねします。 よろしくお願いします。

  • 連立方程式はなぜ解ける?

    中学で連立方程式を習って以来、 「文字2つに式2つだから解けるよね。」とか、「未知数3つに式が3つだから解けるね。」などと当たり前のように学校や塾で言われてきました。 初めは戸惑った記憶があるのですが、何度も言われたり自分で連立方程式を解くうちに「一般に未知数と式の数が同じ(あるいは式の方が多い)ならば解けるのか」ということを経験的に納得してきました。 しかし思い返すと、(私の記憶が正しければ)、学校の教科書に「一般に未知数と式の数が同じ(あるいは式の方が多い)ならば解ける。」なでという記述はなかったと思います。 基本的ながら、数学の一種のセンスとして重要なものの1つだと私は思うのですが、なぜ教科書には載っていないのですか? また、私が中学生に連立方程式の解き方を教えている際に、「文字数2つに式2つだから解けるね。」と言った時、「なんで?」と言われたらなんと答えたらいいのでしょうか? (「経験的に。」としか答えられません・・・。) また、(多分あると思いますが)式と未知数の数が同じでも絶対(どんなに数学が発達しても)解けない連立方程式というのはあるのでしょうか? 尚、当方は高校数学までしか知識ありません・・・。

  • 2元2次連立方程式

    次の連立方程式の解き方を教えてください。 ax^2+bxy+cy^2=0 dx^2+exy+fy^2=0 ここで、a,b,c,d,e,fは定数とする。2つの未知数に対して、2つの方程式があるので、理論上は解けると思うのですが、自明な解(x,y=0)しか求めることができませんでした。 どなたかこの2元2次の連立方程式の解き方を教えてください。よろしくお願いいたします。

  • 連立方程式の解法

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

  • 連立方程式について

    連立方程式について 連立方程式の解を求める際、係数を揃えるために、両辺に同じ数をかける時 がありますが、 ふたつの方程式が組み合わさった、連立方程式の場合、一方の方程式ともう一方の方程式に当てはまる解を求めているのに、なぜ一方の式の両辺に同じ数をかけた方程式ともう一方の方程式とを計算できるのですか?数をかける前と後の方程式は同じということですか?そうだとしたら、なぜ数をかけているのに同じということになるのでしょうか。 分かりずらい文章ですみません、、

  • 連立方程式 未知数より方程式の数が多いとき

    線形代数での連立方程式についてです。 今現在線形代数を勉強しているのですが、未知数より方程式の数が多いときはどうなるのでしょうか? 解は一つに定まるか不定になる思うのでしょうか。。。。 なぜなら Guass elimination で計算すると、たとえば (1) (2) 1 2 | 3 1 2 | 3 0 1 | 2 0 1 | 2 0 0 | 0 0 0 | 2 (1)のような場合だと解が一つに定まり、(2)なら不定だになると思うからです。 しかし、ネットで検索すると以下のサイトで、”方程式の個数が未知数の個数よりも多い連立1次方程式は,一般には解が存在しない.”とありました。 http://www.geisya.or.jp/~mwm48961/linear_algebra/simul_eq1.htm なぜでしょうか?

  • 未知数の多い連立方程式

    未知数が9個ある連立方程式を手計算で解きたいのですが、スムーズに解ける方法があれば教えて下さい。

  • 連立方程式について

    連立方程式について 連立方程式を解く際、式に番号をつけたり、(1)×2とか、(2)を(1)に代入とか説明を書いた形で習いました。 テストではなるべく効率よく速く解きたいのですが、そういった説明を省いては減点されるでしょうか。 加減法・代入法のやり方は理解できていて、答えもたいていは合っているのですが・・・。

  • エクセルで連立方程式

    エクセル初心者です。 x+y=11 120x+70y=920 この連立方程式をエクセルで解きたいのですが、どのようにすればいいのでしょうか。 x、y、z…などと、もっとたくさんの未知数?がある場合もあるのですが。 初歩的な質問かもしれませんが、よろしくお願いします。

  • ラプラス方程式の解法(情報処理として)と共役勾配法

    情報処理の数学はカテゴリ違いかもしれませんが、適当なところを見出せませんでしたので。 (以下、長文で申し訳ありません。) ラプラス方程式やポアソン方程式の境界値問題を解く方法にSOR法が あります。これは連立一次方程式の反復解法の1つだとも言えると思い ます。連立一次方程式の解法は通常AX=BとなってマトリックスAと既知 ベクトルBに対して未知ベクトルXを解くわけですが、ラプラス方程式 をSOR法で解く場合、AX=Bという形にはしません(そういう風に表現 はできますが)。例えば2次元を考えると100×100の2次元の領域を解く 場合、未知数は10000個です。これをAX=Bという風に考えたら、10000元 連立一次方程式を解くことになり、A(10000,10000)のようにメモリ確保 も大変ですが、実際にはそのように解きませんね。マトリックスAとい うメモリの取り方をしないのです。 100×100の格子領域でSOR法で解くとプログラムステップとしては数十 行ぐらいとなり、大したことはありませんね。 しかし、情報処理の連立一次方程式の解法の本を見ると、それはあくま でも連立1次方程式があった場合ということを前提としているのでその ようなメモリの確保から解説がスタートするようです。 そこで質問ですが、ラプラスやポアソン方程式を(前処理付)共役勾配 法などで解く場合、メモリ確保の前提条件としては連立一次方程式の形 ではないはずです。本を見るとマトリックス解法としての共役勾配法が 出ていますが、ラプラス方程式、ポアソン方程式の特化して解説してい る本などないでしょうか。また、簡単に説明できるのであれば教えて頂 きたいのですが。

専門家に質問してみよう