[L U P]=lu(a); [L0 U0]=lu(a)とすると
L0 =
1.0000 0 0 0
0.5000 1.0000 1.0000 0
0.3333 1.0000 0 0
0.2500 0.9000 -0.6000 1.0000
U0 =
1.0000 0.5000 0.3333 0.2500
0 0.0833 0.0889 0.0833
0 0 -0.0056 -0.0083
0 0 0 0.0004
本当に
norm(U0-U) norm(L0-P*L)どちらも0になる。 |
[L U p]=lu(a,'vector')とすると
L =
1.0000 0 0 0
0.3333 1.0000 0 0
0.5000 1.0000 1.0000 0
0.2500 0.9000 -0.6000 1.0000
U =
1.0000 0.5000 0.3333 0.2500
0 0.0833 0.0889 0.0833
0 0 -0.0056 -0.0083
0 0 0 0.0004
p =
1 3 2 4
|
p は置換行列
の “情報を持った” ベクトルである。
となっているとき、
解が分かりやすい連立1次方程式を用意しよう。
x=(1:4)'; b=a*x;解は、もちろん a\bとすれば求まるが、[L U P]=lu(a); で求めた L, U, P を使うには U\(L\(P*b))とすれば良く、[L U p]=lu(a,'vector'); で求めた L, U, p を使うには U\(L\b(p))とすれば良い。 |
>> x=(1:4)'
x =
1
2
3
4
>> b=a*x;
>> a\b
ans =
1.0000
2.0000
3.0000
4.0000
>> U\(L\(P*b))
ans =
1.0000
2.0000
3.0000
4.0000
>> U\(L\b(p))
ans =
1.0000
2.0000
3.0000
4.0000
|