"景先生毕设|www.jxszl.com

运用MATLAB进行矩阵的LU分解【字数:】

2023-04-14 15:09编辑: www.jxszl.com景先生毕设
运用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