线性代数中涉及到的matlab命令-第三章:矩阵的初等变换及线性方程组

目录

1,矩阵的初等变换

1.1,初等变换

1.2,增广矩阵

​1.3,定义和性质

1.4,行阶梯型矩阵、行最简型矩阵

1.5,标准形矩阵

1.6,矩阵初等变换的性质

2,矩阵的秩

3,线性方程组的解


1,矩阵的初等变换

1.1,初等变换

初等变换包括三种:交换行或列、某行或列乘以一个非零系数、某行或列加上零一行或列的k倍。

1.2,增广矩阵

增广矩阵:方程组的系数矩阵和常数矩阵组成的矩阵。

方程组:

对应的增广矩阵:

1.3,定义和性质

矩阵的初等行变换和初等列变换,统称为初等变换。

待补充:

使用Matlab判断两个矩阵是否等价。

1.4,行阶梯型矩阵、行最简型矩阵

对于任何矩阵,都可以通过有限次初等行变换把它变为行阶梯型矩阵和行最简型矩阵。

利用初等行变换,把一个矩阵化为行阶梯形矩阵和行最简形矩阵,是一种很重要的运算,解线性方程组只需要把增广矩阵化为行最简形矩阵。

Matlab使用rref命令可以得到一个矩阵的行最简形矩阵:

cpp 复制代码
clc;

A = [4 2 -1 2;
     5 2 3 1;
     11 3 0 8];

rref(A)

运行结果:

1.5,标准形矩阵

1.6,矩阵初等变换的性质

定义:由单位阵E经过一次初等变换得到的矩阵称为初等矩阵。

三种初等变换对应三种初等矩阵。

第一种:把初等矩阵(单位矩阵两行对调)乘矩阵A,相当于对矩阵A进行初等行变换或列变换(对应的两行或列对调);

cpp 复制代码
clc;

A = [1 1 1 1;
     2 2 2 2;
     3 3 3 3]

E = eye(3);

E1_2 = E;
E1_2(1,:) = E(2,:);
E1_2(2,:) = E(1,:);

E1_2

E1_2*A

运行结果:

上述代码,如果改为右乘初等矩阵,结果为第1列和第2列对调:

cpp 复制代码
clc;

A = [1 2 3 4;
     1 2 3 4;
     1 2 3 4]

E = eye(4);

E1_2 = E;
E1_2(1,:) = E(2,:);
E1_2(2,:) = E(1,:);

E1_2

A*E1_2

运行结果:

类似,其他两种初等矩阵乘以矩阵A,相当于对矩阵A做对应的初等变换。

问题:

cpp 复制代码
clc;

%举例说明

E  = eye(5);

E_23 = E;
E_23(2,:) = E(3,:);
E_23(3,:) = E(2,:);   %交换单位矩阵E的2和3行,得到一个初等矩阵

A = E_23*E;           %E_23*E相当于对单位矩阵E进行了一次初等变化(交换2和3行)得到一个矩阵A

B = E_23*A           %E_23*A相当于对单位矩阵A进行了一次初等变化(再次交换2和3行)得到一个矩阵B,其实B就是E

%  B = E_23*A = B = E_23*E_23*E = E  即E_23*E_23 = E,则E_23的逆等于E_23

运行结果:

cpp 复制代码
B =

     1     0     0     0     0
     0     1     0     0     0
     0     0     1     0     0
     0     0     0     1     0
     0     0     0     0     1

运行代码发现B还是单位矩阵,即B = E_23*A = E_23*E_23*E = E 即E_23*E_23 = E,则E_23的逆等于E_23,也就是交换行的初等矩阵,它的逆还是它本身。

初等变换得到一个初等矩阵,初等变换的逆变换得到初等矩阵的逆矩阵。

矩阵A可逆,可通过的方式求A ,因其可转化为

Matlab种使用rref命令可对上述矩阵A和E组成的矩阵转化,将矩阵A对应元素转化为单位阵E,对应的单位矩阵E就变为矩阵A的逆矩阵:

cpp 复制代码
clc;

A = [2 -1 -1;
     1 1 -2;
     4 -6 5];
 det(A);            %判断A是否有逆矩阵

E = eye(3);

B = [A,E]

rref(B)

运行结果:

也可使用rref命令求方程组的解:

cpp 复制代码
clc;

A = [2 -1 -1;
     1 1 -2;
     4 -6 5];

b = [4;2;6];

B = [A,b]

rref(B)

运行结果:

2,矩阵的秩

矩阵k阶子式的概念:

矩阵秩的概念:

矩阵A的秩,A的行阶梯形种非零行的个数。 矩阵的秩用R表示。

如果矩阵A~B,则矩阵A的秩R(A) = R(B),具体证明可在参考书种找到。

Matlab中计算矩阵的秩的命令为rank。

以下代码中矩阵A经过三种行变换后得到矩阵A12,R(A)=R(A12):

cpp 复制代码
clc;

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

A12 = A;

A12(1,:) = A(2,:);
A12(2,:) = A(1,:);        %A12为A经过一次行变换后得到,A~A12

k = 2;
A12(1,:) = k*A12(1,:);    %A12第一行元素乘以k

A12(2,:) = A12(2,:) + A12(3,:)  %A12第二行元素+第三行元素

rank_A = rank(A)

rank_A12 = rank(A12)                 %矩阵A经过三种行变换后的矩阵,他们的秩相同即 A~A12

运行结果:

3,线性方程组的解

对于方程组,可通过系数矩阵的秩和增广矩阵的秩判断方程组是否有唯一解,以下代码为判断逻辑:

cpp 复制代码
clc;

A = [1 -2 2 -1;
     2 -4 8 0;
    -2 4 -2 3;
     3 -6 0 -6]          %系数矩阵

b = [1;2;3;4];           %常数矩阵

M = rref([A,b])

rank(A)

rank([A,b])

运行结果,系数矩阵的秩和增广矩阵的秩不相等:

很明显增广矩阵的行阶梯形矩阵的第三行是矛盾方程 0 = 1。

相关推荐
盛寒10 小时前
向量空间 线性代数
python·线性代数·机器学习
chao_78912 小时前
二分查找篇——寻找旋转排序数组中的最小值【LeetCode】
python·线性代数·算法·leetcode·矩阵
】余185381628001 天前
矩阵系统源码搭建与定制化开发,支持OEM
线性代数·矩阵
DesolateGIS1 天前
数学建模:非线性规划:凸规划问题
数学建模·matlab
IT猿手1 天前
2025最新智能优化算法:沙狐优化(Rüppell‘s Fox Optimizer,RFO)算法求解23个经典函数测试集,完整MATLAB代码
android·算法·matlab·迁移学习·优化算法·动态多目标优化·动态多目标进化算法
rit84324991 天前
MATLAB基于voronoi生成三维圆柱形
开发语言·人工智能·matlab
微光-沫年2 天前
141-CEEMDAN-VMD-Transformer-BiLSTM-ABKDE多变量区间预测模型!
算法·matlab·回归
Akangya2 天前
Matlab-Simulink之步长
matlab
YuTaoShao2 天前
【LeetCode 热题 100】73. 矩阵置零——(解法一)空间复杂度 O(M + N)
算法·leetcode·矩阵
Dark__Monarch3 天前
二元一次方程
线性代数