LU分解又稱高斯消去法,它可以將任意一個(gè)矩陣A分解為一個(gè)“心理”下三角矩陣L和一個(gè)上三角矩陣U的乘積,即 A=LU。其中,“心理”下三角矩陣的定義為下三角矩陣和置換矩陣的乘積。
MATLAB提供LU分解函數(shù)lu(),其具體用法如下:
:X是任意矩陣,L是“心理”下三角矩陣,U是上三角矩陣。
:X是任意矩陣,L是“心理”下三角矩陣,U是上三角矩陣,P是置換矩陣,滿足的條件式為 。
:其中X是任意矩陣,把上三角矩陣和下三角矩陣合并在矩陣Y中給出,滿足等式為 ,但該命令將損失置換矩陣P的信息。
(3):將矩陣 進(jìn)行LU分解。
解:1. 新建一個(gè)M文件
2. 在文本編輯器中輸入代碼為:
A=[-1 8 -5;9 -1 2;2 -5 7];
[L1,U1]=lu(A)
A1=L1*U1
x=inv(A)
x1=inv(U1)*(L1)
d=det(A)
d1=det(L1)*det(U1)
3. 保存文件,運(yùn)行后得到結(jié)果為:
L1=
-0.1111 1.0000 0
1.0000 0 0
0.2222 -0.6056 1.0000
U1=
9.0000 -1.0000 2.0000
0 7.8889 -4.7778
0 0 3.6620
A1=
-1 8 -5
9 -1 2
2 -5 7
x=
-0.0115 0.1192 -0.0423
0.2269 -0.0115 0.1654
0.1654 -0.0423 0.2731
x1=
-0.0077 0.1367 -0.0423
0.1635 -0.1002 0.1654
0.0607 -0.1654 0.2731
d=-260
d1=-260
從上面的結(jié)果可以看出,矩陣的LU分解滿足下面的等式條件:



4. 使用3個(gè)輸出變量的命令形式,在M文件中繼續(xù)輸入代碼為:
[L,U,P]=lu(A)
Lp=P*L
Ap=L*U
Pa=P*A
運(yùn)行結(jié)果為:
L=
1.0000 0 0
-0.1111 1.0000 0
0.2222 -0.6056 1.0000
U=
9.0000 -1.0000 2.0000
0 7.8889 -4.7778
0 0 3.6620
P=
0 1 0
1 0 0
0 0 1
Lp=
-0.1111 1.0000 0
1.0000 0 0
0.2222 -0.6056 1.0000
Ap=
9 -1 2
-1 8 -5
2 -5 7
Pa=
9 -1 2
-1 8 -5
2 -5 7
從上面的結(jié)果可以看出,使用3個(gè)輸出變量的命令滿足等式關(guān)系 和 , 表示使用兩個(gè)輸出變量求解LU分解矩陣結(jié)果。
5. 使用LU分解來(lái)求線性方程組,在M文件中繼續(xù)輸入代碼為:
b=[2;3;5];
xb=Ab
y1=Lb;
xb1=Uy1
y2=L1b;
xb2=U1y1
運(yùn)行結(jié)果為:
xb=
0.1231
1.2462
1.5692
xb1=
-0.0077
1.4846
1.7769
xb2=
-0.0077
1.4846
1.77609
運(yùn)行結(jié)果顯示:








基礎(chǔ)部:劉小剛 |