• 締切済み

連立一次方程式の解法プログラム

数値解析で A(3,3)、B(3)、X(3)としたときに AX=B の計算でXを求めたいのですが Aの対角項が0なのでLapackやGaussの消去法が使えません 何か有効な数値計算法を教えていただきたいです。お願いします。

みんなの回答

  • f272
  • ベストアンサー率46% (8016/17133)
回答No.1

Gaussの消去法で,式と変数の順番を入れ替えて解けばよい。どのように入れ替えても解けないのであれば,それは解けない問題です。

関連するQ&A

  • 連立方程式の解法

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

  • 連立一次方程式を解く

    A[N×N] × X[N] = B[N]の式が与えられ、 X[N]について解く方法が知りたいです。 しかも、かなり大規模な計算です。 ここでの回答が困難であれば、ホームページや書籍を紹介して欲しいです。 ちなみに英語は分かりません。 連立一次方程式を簡単に解く方法にガウスの消去法がありますが、処理速度、メモリの扱いから言って、現実的ではないですよね。 バンドマトリクスも考えられますが、一応考えている行列は疎行列で対角線付近に非零が多いと思いますが、基本的に任意の行列になると思うので、バンドマトリクスが効果的とも思えません。 で、非ゼロだけを集めメモリ消費をおさえる、スカイライン法というのを知りましたが、どう言うアルゴリズムで、コーディングして良いのかも分かりません。 もしくは、既に数値解析用のライブラリがどこかで開発され、無料で公開されており、スカイライン法や他の解法も使用できるものは無いでしょうか。その時はルーチンの使用方法を教えてくれるとありがたいです。 私のプログラム環境はLinuxでgccかg++を使用しています。 または、SunOSでしょうか? 近々、2Ghz、1GMBになる予定。力技も可能? また、ネットワークを利用して並列処理をする技術は持ち合わせていませんし、環境もありません。 希望は上記式のNが数万以上の連立一次方程式を解きたいと思っています。億行くかな? 色々探しても数値解析となるとFORTRANに関するものが多いのはなぜ?CやC++では行われないのかな?

  • Σを含む連立方程式の解法

    Σを含む連立方程式の解法がわからなくて困っています。 例えば X=Σ(Ax^n+Bx^-n)*con(nθ) とします。nは1~∞です。 この式を二つの境界条件に代入してXに含まれる定数AとBを導こうとしています。nは下のような境界条件により決定するものです。 例えば x=a X'+X=0     x=b X=cosθ のような感じです。(具体的には違いますが今回は簡単のため) しかし、nが増加するのに伴って未知の定数が無限に増えてしまって答えが得られないのでは?と思います。 こうゆう場合はどのような考え方で解くのですか? どなたか教えてください。

  • 連立1次方程式の解法

    0 0 2 行列A= 1 2 3 -2-4-3 1 行列x= 2 3 4 行列b= 1 4 とする。 (1) 同時連立1次方程式Ax=0は自明でない解をもつかどうかを、その理由とともに書き、自明でない解をもつ場合は、その解を書け。 どなたか教えてください。

  • Navier-Stokes方程式の数値解法について

    N-S方程式の数値解法についての質問です.時間進行に粘性項に Crank-Nicolson法,移流項にAdams-Bashforth法を導入し,円筒座標系N-S方程式をSMAC法またはFractional Step 法で解く際,nとn+1の中間速度は画像のようになると思います.この中間速度を,Gauss-Seidel法かSOR法を使い反復計算を行い求めたいのですが具体的にどのような計算をすればいいのかよくわかりません.また,Fractional Step 法を用いる際は,この段階では圧力項ははずして計算すればよいのですか. 詳しく教えて頂けたら幸いです.ご回答宜しくお願いします.

  • 連立方程式についてのご質問

    連立方程式についてのご質問です。 X_sは、N*1ベクトル A_ijは、N*N行列 Bは=(1,....,1)'N*1ベクトル |A_11 A_12 ・・・ A_1K |  |X_1|  |B | |A_12 A_22      ・ |*| ・ |=| ・| | ・  ・        ・ |  | ・ | | ・| |A_K1 A_k2 ・・・ A_KK |  |X_k|  |B | (| |は行列を表しています。) 上記式をXについて解きたいのですが、各変数がベクトル・行列表記なのでよく分かりません。 X=~。の形で解を求めることができるのでしょうか? (やはりN>K,N=K,N<Kの場合によって違う・・?) それと、具体的な数値解はどのように求めるのでしょう? A_ij,X_s,Bがスカラーである場合は、ガウスの消去法、吐き出し法などで計算することができます。 上記のように各要素がベクトル・行列表記の場合はどのように計算するのでしょうか。 未熟な質問で申し訳ございませんが、よろしくお願い致します。

  • 連立方程式の解法

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

  • 行列と連立1次方程式

    行列と連立1次方程式 連立1次方程式AX=Oの解 (1)連立1次方程式{ax+by=p⇔(a b)(x)⇔(p)⇔AX=Pと行列で表される。 cx+dy=q (c d)(y) (q) (1)の方程式で、P=Oのとき (2)方程式AX=Oは常にX=0を解にもつ (3)方程式AX=OがX=O以外の解をもつ⇔⊿(A) 解説 [1]A^-1が存在するとき AX=Oから、A^-1(AX)=A^-1O ゆえにX=O→解はx=y=0だけ [2]A~-1が存在しないとき すなわち ⊿(A)=ad-bc=0のとき,ad=bcであり、ax+by=0とcx+dy=0は、ともに定数項が0であるから同値となる。 教えてほしいところ 1.(3)の場合なんですが確かに、X=Oを解にもたないのでO以外と言えますが、O以外で必ず解をもつといえる理由を教えてください また、⊿(A)=0と同値であるといえる理由を教えてください。 2.ax+by=0とcx+dy=0は確かに定数項は0ですが、a=c,b=dかどうかわからないと同値とはいえないのでは??

  • 最小2乗法における連立方程式の計算法を教えて下さい

    最小2乗法に関して E=Σ(y-ax-b)^2 ∂E/∂a=Σ(y-ax-b)×2×(-x)=0 ∂E/∂b=Σ(y-ax-b)×2×(-1)=0 ここまでは分かるのですが、aとbを求めるにあたって、恥ずかしながらどのように連立方程式の計算をすればいいのか分かりません。 どなたかこの連立方程式の計算過程を分かりやすく教えて下さい。宜しくお願い致します。 それとこの計算に関してある本を見たところ、Σb=n として計算するとありました。 なぜΣb=nとしていいのかも合わせて教えて頂けると嬉しいです。

  • 連立方程式の解き方を教えてください。

    (ア)2X-y=-7    3ax+2by=-24 (イ)2ax-3by=-7    3x-8y=2 において、(ア)の解のxに1を加え、yから2をひいたそれぞれの値は、(イ)の解のx、yに等しい。a、bの値を求めなさい。 という問題です。どうしても回答と同じにならないので、やり方が間違っているようです。やり方を教えてください。a=2、b=-3