LU$BJ,2r(B (LU decomposition)


$B?t3XE*Dj5A(B

n$B!_(Bn $B9TNs$r9M$($k!%(B

$B9TNs@Q(B C = A B $B!'(B ($B9TNs(B C $B$N(B i $B9T(B j $BNsL\$NMWAG$r(B c_ij $B$H=q$1$P(B)

       n
c_ij = $B-t(B a_ik b_kj
       k=1

$B9TNs!&%Y%/%H%k@Q(B b = A x $B!'(B ($B%Y%/%H%k(B b$B$N(B i $B9TL\$NMWAG$r(B b_i $B$H=q$1$P(B)

      n
b_i = $B-t(B a_ik x_k
      k=1        

$BO"N)0lb $B$KBP$7$F!"(B A x = b $B$rK~$?$9(B $B%Y%/%H%k(B x $B$r5a$a$k!#(B

LU$BJ,2r(B $B$H$O(B $B9TNs(B A $B$r!"2<;03Q9TNs(B L$B!">e;03Q9TNs(B U $B$r(B $BMQ$$$F(B A = LU $B$HJ,2r$9$k$3$H!#(B
$B$?$@$7!"(B L $B$K$D$$$F$O(B l_ij = 0 (1 $B!e(B i $B!c(B j $B!e(B n)$B!$(B U$B$K$D$$$F$O(B u_ij = 0 (1 $B!e(B j $B!c(B i $B!e(B n)$B$G$"$k!#(B

LU $BJ,2r$rMQ$$$?O"N)0ly = b $B$r(B y$B$K$D$$$F2r$-!"$5$i$K!"(B U x = y $B$r(B x$B$K$D$$$F2r$/!#(B L, U $B$H$b;03Q9TNs$J$N$G4JC1$K2r$1$k!#(B ( x = U^{-1} L^{-1} b)


LU$BJ,2r$NJ,N`(B

Doolittle$B7?(B(l_ii=1), $B%/%i%&%H(B(Crout)$B7?(B(u_ii=1)

$B%/%i%&%H7?$G9M$($k$H(B A=LU $B$N(B A, L, U$B$N3F@.J,$K$D$$$F(B

        j
a_ij =  $B&2(B l_ik u_kj                    (i $B!f(B j)
        k=1
        i
a_ij =  $B&2(B l_ik u_kj                    (i <  j)
        k=1
$B$G$"$k$+$i!"AmOB$N:G8e$N9`$rJ,$1$k$H!"(B
        j-1
a_ij =  $B&2(B l_ik u_kj + l_ij             (i $B!f(B j)
        k=1
        i-1
a_ij =  $B&2(B l_ik u_kj + l_ii u_ij        (i <  j)
        k=1
$B$H$J$j!"$3$l$+$i!"4X78<0(B($B!y(B):
               j-1
l_ij =  a_ij - $B&2(B  l_ik u_kj            (i $B!f(B j)
               k=1
               i-1
u_ij = (a_ij - $B&2(B  l_ik u_kj) / l_ii    (i <  j)
               k=1
$B$,@.$jN)$D$3$H$,$o$+$k!#(B

$BG[Ns$NE:;z$HO"B3%"%/%;%9(B

Fortran$B8@8l$H(BC$B8@8l$G0[$J$k!#(B

LU$BJ,2r$N(B3$B

$BL)9TNs$KBP$9$k%"%k%4%j%:%`$N%*!<%@$O(BO(n^3)$B$G$"$k!#(B $BDL>o!$9TNs(BA$B$r(BLU$BJ,2r$7$?7k2L$N(BL$B$H(BU$B$O!$$I$A$i$+$NBP3Q@.J,$O(B 1$B$J$N$G!$9TNs(BA$B$r(BL$B$H(BU$B$G>e=q$-$9$k7A$G(BLU$BJ,2r$N7k2L$rF@$k$3$H$,B?$$!%(B $B4X78<0!y$K4p$E$/%"%k%4%j%:%`$J$i(B $B$I$s$J%"%k%4%j%:%`$G$b@5$7$$2r$OF@$i$l$k$,!"(B 3$B=E%k!<%W$N:G30%k!<%W$K$D$$$F(B Dongarra$B;a(B $BN.$KJ,N`$9$k$H
  • right-looking$BK!(B: $BG[Ns$NE:$(;z$K$h$C$F$O(Bdown-looking$B!#(B $B%,%&%9K!(B$B$H8F$P$l$k!#(B $B?t3X$H$O0c$&0UL#$N30@Q$rMQ$$$k!#(B
    $B%/%i%&%H7?(B(u_ii = 1)$B$J$i(B:
    l_ij = a_ij^(m)                     (j=m, i=m,...,n)
    u_ij = a_ij^(m)/l_ii                (i=m, j=m+1,...,n)
    a_ij^(m+1) = a_ij^(m) - l_ik u_kj   (i=m+1,...,n, j=m+1,...,n, k=m)
    
    $B%"%k%4%j%:%`$O(B$B$3$N$h$&$K(B$B$J$k!%(B
  • left-looking$BK!(B: $BG[Ns$NE:$(;z$K$h$C$F$O(B up-looking$B!#(B $B%,%&%9K!(B$B$K4p$E$/!#Fb@Q$dCf4V@Q$rMQ$$$k!#(B
    $B%/%i%&%H7?(B(u_ii = 1)$B$J$i(B:
    for 1$B!e(Bs$B!c(Bm
         l_ij = a_ij^(s)                   (i=m, j=s)
         a_ij^(s+1) = a_ij^(s) - l_ik u_kj (i=m, j=s+1,...,n, k=s)
    u_ij = a_ij^(m)/l_ii                   (i=m, j=m+1,...,n)
    
    $B%"%k%4%j%:%`$O(B$B$3$N$h$&$K(B$B$J$k!%(B
  • Crout$BK!(B: up$B$b(Bleft$B$b8+$k!#(BDoolittle$B7?$G$bF1MM$H$J$k!#(B
    rigt-looking$BK!$G$O!"(B L $B$H(B U $B$K$D$$$F5a$^$C$?:G?7$NMWAG$r;H$C$F(B A $B$N$^$@J,2r$,:Q$s$G$$$J$$ItJ,$r99?7$7$F$7$^$&!#(B
    $B99?7$r$9$0$K$O$;$:$K!"4X78<0!y$rD>@\;H$C$F(B L $B$H(B U $B$N $B%"%k%4%j%:%`$O(B$B$3$N$h$&$K(B$B$J$k!%(B $B$=$l$>$l$N%"%k%4%j%:%`$rM}2r$9$k$K$O!$(B 2$B

    $Be$N9MN8(B

    $Be$O(B:
    • $BItJ,%T%\%C%F%#%s%0(B(partial pivoting)
    • $B%9%1!<%j%s%0(B(scaling)
    • $B;D:9Jd@5(B
    $B$r9MN8$9$kI,MW$,$"$k$,!"K\ $BJBNs%W%m%0%i%_%s%0(B, $B@hF,%Z!<%8$X(B
    Masahiro Yasugi: yasugi@kuis.kyoto-u.ac.jp