解方程组的Matlab命令
1.用直接解法求解下列线性方程组。
命令如下:
A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];
b=[13,-9,6,0]';
x=A\b
2.利用矩阵的分解求解线性方程组
矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。常见的矩阵分解有LU分解、QR分解、Cholesky分解,以及Schur分解、Hessenberg分解、奇异分解等
(1) LU分解:上三角,下三角
A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];
b=[13,-9,6,0]';
[L,U]=lu(A);
x=U\(L\b)
或采用LU分解的第2种格式,命令如下:
[L,U ,P]=lu(A);
x=U\(L\P*b)
(2)QR分解:正交阵,上三角阵
A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];
b=[13,-9,6,0]';
[Q,R]=qr(A);
x=R\(Q\b)
或采用QR分解的第2种格式,命令如下:
[Q,R,E]=qr(A);
x=E*(R\(Q\b))
(3)Cholesky分解线性方程组Ax=b变成R‘Rx=b,所以x=R\(R’\b)。
A=[16,4,8;4,5,-4;8,-4,22];
b=[-4,3,10]';
R=chol(A)
x=R\(R’\b)
注意:A必须为对称正定阵
|