• ベストアンサー

行列のLU分解について教えてください

この行列AのLU分解を求めたいのですがたくさん資料などを見ていてもわかりません。 求め方をぜひ教えていただきたいです。  Aの第1行: 2,4,0  Aの第2行: 2,6,4  Aの第3行: 3,9,8 わかる方計算過程を教えてください。

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

  • ベストアンサー
  • tktk510
  • ベストアンサー率100% (1/1)
回答No.1

具体的な計算方法は↓を参照のこと。 http://akita-nct.jp/~yamamoto/lecture/2003/5E/lecture_5E/linearequations/node10.html L=1 0 0 1 1 0 3/2 3/2 1 U=2 4 0 0 2 4 0 0 2

参考URL:
http://akita-nct.jp/~yamamoto/lecture/2003/5E/lecture_5E/linearequations/node10.html
noname#30528
質問者

お礼

問題解決しました回答してくださってありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • R_Earl
  • ベストアンサー率55% (473/849)
回答No.2

LU分解が何を行うかは分かっているのでしょうか? A = LU となる下三角行列Lと上三角行列Uを求めれば良いだけですよね? 難しく考えないで、    1 0 0 L = a 1 0    b c 1    d e f U = 0 g h    0 0 i とおいて、LとUをかけてください。 その後A = LUですから、AとLUの各要素を比較して、 a~iのアルファベットに当てはまる数字を求めるだけです。

noname#30528
質問者

お礼

わかりやすい回答を頂まして感謝します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • すみません。行列式のLU分解について質問なんですが。

    すみません。行列式のLU分解について質問なんですが。 ある行列式AをLU分解するまではいいのですが、その後、どうやって固有値を求めたらいいのでしょうか? QR分解で求める方法の方が効率が良いのはわかっているのですが、気になるので、教えてもらえたら幸いです。 あと、あまり数学が得意でないので、噛み砕いて説明していただけるとほんと助かります。

  • LU分解の誤差

    javaで               元が{{a},{b},{c}}という3行1列の行  LU分解すると{{d},{e},{f}} となる行列があるとすると      (a+b+c=15200)-(d+e+f=15082)=128となり128の誤差がでるんですが誤差128はやはり大きすぎるので正しくLU分解が行われていないのでしょうか?

  • LU分解

    LU分解するプログラムで求められる行列はなぜはじめの掛け算を行う前の行列に対して小さな誤差が生じるのでしょうか?(ちなみに値は整数です) LU分解自体誤差が出るものなのでしょうか? おしえてください

    • ベストアンサー
    • Java
  • LU分解

    次の行列式をLU分解したいです。 2, 5, 4 (1, 4, 3) 1,-3,-2

  • LU分解

    題のとうりです。LU分解が全く理解できません...。教科書を見てもさっぱりですしネットで検索してみたんですが具体例がのってないので困っています (1 2 3) (4 5 6) (7 8 9) 例えば上記のような行列があったとしてこれをLU分解したらどうのような手順でなるのでしょうか?お願いします。

  • 逆行列(LU分解)を求める数値的なテクニック

     ある行列の逆行列をLU分解で求めるプログラムを使用しています。その行列の成分の大きさの最大値と最小値の差が10の30乗ほどあります。コンピュータで計算する場合、極端に大きな数字や小さな数字のまま計算すると正しく計算できないことがあります。AA-1=Eなので、行列の各成分をX倍すれば、求めたい逆行列A-1のX倍の逆行列が求まります。これをX分の1にすれば、求めたい逆行列を求めることができます。  すなわち、各成分の値がコンピュータで処理するのに適していない場合、ある種の補正によって、計算が可能となり、出てきた逆行列はその補正とは反対の操作をすることで求めたい逆行列を求めることができます。  そこで質問です。  コンピュータで逆行列を計算するのに適した行列の成分の値の大きさはいくつ程度でしょうか。  またその適した値にするテクニックとしてはどのようなものがあるでしょうか。

  • 不完全LU分解前処理つき双共役勾配法についておしえてください。

    連立方程式を解くために不完全LU分解前処理つき双共役勾配法 について勉強しています。 前処理の際に、行列Aを不完全LU分解しその逆行列(LU)^(-1)というのを使用します。LU分解まではできたのですが、この逆行列は普通にLU分解+直接法という形でもとめるのでしょうか。だとしたら、直接法をつかっていてあまり高速化が期待できない様な気がしました。 不完全コレスキー分解つき共役勾配法(ICCG)のときは、不完全コレスキー分解後、間接的にAの逆行列をもとめて使用する方法がありましたのでなにかいい方法があるのかと思い質問しました。 はじめてのプログラミングで見当違いなことをいっているかもしれませんがよろしくおねがいします。

  • LU分解について

    こんにちは。 行列のLU分解のcによるプログラムを勉強している者です。 LU分解のcによるプログラムについてお尋ねしたいことがございます。 ニューメリカルレシピに、LU分解の方法として 以下のようなコードが記載せれておりました。 void ludcmp(double **a, int n, int *indx, double *d) { int i,imax,j,k; double big,dum,sum,temp; double *vv; // 各行の暗黙のスケーリングを記録する. vv=vector(n); *d=1.0; // まだ行交換していない. for (i=0;i<n;i++) { // 行についてループし,暗黙のスケーリングの情報を得る. big=0.0; for (j=0;j<n;j++) if ((temp=fabs(a[i][j])) > big) big=temp; if (big == 0.0) printf("Singular matrix in routine ludcmp\n"); // 最大要素が0なら特異行列である. vv[i]=1.0/big; // スケーリングを記録する. } for (j=0;j<n;j++) { // Crout法,列についてのループ for (i=0;i<j;i++) { // 方程式(2.3.12)のi=j以外 sum=a[i][j]; for (k=0;k<i;k++) sum -= a[i][k]*a[k][j]; a[i][j]=sum; } big=0.0; for (i=j;i<n;i++) { sum=a[i][j]; for (k=0;k<j;k++) sum -= a[i][k]*a[k][j]; a[i][j]=sum; if ( (dum=vv[i]*fabs(sum)) >= big) { big=dum; imax=i; } } if (j != imax) { for (k=0;k<n;k++) { dum=a[imax][k]; a[imax][k]=a[j][k]; a[j][k]=dum; } *d = -(*d); vv[imax]=vv[j]; } indx[j]=imax; if (a[j][j] == 0.0) a[j][j]=TINY; if (j != n) { dum=1.0/(a[j][j]); for (i=j+1;i<n;i++) a[i][j] *= dum; } } free_vector(vv); } 例えば、LU分解させたい行列3×3の({4,7,6}{2,5,9}{3,1,8})だとしたら、 メイン関数にどのように書いたらLU分解を実行できるでしょうか? ニューメリカルレシピを買って読んでみたものの、よく理解できず、質問させていただきます。 稚拙な質問かもしれませんが、どうぞよろしくお願いいたします。

  • LU分解

    次の連立方程式をLU分解を用いて計算したいです 2x+4y+6z=28 x-y+5z=7 4x+y-2z=21

  • 行列式の因数分解です。。

    行列式の因数分解です。。 0  ,,a^2 ,, b^2 ,, 1 a^2 ,, 0  ,, c^2 ,, 1 b^2 ,, c^2 ,, 0 ,,, 1 1 ,,,,, 1 ,,,,, 1 ,,,,, 0 の行列式を因数分解するとどうなりますか?? 自分で計算したところ4a^2b^2-(c^2-a^2-b^2)^2 となりました。 これでいいのでしょうか??