线性代数中涉及到的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。

相关推荐
张书名2 小时前
Leetcode刷题记录29——矩阵置零
算法·leetcode·矩阵
passionSnail11 小时前
《MATLAB实战训练营:从入门到工业级应用》工程实用篇-自动驾驶初体验:车道线检测算法实战(MATLAB2016b版)
算法·matlab·自动驾驶
阳洞洞13 小时前
leetcode 59. 螺旋矩阵 II
leetcode·矩阵
XuX0314 小时前
MATLAB制作散点图:从基础到进阶的三种类型讲解
数学建模·matlab·数据可视化
triticale16 小时前
【数据结构】稀疏矩阵的快速转置
数据结构·线性代数·矩阵
_Itachi__19 小时前
LeetCode 热题 100 54. 螺旋矩阵
算法·leetcode·矩阵
__lost20 小时前
引力透镜效应添加光线弯曲程度可视化层的MATLAB代码
开发语言·matlab·引力势场·引力透镜·广义性对论
豆沙沙包?21 小时前
2025年- H19-Lc127-48.旋转矩阵(矩阵)---java版
java·线性代数·矩阵
灏瀚星空1 天前
鞅理论:从数学基石到金融工程的量化革命
笔记·python·学习·数学建模·信息可视化·金融·矩阵
熊峰峰1 天前
2.2 矩阵
线性代数·矩阵