• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ガウスの消去法のプログラム)

ガウスの消去法のプログラムで上手くいかない

このQ&Aのポイント
  • ガウスの消去法(部分ピボット選択)のプログラムを組んでみたつもりなのですが、上手くいきません。
  • 間違いだらけだと思いますが、アドバイスをして頂けませんでしょうか?
  • #ガウスの消去法 #プログラム #アドバイス

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

  • ベストアンサー
  • kary
  • ベストアンサー率55% (10/18)
回答No.1

ガウス消去法には3元配列は必要なく(Cで3元配列は使えないと思うのですが)2元配列でできます。概要は、例えば3元の連立方程式を解く場合、配列はX[3][4]を確保し、未知数の係数3×3を0~2列に、既知数の定数を3列に代入します。ピボット選択法ということですが、説明を簡単にするために、最大値の選択をしないとすると、 1. 0行目の全要素X[0][0~3]をX[0][0]で割る。 2. 1行目に対してX[1][i]-=X[0][i]*X[1][0](i=0~3)を行う。2行目も同様にする。これにより、0列目はX[0][0]=1.0、X[1~2][0]=0.0となる。 これを1ステップとして、次のステップは、 1. 1行目の全要素X[1][1~2]をX[1][1]で割る。(X[1][0]は0.0なので割らなくても良い) ... これを2行目まで繰り返すと、X[0~2][0~2]は対角要素のみが1.0で、その他は0.0の行列となり、X[0~2][3]が答えとなる。 このようにすると、X[3][4]の配列のみで計算ができます(ループカウンタ等は必要ですが)。ピボット選択法の場合は、1.の前に行の入れ替えをします。 ガウス消去法についての知識がおありな様でしたので、とりあえず概要のみの回答とさせて頂きました。(こんなことぐらい知ってるよ、という内容で参考にならないかも知れませんが...)

noname#6073
質問者

お礼

こんなに早く回答してくださって有難うございました。 >こんなことぐらい知ってるよ、という内容で参考にならな>いかも知れませんが・・・ 知らない事ばかりです、とても参考になりました。 C言語に関する知識なんかは本当に皆無に近い状態でしたのでご指摘を受けなければ、解らないままになっていたと思います

関連するQ&A