Matlab学习笔记 2.矩阵的高级操作

矩阵的逆

矩阵的逆可以通过命令inv()求解,也可以通过矩阵的-1次幂求解

PS:inv是英文逆inverse的缩写

>> A = [2 2 2;1 3 0;4 5 7]

A =

     2     2     2
     1     3     0
     4     5     7

>> inv(A)

ans =

    1.5000   -0.2857   -0.4286
   -0.5000    0.4286    0.1429
   -0.5000   -0.1429    0.2857

 矩阵的行列式

使用det()命令可以求解矩阵的行列式

A =

     2     2     2
     1     3     0
     4     5     7

>> det(A)

ans =

    14

矩阵的秩

使用rank()命令可以计算矩阵的秩

A =

     2     2     2
     1     3     0
     4     5     7

>> rank(A)

ans =

     3

rref()命令

使用rref()命令可以将矩阵转换为最简行阶梯矩阵

A =

     2     2     2
     1     3     0
     4     5     7

>> rref(A)

ans =

     1     0     0
     0     1     0
     0     0     1

矩阵中元素的提取

 rref()命令还可以求解矩阵的逆矩阵,为此,我们先得了解矩阵提取

对矩阵使用, : ()等符号可以提取其中的元素

A =

     2     2     2
     1     3     0
     4     5     7

>> A(2,3)

ans =

     0

使用:则可以提取该一行或一列

A =

     2     2     2
     1     3     0
     4     5     7

>> A(:,1)

ans =

     2
     1
     4

>> A(1,:)

ans =

     2     2     2

 使用rref()命令求解矩阵的逆

回忆课本上求解矩阵逆的方法:在矩阵右边增加一个对应的对角矩阵,对其进行初等行变换,将左边部分转换为最简行阶梯型矩阵,右边部分即为所求逆矩阵。

所以,我们先做一矩阵B

A =

     2     2     2
     1     3     0
     4     5     7

>> B = [A eye(3)]

B =

     2     2     2     1     0     0
     1     3     0     0     1     0
     4     5     7     0     0     1

再求其最简行阶梯矩阵


>> C = rref(B)

C =

    1.0000         0         0    1.5000   -0.2857   -0.4286
         0    1.0000         0   -0.5000    0.4286    0.1429
         0         0    1.0000   -0.5000   -0.1429    0.2857

>> inv(A)

ans =

    1.5000   -0.2857   -0.4286
   -0.5000    0.4286    0.1429
   -0.5000   -0.1429    0.2857

右边部分即为所求逆矩阵,可以看到,结果和inv()所求结果相同

利用之前讲过的矩阵的提取可以将结果提取出来

>> C(:,4:end)

ans =

    1.5000   -0.2857   -0.4286
   -0.5000    0.4286    0.1429
   -0.5000   -0.1429    0.2857

rref()命令求解线性方程组

回忆课本知识,求解线性方程组即将系数矩阵或增广矩阵化简为行最简形矩阵,如此就可求出线性方程组的解:

例如,求解该线性方程组:

先创建其增广矩阵:

A = [1  1  5;
     2  1  8;
     1  2  7;
    -1  1 -1];

b = [6 8 10 2]';

M = [A b];

对其使用rref()命令化简为行最简形矩阵,即可求解

>> rref(M)

ans =

     1     0     3     2
     0     1     2     4
     0     0     0     0
     0     0     0     0

使用rref()命令求解最大无关向量组

先将列向量写在一个矩阵中,然后进行转置

>> A = [1 -1 2 4;0 3 1 2;3 0 7 14;1 -1 2 0;2 1 5 0]

A =

     1    -1     2     4
     0     3     1     2
     3     0     7    14
     1    -1     2     0
     2     1     5     0

>> A = A'

A =

     1     0     3     1     2
    -1     3     0    -1     1
     2     1     7     2     5
     4     2    14     0     0

使用rref()求解其最简行阶梯矩阵,即可得到其最大无关向量组

>> rref(A)

ans =

    1.0000         0    3.0000         0   -0.5000
         0    1.0000    1.0000         0    1.0000
         0         0         0    1.0000    2.5000
         0         0         0         0         0

总结

inv()矩阵的逆
det()矩阵的行列式
rref()最简行阶梯矩阵

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值