运用MATLAB进行矩阵的LU分解【字数:】
LU分解又称高斯消去法,它可以将任意一个矩阵A分解为一个心理下三角矩阵L和一个上三角矩阵U的乘积,即 A=LU。其中,心理下三角矩阵的定义为下三角矩阵和置换矩阵的乘积。
MATLAB提供LU分解函数lu(),其具体用法如下:
:X是任意矩阵,L是心理下三角矩阵,U是上三角矩阵。
:X是任意矩阵,L是心理下三角矩阵,U是上三角矩阵,P是置换矩阵,满足的条件式为 。
:其中X是任意矩阵,把上三角矩阵和下三角矩阵合并在矩阵Y中给出,满足等式为 ,但该命令将损失置换矩阵P的信息。
(3):将矩阵进行LU分解。
解:1. 新建一个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. 保存文件,运行后得到结果为:
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
从上面的结果可以看出,矩阵的LU分解满足下面的等式条件:
4. 使用3个输出变量的命令形式,在M文件中继续输入代码为:
[L,U,P]=lu(A)
Lp=P*L
Ap=L*U
Pa=P*A
运行结果为:
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
从上面的结果可以看出,使用3个输出变量的命令满足等式关系和,表示使用两个输出变量求解LU分解矩阵结果。
5. 使用LU分解来求线性方程组,在M文件中继续输入代码为:
b=[2;3;5];
xb=A
y1=L;
xb1=Uy1
y2=L1;
xb2=U1y1
运行结果为:
xb=
0.1231
1.2462
1.5692
xb1=
-0.0077
1.4846
1.7769
xb2=
-0.0077
1.4846
1.77609
运行结果显示:
基础部:刘小刚
原文链接:http://www.jxszl.com/lwqt/yzlw/357838.html
热门阅读