第3章数组及矩阵运算
matlab教程(第3讲-数组)
2.1数值表示、变量及表达式 (续)
运算符和表达式
运算
加 减 乘 除 幂
数学表达式
a+b a-b axb a/b或a\b
MATLAB运算符
+ * /或 \ ^
MATLAB表达式
a+b a-b a*b a/b或a\b a^b
第二种方法:使用冒号“:”操作符
〘例2-2〙创建以1~10顺序排列整数为元素的 行向量b。>>b=1:10 b=1 2 3 4 5 6 7 8 9 10
2016/11/22 Application of Matlab Language 10
所有的向量元素必须在操作符“[ ]”之内; 向量元素间用空格或英文的逗点“,”分开。
计算
z
z3
z1=3+4*i, z2=1+2*i, z3=exp(i*pi/6), z=z1*z2/z3 z_real=real(z), z_image=imag(z), z_angle=angle(z), z_length=abs(z),
2016/11/22
Application of Matlab Language
第四种方法:利用函数logspace 列向量的创建
通过实验认识该函数的功能。
使用方括号“[ ]”操作符,使用分号“;”分 割行。
〘例2-5〙键入并执行x= [1; 2; 3] X=1 2 3
使用冒号操作符
〘例2-6〙键入并执行x= (1:3)‟ % “ ‟ ”表示矩阵的转 置
2016/11/22 Application of Matlab Language 13
MATLAB程序设计与应用习题
X =
1 1 1 0
2.11设a=[0 100],求~a的值?(非运算)
答:>> clear
>> a=[0 1 0 0]
a =
0 1 0 0
>> x=not(a)
x =
1 0 1 1
2.12设a=[0 120],b=[21 0 0],求axor b的值?
答:>> clear
答:>> clear
>> a=[0 2 1 0]
a =
0 2 1 0
>> b=[2 1 0 0]
b =
2 1 0 0
>> x=and(a,b)
x =
0 1 0 0
2.10设a=[0 120],b=[120 0],求a|b的值?(或运算)
答:
>> clear
>> a=[0 1 2 0];b=[1 2 0 0];
答:quit:关闭MATLAB。
clear:清除内存中的变量。
cla:清除坐标。
clf:清除图形。
clc:清除MATLAB命令窗口的所有显示信息。
hold:控制当前图形窗口是否被刷新。
1.9学会打开并保存程序编辑窗口,并在M文档中编写1.4的运算程序并进行运算。
答:要打开程序编辑窗口,我们可以在Command Window窗口中,单击工具栏中最左端显示为一张白纸的工具按钮。这样就打开了一个空白的程序编辑窗口,如图1-6所示。
3.6已知
将a(2,3)=-1替换为a(2,3)=0。
答:
3.7已知
将a的第二行元素全部替换为0,然后将第二列元素全部替换为1。
数据结构(C语言版)_第3章 串与数组
char data; struct lnode *next;
}lstring;
3.3.3 串的存储结构——链式存储结构
当结点大小>1时,可以采用块链结构。
#define CHUNKSIZE 100
/*可由用户定义块的大小*/
typedef struct Chunk
第三章 串与数组
本章要点
➢字符串的基本概念与基本运算 ➢字符串的存储和基本运算的实现 ➢数组的概念和基本运算 ➢数组的存储结构 ➢特殊矩阵的压缩存储及运算 ➢广义表的概念及相关术语 ➢广义表的存储形式
3.1 “文学研究助手”案例导入
“文学研究助手”引例:请从下面的英文文章里,统计其中 good出现的次数和位置,并查找单词the所在的行号,该行中出 现的次数以及在该行中的相应位置。
3.4.1 数组的定义
数组是n个具有相同类型的数据元素构成的有限序列,数组 中的数据是按顺序存储在一块地址连续的存储单元中。
数组中的每一个数据通常称为数组元素,数组元素用下标 区分,其中下标的个数由数组的维数决定。
若线性表中的数据元素为非结构的简单元素,则称为一维 数组,又称为向量;若一维数组中的数据元素又是一维数组结 构,则称为二维数组;依次类推,若二维数组中的元素又是一 个一维数组结构,则称作三维数组。
3.3.4 串的基本操作的实现算法
第二种顺序存储方式下几种基本操作的算法
算法1:串连接操作 算法2:串比较操作 算法3:取子串操作 算法4:串插入操作 算法5:串删除操作 算法6:串置换函数 算法7:子串定位操作
3.3.5 串的应用
【例3-1】设计一个算法求串s中出现的第1个最长重复子串 及其位置。
Matlab矩阵运算基础数值运算
data =
1.1000 3.0000 4.0000
2.3000 2.0000 1.0000
.
13
3.2 矩阵运算
主要介绍矩阵的算术运算、关系运算、逻辑 运算和常用的有关矩阵的其他运算(矩阵的 逆,矩阵的秩、矩阵的分解等)。
.
14
3.2.1 矩阵的算术运算
1、矩阵的加(+)减(-)运算:
A±B 矩阵A和矩阵B的和与差,即矩阵相应 位置的元素相加、减。
>> A=magic(3)
D=
A= 816
0.5492 0.2421 -0.6520 0.9075
357
1.0047 -0.4941
492
>> C*D
>> B=inv(A)
ans =
B=
1.0000 0.0000
0.1472 -0.1444 0.0639
0.0000 1.0000
-0.0611 0.0222 0.1056
~ A 对单个矩阵或标量进行取反运算,结果是0-1矩阵。
.
28
3.2.3 矩阵的逻辑运算
例3-11 1 0 3
1 2 0
A2.6 1 2, B0 5 0
0 3 1
1 0 1
计算 A&B, A|B, ~A Nhomakorabea.
29
3.2.4 矩阵函数
1、矩阵的共轭
MATLAB中求矩阵的共轭矩阵的函数是conj,其 调用格式为:
除或浮点溢出都不按错误处理,只是给出警告信息,同时用“Inf”
标记。
.
20
3.2.1 矩阵的算术运算
4、 矩阵的幂运算:^ A^B A的B次方。
第三章 数组及其运算
Logm(A) A的矩阵对数函数
%例二维数组、矩阵运算 A=[-4,-3,-2;-1,0,1;2,3,4];B=[1,3,2;3,2,5;2,5,7]; C=A+B*i %生成复数数组 C.',C' %非共轭转置和共轭转置
C= -4.0000 + 1.0000i -3.0000 + 3.0000i -2.0000 + 2.0000i -1.0000 + 3.0000i 0 + 2.0000i 1.0000 + 5.0000i 2.0000 + 2.0000i 3.0000 + 5.0000i 4.0000 + 7.0000i ans = -4.0000 + 1.0000i -1.0000 + 3.0000i 2.0000 + 2.0000i -3.0000 + 3.0000i 0 + 2.0000i 3.0000 + 5.0000i -2.0000 + 2.0000i 1.0000 + 5.0000i 4.0000 + 7.0000i ans = -4.0000 - 1.0000i -1.0000 - 3.0000i 2.0000 - 2.0000i -3.0000 - 3.0000i 0 - 2.0000i 3.0000 - 5.0000i -2.0000 - 2.0000i 1.0000 - 5.0000i 4.0000 - 7.0000i
>> a=3*ones(4,5) a= 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 >> b=diag(a) b= 3 3 3 3
>> zeros(5,6) %生成 行6列的全 阵 生成5行 列的全 列的全0阵 生成 ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3矩阵及其运算
第二章 矩阵及其运算2.1 MATLAB 的基本运算单位----矩阵MATLAB 的基本运算单位是矩阵。
二维矩阵是一个带有以行和列排列的元素的矩形表。
如果有m 行、n 列,这个矩阵的大小就是m ×n 。
多维矩阵的维数大于2,就是说其大小为m ×n ×…×p 。
例1一个2×3的矩阵如下:A=⎪⎪⎭⎫ ⎝⎛654321=⎪⎪⎭⎫ ⎝⎛232221131211a a a a a a 第1行是(123),第2列是⎪⎪⎭⎫ ⎝⎛52。
矩阵的元素,即数a ij ,通常是实数,但也可以是复数。
一个a ij是指第i 行、第j 列的数。
在例中,有a 21=4。
MATLAB 中有数值矩阵,即矩阵包含的仅是数字;字符文本矩阵,即矩阵包含字符文本;元胞矩阵,其元素可以是包括矩阵在内的各种结构类型的数据。
当矩阵仅由一行组成时,它是一个特例,就是一个行向量。
如果矩阵仅有一列,就是一个列向量。
向量是矩阵的特例。
向量中元素的数量是向量的长度。
如果矩阵的维数是1×1,它是一个标量,即是一个数。
在Matlab 里,矩阵的表达和应用与工程中的习惯用法十分相近。
例如线性方程组"Ax=b",在Matlab 中写成A*x=b 。
求x 的指令是x=A\b 或x=A/b 。
例如:A=[1,2;2,1]b=[6;8]x=A\b2.2矩阵建立在MATLAB中,具体对矩阵的分配进行值定义形式如下:2.2.1 由方括号[](见help paren)包围的逐行给定元素。
具体例子:a=[1,2,3;4,5,6;]a=[1 2 3;4 5 6]例1:输入行向量x=[3,pi/6,3+sqrt(2),4.2]例2:输入列向量x=[3;pi/6;3+sqrt(2);4.2]例3:输入矩阵x=[3,pi/6,3+sqrt(2),4.2;4,pi/4,sqrt(2),3.5]a=[1 2 3;4 5 6]注(1)方括号[](paren)包围给定元素是二维矩阵进行值定义的最简单的方法。
数学建模案例分析--MATLAB在电气工程中的应用
Current directory
Launch pad
M-File
Figure
Model
GUI 2019/5/8
16
标题栏 发射台
菜单栏
常用工具栏
工作区间
命令 窗口
历史命令 当前目录
2019/5/8
17
2019/5/8
18
MATLAB命令窗口
MATLAB语句形式 >>变量=表达式;
当A是标量时: x b A
当A是非奇异矩阵时: x A1b
当A是行数大于列数的满秩阵时,
称超定方程组或矛盾方程组: x ( AT A)1 AT b
当A的列数大于行数时,有无数解。
MATLAB只用一条指令: x=A\b。
2019/5/8
3
MATLAB简介
例:绘制二元函数曲面:
z
y
பைடு நூலகம்
1 x2 y2
2019/5/8
26
1.4 MATLAB常用命令
1.5 MATLAB两种工作方式
c语言矩阵计算
c语言矩阵计算一、C语言矩阵基础概念C语言作为一种广泛应用于科学计算、数据处理和工程领域的编程语言,矩阵计算是其重要功能之一。
在C语言中,矩阵是一个二维数组,通常用大写字母表示矩阵,例如A、B等。
矩阵的元素用小写字母表示,如a、b等。
二、矩阵运算概述矩阵运算包括矩阵加法、减法、乘法等,这些运算遵循一定的规则。
在进行矩阵运算时,需要注意矩阵的尺寸(行数和列数)必须相同。
三、矩阵加法与减法矩阵加法是指两个矩阵对应元素相加,结果为一个新矩阵。
矩阵减法是指两个矩阵对应元素相减,结果为一个新矩阵。
在进行矩阵加减法运算时,需要注意矩阵的尺寸必须相同。
四、矩阵乘法矩阵乘法是指一个矩阵与另一个矩阵相乘,结果为一个新矩阵。
矩阵乘法有两种类型:行乘法和列乘法。
矩阵乘法的条件是:左边矩阵的列数等于右边矩阵的行数。
五、矩阵转置与逆矩阵矩阵转置是指将矩阵的行和列互换,得到一个新矩阵。
逆矩阵是指一个矩阵的逆矩阵,即在矩阵乘法中,左乘右等于单位矩阵。
并非所有矩阵都存在逆矩阵,只有方阵(行数等于列数)且行列式不为零的矩阵才可能存在逆矩阵。
六、矩阵行列式矩阵行列式是指一个方阵所表示的值,它是一个实数。
矩阵行列式的计算有多种方法,如高斯消元法、拉普拉斯展开式等。
行列式在矩阵运算中具有重要作用,如解线性方程组、计算矩阵逆等。
七、矩阵在实际应用中的例子矩阵在实际应用中广泛应用于线性方程组求解、图像处理、信号处理等领域。
例如,在图像处理中,矩阵可以表示像素点阵,进行图像变换、滤波等操作。
八、总结与拓展本文简要介绍了C语言中矩阵计算的基本概念和运算方法。
矩阵计算在实际应用中具有重要意义,熟练掌握矩阵运算有助于解决实际问题。
线性代数 第三章
第三章 向量组与矩阵的秩§1 n 维向量在平面几何中,坐标平面上每个点的位置可以用它的坐标来描述,点的坐标是一个有序数对(,)x y .一个n 元方程1122n n a x a x a x b +++=可以用一个1n -元有序数组12(,,,,)n a a a b来表示.1n ⨯矩阵和1n ⨯矩阵也可以看作有序数组.一个企业一年中从1月到12月每月的产值也可用一个有序数组1212(,,,)a a a 来表示.有序数组的应用非常广泛,有必要对它们进行深入的讨论.定义 1 n 个数组成的有序数组12(,,,)n a a a (3.1)或12n a a a ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦(3.2)称为一个n 维向量,简称向量.一般,我们用小写的粗黑体字母,如,α,β,γ等来表示向量,(3.1)式称为一个行向量,(3.2)式称为一个列向量.数12,,,n a a a 称为这个向量的分量.i a 称为这个向量的第i 个分量或坐标.分量都是实数的向量称为实向量;分量是复数的向量称为复向量.实际上,n 维行向量可以看成1n ⨯矩阵,n 维列向量也常看成1n ⨯矩阵.下面我们只讨论实向量.设k 和l 为两个任意的常数.α,β和γ为三个任意的n 维向量,其中12(,,,)n a a a =α, 12(,,,)n b b b =β.定义 2 如果α和β对应的分量都相等,即,1,2,,i i a b i n ==就称这两个向量相等,记为α=β.定义 3 向量(a 1+b 1,a 2+b 2,…,a n +b n )称为α与β的和,记为α+β.称向量(ka 1,ka 2,…,ka n )为α与k 的数量乘积,简称数乘,记为k α.定义 4 分量全为零的向量(0, 0, …, 0)称为零向量,记为0.α与-1的数乘(-1)α=(-a 1,-a 2,…,-a n )称为α的负向量,记为-α.向量的减法定义为α-β=α+(-β).向量的加法与数乘具有下列性质: (1) α+β=β+α;(交换律) (2) (α+β)+γ=α+(β+γ);(结合律) (3) α+0=α;(4) α+(-α)=0; (5) k (α+β)=k α+k β; (6) (k +l )α=k α+l α; (7) k (l α)=(kl )α; (8) 1α=α; (9) 0α=0; (10) k 0=0.在数学中,满足(1)-(8)的运算称为线性运算.我们还可以证明:(11) 如果k ≠0且α≠0, 那么k α≠0.显然n 维行向量的相等和加法、减法及数乘运算的定义,与把它们看作1×n 矩阵时的相等和加法、减法及数乘运算的定义是一致的.对应地,我们也可以定义列向量的加法、减法和数乘运算,这些运算与把它们看成矩阵时的加法、减法和数乘运算也是一致的,并且同样具有性质(1)-(11).§2线性相关与线性无关通常把维数相同的一组向量简称为一个向量组,n 维行量组α1,α2,…,αs 可以排列 成一个s ×n 分块矩阵12s ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦a a A a ,其中αi 为由A 的第i 行形成的子块,α1,α2,…,αs 称为A的行向量组.n 维列向量组β1,β2,…,βs 可以排成一个n ×s 矩阵B=(β1,β2,…,βs ),其中βj 为B的第j 列形成的子块,β1,β2,…,βs 称为B 的列向量组.很多情况下,对矩阵的讨论都归结于对它们的行向量组或列向量组的讨论.定义 5 向量组α1,α2,…,αs 称为线性相关的,如果有不全为零的数k 1,k 2,…,k s , 使1si ii k =∑a=k 1α1+k 2α2+…+k s αs =0. (3.3)反之,如果只有在k 1= k 2 = … =k s =0时(3.3)才成立,就称α1,α2,…,αs 线性无关. 换言之,当α1,α2,…,αs 是行向量组时,它们线性相关就是指有非零的1×s 矩阵 (k 1,k 2,…,k s )使1212(,,,)s s k k k ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦0a a a .当α1,α2,…,αs 为列向量组时,它们线性相关就是指有非零的s ×1矩阵(k 1,k 2,…,k s )′使1212(,,,)s s k k k ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦0a a a .显然单个零向量构成的向量组是成性的相关的. 例1 判断向量组12(1,0,,0),(0,1,,0),(0,0,,1)n =⎧⎪=⎪⎨⎪⎪=⎩εεε 的线性相关性.解 对任意的常数k 1,k 2,…,k n 都有k 1ε1+k 2ε2+…+k n εn =(k 1,k 2,…,k n ).所以k 1ε1+k 2ε2+…+k n εn =0当且仅当k 1=k 2=…=k n =0.因此ε1,ε2,…,εn 线性无关.ε1,ε2,…,εn 称为基本单位向量. 例2 判断向量组α1=(1,1,1), α2=(0,2,5), α3=(1,3,6)的线性相关性.解 对任意的常数k 1,k 2, k 3都有k 1α1+k 2α2+ k 3α3=(k 1+k 3,k 1+2k 2+3k 3,k 1+5k 2+6k 3).所以k 1α1+k 2α2+ k 3α3=0当且仅当131231230,230,560.k k k k k k k k +=⎧⎪++=⎨⎪++=⎩ 由于k 1=1,k 2=1,k 3=-1满足上述的方程组,因此1α1+1α2+(-1)α3=α1+α2-α3=0.所以α1,α2,α3线性相关.例3 设向量组α1,α2,α3线性无关,β1=α1+α2,β2=α2+α3,β3=α3+α1, 试证向量组β1,β2,β3也线性无关.证 对任意的常数都有k 1β1+k 2β2+k 3β3=(k 1+k 3)α1+(k 1+k 2)α2+(k 2+k 3)α3 .设有k 1,k 2,k 3使k 1β1+k 2β2+k 3β3=0.由α1,α2,α3线性无关, 故有1312230,0,0.k k k k k k +=⎧⎪+=⎨⎪+=⎩ 由于满足此方程组的k 1,k 2,k 3的取值只有k 1=k 2=k 3=0,所以β1,β2,β3线性无关.定义 6 向量α称为向量组β1,β2,…,βt 的一个线性组合,或者说α可由向量组β1,β2,…,βt 线性表出(示),如果有常数k 1,k 2,…,k t 使α=k 1β1+k 2β2+…+k t βt . 此时,也记1ti ii k ==∑a β.例4 设α1=(1,1,1,1),α2=(1,1,-1,-1),α3=(1,-1,1,-1),α4=(1,-1,-1,1), β=(1,2,1,1).试问β能否由α1,α2,α3,α4线性表出?若能,写出具体表达式.解 令β=k 1α1+k 2α2+k 3α3+k 4α4于是得线性方程组12341234123412341211k k k k k k k k k k k k k k k k +++=⎧⎪+--=⎪⎨-+-=⎪⎪--+=⎩ 因为1111111116011111111D ⎡⎤⎢⎥--⎢⎥==-≠⎢⎥--⎢⎥--⎣⎦, 由克莱姆法则求出1234511,,444k k k k ====-所以12345111,4444=+--βαααα即β能由α1,α2,α3,α4线性表出.例5 设α=(2,-3,0),β=(0,-1,2),γ=(0,-7,-4),试问γ能否由α,β线性表出? 解 设 γ=k 1α+k 2β 于是得方程组1122203724k k k k =⎧⎪--=-⎨⎪=-⎩由第一个方程得k 1=0,代入第二个方程得k 2=7,但k 2不满足第三个方程,故方程组无解.所以γ不能由α,β线性表出.定理 1 向量组α1,α2,…,αs (s ≥2) 线性相关的充要条件是其中至少有一个向量能由其他向量线性表出.证 设α1,α2,…,αs 中有一个向量能由其他向量线性表出,不妨设α1=k 2α2+k 3α3+…+k s αs ,那么-α1+k 2α2+…+k s αs =0,所以α1,α2,…,αs 线性相关.反过来,如果α1,α2,…,αs 线性相关,就有不全为零的数k 1,k 2,…,k s , 使k 1α1+k 2α2+…+k s αs =0.不妨设k 1≠0, 那么32123111.ss k k k k k k =----αααα 即α1能由α2,α3,…,αs 线性表出.例如,向量组α1=(2,-1,3,1),α2=(4,-2,5,4),α3=(2,-1,4,-1) 是线性相关的,因为α3=3α1-α2.显然,向量组α1,α2线性相关就表示α1=k α2或者α2=k α1(这两个式子不一定能同时成立).此时,两向量的分量成正比例.在三维的情形,这就表示向量α1与α2共线.三个向量α1,α2,α3线性相关的几何意义就是它们共面.定理 2 设向量组β1,β2,…,βt 线性无关,而向量组β1,β2,…,βt ,α线性相关,则α能由向量组β1,β2,…,βt 线性表出,且表示式是惟一的.证 由于β1,β2,…,βt ,α线性相关,就有不全为零的数k 1,k 2,…,k t ,k 使k 1β1+k 2β2+…+k t βt +k α=0.由β1,β2,…,βt 线性无关可以知道k ≠0. 因此1212tt k k kk kk=----αβββ, 即α可由β1,β2,…,βt 线性表出.设α=l 1β1+l 2β2+…+l t βt =h 1β1+h 2β2+…+h t βt为两个表示式.由α-α=(l 1β1+β2+…+l t βt )-(h 1β1+h 2β2+…+h t βt )=(l 1-h 1)β1+(l 2-h 2)β2+…+(l t -h t )βt =0和β1,β2,…,βt 线性无关可以得到l 1=h 1, l 2=h 2, …, l t =h t .因此表示式是惟一的.定义 7 如果向量组α1,α2,…,αs 中每个向量都可由β1,β2,…,βt 线性表出,就称向量组α1,α2,…,αs 可由β1,β2,…,βt 线性表出,如果两个向量组互相可以线性表出,就称它们等价.显然,每一个向量组都可以经它自身线性表出.同时,如果向量组α1,α2,…,αt 可以经向量组β1,β2,…,βs 线性表出,向量组β1,β2,…,βs 可以经向量组12,,,p γγγ线性表出,那么向量组α1,α2,…,αt 可以经向量组12,,,p γγγ线性表出.事实上,如果1,1,2,,,si ij j j k i t ===∑αβ1,1,2,,,pj jmm m lj s ===∑βγ那么111111pppsss i ij jm m ij jm m ij jm m j m j m m j k l k l k l ======⎡⎤===⎢⎥⎣⎦∑∑∑∑∑∑αγγγ.这就是说,向量组α1,α2,…,αt 中每一个向量都可以经向量组12,,,p γγγ线性表出.因而,向量组α1,α2,…,αs 可以经向量组12,,,p γγγ线性表出.由上述结论,得到向量组的等价具有下述性质:(1) 反身性:向量组α1,α2,…,αs 与它自己等价.(2) 对称性:如果向量组α1,α2,…,αs 与β1,β2,…,βt 等价,那么β1,β2,…,βt 也与α1,α2,…,αs 等价.(3) 传递性:如果向量组α1,α2,…,αs 与β1,β2,…,βt 等价,而向量组β1,β2,…,βt 又与12,,,p γγγ等价,那么α1,α2,…,αs 与12,,,p γγγ等价.§ 3线性相关性的判别定理利用定义判断向量组的线性相关性往往比较复杂,我们有时可以直接利用向量组的特点来判断它的线性相关性,通常称一个向量组中的一部分向量组为原向量组的部分组.定理 3 有一个部分组线性相关的向量组线性相关. 证 设向量组α1,α2,…,αs 有一个部分组线性相关.不妨设这个部分组为α1,α2,…,αr .则有不全为零的数k 1,k 2,…,k r 使1110,s r si ii iji i j r k k ===+=+=∑∑∑0ααα因此α1,α2,…,αs 也线性相关.推论 含有零向量的向量组必线性相关. 定理 4 设p 1,p 2,…,p n 为1, 2, …,n 的一个排列,α1,α2,…,αs 和β1,β2,…,βs 为两向量组,其中1212n ip i ip i i i in ip ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦ααααα=,βαα, 即β1,β2,…,βs 是对α1,α2,…,αs 各分量的顺序进行重排后得到的向量组,则这两个向量组有相同的线性相关性.证 对任意的常数k 1,k 2,…,k s 注意到列向量111221*********1122s s ss s i i i n n s sn k k k k k k k k k k =+++⎡⎤⎢⎥+++⎢⎥=⎢⎥⎢⎥+++⎣⎦∑αααααααααα和1112221122112211122n n n p p s sp sp p s sp i i i p p s sp k k k k k k k k k k =+++⎡⎤⎢⎥+++⎢⎥=⎢⎥⎢⎥+++⎢⎥⎣⎦∑ααααααβααα 只是各分量的排列顺序不同,因此k 1β1+k 2β2+…+k s βs =0当且仅当k 1α1+k 2α2+…+k s αs =0.所以α1,α2,…,αs 和β1,β2,…,βs 有相同的线性相关性.定理4 是对列向量叙述的.对行向量也有相同的结论.类似这样的情形,今后不再说明.定理 5 在r 维向量组α1,α2,…,αs 的各向量添上n -r 个分量变成n 维向量组β1,β2,…,βt .(1)如果β1,β2,…,βs t 线性相关,那么α1,α2,…,αs 也线性相关. (2) 如果α1,α2,…,αs 线性无关,那么β1,β2,…,βs 也线性无关. 证 我们对列向量来证明定理,设(α1,α2,…,αs )=A1,(β1,β2,…,βs )=12⎡⎤⎢⎥⎣⎦A A ,如果β1,β2,…,βs 线性相关,就有一个非零的s ×1矩阵X使(β1,β2,…,βs )X=12⎡⎤⎢⎥⎣⎦A A X=12⎡⎤⎢⎥⎣⎦X X A A =0. 从而(α1,α2,…,αs )X =A1X=0.因此α1,α2,…,αs 也线性相关,即(1)成立.利用(1),用反证法容易证明(2)也成立.引理 1 如果n 阶方阵A 的行列式等于零,那么A 的行(列)向量组线性相关.证 因|A |=0,由上章内容,用初等行变换把A 化成上三角矩阵D ,主对角线上至少有一个元素为零,即11121222000n n nn d d d dd d ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦D中至少有一个d ij =0.如果d nn =0,那么D 最后一行元素全为零,可见A 中有一行可由其余行线性表出,因此,A 的行向量组线性相关.如果d nn ≠0,设D 的主对角线上元素d 11,d 22,…,d nn 中从后起第一个等于零的数为d jj .易见,对D 再施行几次初等行变换后,可得到第j 行全为零的矩阵.同样得出A 中有一行可由其余行线性表出.因此,A 的行向量组线性相关.当|A|=0时,|A′|=0,A 的列向量组可看成A ′的行向量组,得A 的列向量组也线性相关.定理 6 n 维向量组α1,α2,…,αn 线性无关的充要条件是矩阵11112122122212n n n n n nn a a a a a a a a a ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦A ααα 的行列式不为零(A 可逆).此时,矩阵A 的n 个列向量也线性无关.证 如果|A|≠0,(k 1,k 2,…,k n )A =0,两边同时右乘A-1得(k 1,k 2,…,k n )=0,所以α1,α2,…,αn 线性无关.反过来,如果α1,α2,…,αn 线性无关.反设|A|=0,由引理1,A 的行向量组α1,α2,…,αn 线性相关,矛盾.由上面证明可以看出,当|A|≠0时,|A′|≠0,可见A 的n 个列向量也线性无关.例6 试证明n 维列向量组α1,α2,…,αn 线性无关的充分必要条件是行列式1112121222120n n nn nn '''⎡⎤⎢⎥'''⎢⎥=≠⎢⎥⎢⎥'''⎣⎦D αααααααααααααααααα证 令矩阵A ={α1,α2,…,αn }则向量组α1,α2,…,αn 线性无关⇔行列式|A |≠0.由于[]1111212212221212n n n nnn nn ''''⎡⎤⎡⎤⎢⎥⎢⎥''''⎢⎥⎢⎥'==⎢⎥⎢⎥⎢⎥⎢⎥''''⎣⎦⎣⎦A ααααααααααααααA αααααααααα在上式两端取行列式,得|A |2=|A ′||A |=D故|A |≠0⇔D ≠0,所以α1,α2,…,αn 线性无关⇔D ≠0.定理 7 n +1个n 维向量α1,α2,…,αn +1必线性相关.证 对每个αs 添加等于零的第n +1个分量,得到n +1维向量β1,β2,…,βn +1.易见,由β1,β2,…,βn +1构成的方阵的行列式等于零,因而β1,β2,…,βn +1线性相关,由αi 与βi 的关系,易知α1,α2,…,αn +1也线性相关.推论 当m >n 时,m 个n 维向量线性相关. 讨论下列矩阵的行向量组的线性相关性:123132221;021.343201-⎡⎤⎡⎤⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦B C由于|B|=2≠0,因此B的行(列)向量组线性无关; 由于|C|=0,所以C 的行(列)向量组线性相关.定理 8 如果向量组α1,α2,…,αs 可由β1,β2,…,βt 线性表出且s >t ,那么α1,α2,…,αs 线性相关.证 我们不妨假定讨论的是列向量,如果α1,α2,…,αs 可由β1,β2,…,βt 线 性表出,那么()()121212i i i n n i it p p p ⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎣⎦αββββββγ.令A=(γ1,γ2,…,γs ),有(α1,α2,…,αs )=(β1,β2,…,βt )A,这里γ1,γ2,…,γs 为由s 个向量组成的t 维向量组.注意到s >t ,根据推论,它们必线性相关.因此有非零s ×1矩阵(k 1,k 2,…,k s )′使112212(,,,)s s s k k k k k k ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦0A γγγ.从而()11221212(,,,)s s s s k k k k k k ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦0αααβββA .即有α1,α2,…,αs 线性相关.推论 1 如果向量组α1,α2,…,αs ,可由向量组β1,β2,…,βt 线性表出,且α1,α2,…,αs 线性无关,那么s ≤t .推论 2 两个线性无关的等价的向量组必含有相同个数的向量.§ 4向量组的秩与矩阵的秩定义 8 一向量组的一个部分组称为一个极大线性无关组,如果这个部分组本身是线性无关的,并且从这向量组中向这部分组任意添一个向量(如果还有的话),所得的部分组都线性相关.例7 在向量组α1=(2,-1,3,1),α2=(4,-2,5,4),α3=(2,-1,4,-1)中,α1,α2为它的一个极大线性无关组.首先,由α1与α2的分量不成比例,所以α1,α2线性无关,再添入α3以后,由α3=3α1-α2可知所得部分组线性相关,不难验证α2,α3也为一个极大线性无关组.我们容易证明定义8与下列定义8′等价.定义 8′ 一向量组的一个部分组称为一个极大线性无关组,如果这个部分组本身是线性无关的,并且这向量组中任意向量都可由这部分组线性表出.向量组的极大线性无关组具有以下性质:性质 1 一向量组的极大线性无关组与向量组本身等价. 性质 2 一向量组的任意两个极大线性无关组都等价.性质 3 一向量组的极大线性无关组都含有相同个数的向量.性质3表明向量组的极大线性无关组所含向量的个数与极大线性无关组的选择无关,它反映了向量组本身的特征.定义 9 向量组的极大线性无关组所含向量的个数称为这个向量组的秩. 例如,例7中向量组α1,α2,α3的秩为2. 线性无关向量组本身就是它的极大线性无关组,所以我们有:一向量组线性无关的充要条件为它的秩与它所含向量的个数相同.我们知道每个向量组都与它的极大线性无关组等价,由等价的传递性可知任意两个等价的向量组的极大线性无关组也等价,根据定理8的推论1就有等价的向量组必有相同的秩.如果向量组α1,α2,…,αs 能由向量组β1,β2,…,βt 线性表出,那么α1,α2,…,αs的极大线性无关组可由β1,β2,…,βt 的极大线性无关组线性表出.因此α1,α2,…,αs 的秩不超过β1,β2,…,βt 的秩.定理 9 向量组的任意线性无关的部分组都可扩充为一个极大线性无关组.证 设,i i i 12καα,,α是向量组α1,α2,…,αs 中的一个线性无关的部分组,如果α1,α2,…,αs 中每个向量都可由这个部分组线性表出,那么这个部分组就是一个极大线性无关组,如果还有某向量αik +1不能被这个部分组线性表出,那么由121121i i k i l l l κ+++++ααα=0就有l k +1=0.再由原部分组线性无关就可得l 1=l 2=…=l k =l k +1=0.这样,我们就得到了一个含k +1个向量的线性无关的部分组121,i i i κ+αα,,α.重复这个过程,最后必可得到α1,α2,…,αs 的一个线性无关的部分组使向量组中每个向量都可由这个部分组线性表出,这个部分组就是一个极大线性无关组.推论 秩为r 的向量组中任意含r 个向量的线性无关的部分组都是极大线性无关组. 例8 求向量组α1=(1,-1,0,3),α2=(0,1,-1,2),α3=(1,0,-1,5),α4=(0,0,0,2)的一个极大线性无关组及秩.解 α1是α1,α2,α3,α4的一个线性无关的部分组,显然α2不能由α1线性表示,所以α1可以扩充为一个线性无关的部分组α1,α2,容易证明α3=α1+α2,但α4不能由α1,α2线性表出,所以α1,α2又可扩充为一个线性无关的部分组α1,α2,α4,从而α1,α2,α3,α4的秩为3,α1,α2,α4是它的一个极大线性无关组. 定义 10 矩阵的行秩是指它的行向量组的秩,矩阵的列秩是指它的列向量组的秩.为了证明一个矩阵的行秩等于列秩,我们引入矩阵的子式的概念.定义 11 在一个s ×n 矩阵A 中任意选定k 行和k 列,位于这些选定的行和列的交点上的k 2个元素按原来的次序所组成的k ×k 级矩阵的行列式,称为A 的一个k 级子式.在定义中,当然有k ≤m in (s ,n )(s ,n 中较小的一个). 例9 在矩阵11361012400005301102⎡⎤⎢⎥-⎢⎥=⎢⎥⎢⎥⎣⎦A 中,选第1,第3行和第3,第4列,它们交点上的元素所组成的二级行列式361505⎡⎤=⎢⎥⎣⎦就是一个2级子式,易见,A 共有2级子式的个数为2245C C 60=.引理 2 设r ≤n .n 维向量组α1,α2,…,αr 线性无关的充要条件是:矩阵111212122212n n r r rn r a a a a a a a a a 12⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦ααA α 中存在一个不为零的r 级子式.证 充分性 当A 中存在一个不为零的r 级子式时,由定理6,定理5易知,A 的r 个行向量α1,α2,…,αr 线性无关.必要性 对向量的个数r 用数学归纳法证明.当r =1时,因α1线性无关,故α1≠0,A 中有一个不为零的1级子式. 假设当r =k 时,结论成立.当r =k +1≤n 时,因α1,α2,…,αk +1线性无关,其部分组也线性无关.由归纳假设,矩阵111212122212n n k k k kn a a a a a a a a a 12⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦ααB α 中存在不为零的k 级子式,不妨设1112121222120k k k k kk a a a aa a a a a ⎡⎤⎢⎥⎢⎥≠⎢⎥⎢⎥⎣⎦, 令γi =(a i 1,a i 2,…,a ik ),k 12⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦γγγC 是一个k 阶可逆矩阵,i =1,2,…,k+1.显然,γi 是由αi 的前k 个分量构成,设()11,,,k κc c c -2+1=γC ,易见()1,,,k c c c 2是一组确定的数,且()()111,,,,,,κk k k c c c c c c 2+122⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎣⎦γγγγC ,即()11,,,κk k c c c +122-=0γγγγ.(3.4) 令()()111,,,κk k n c c c b b b +1222=-+++=βαααα,即有b j =a k +1,j -(c 1a 1j +c 2a 2j +…+c k a kj ), j =1,2,…,n .由于γ1,γ2,…,γk ,γk +1分别由α1,α2,…,αk ,αk +1的前k 个分量构成,根据(3.4)式,β的前k 个分量应为零,即b 1=b 2=…=b k =0.又因为α1,α2,…,αk ,αk +1线性无关,所以β≠0. 因此,必有某b j ≠0(k <j ≤n ).于是有k +1级子式11121111121121222221222212121,11,21,1,0000k j kj k j k j j k k kk kj k k kk kj k k k kk j j a a a a a a a a a a a a a a a a b a a a a a a a a a a a a b ++++⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥==≠⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦C . 由定理6及引理2,可以看出,如果A 有一个k 级子式不为零,那么这个k 级子式所在的行向量组线性无关,所在的列向量组也线性无关.定理 10 矩阵的行秩等于列秩.证 设矩阵A 的行秩为r 1,A 的列秩为r 2,那么,A 中有r 1个行向量线性无关,由引理2,A 中有一个r 1级子式D 不为零,那么A 中子式D 所在的r 1个列向量也线性无关;因而,r 1≤r 2.这说明,任意矩阵的列秩大于或等于行秩,由此,A ′的列秩(A 的行秩r 1)≥A ′的行秩(A 的列秩r 2),即有r 1≥r 2.因此r 1=r 2.下面统称矩阵的行秩和列秩为矩阵的秩.矩阵A 的秩一般记为R (A).规定零矩阵的秩为0,由引理2,可得定理 11 矩阵A 的秩为r 的充要条件是它有一个不为零的r 阶子式,而所有r +1阶子式全为零,这时,这个非零的r 级子式所在的行和列就分别为A 的行向量组和列向量组的极大线性无关组.例10 已知矩阵111111111111αa a a ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦A 的秩为3,求a 的值. 解 R (A )=3,即A 中非零子式的最高阶数为3,故有1111111111111(3)111111111111αa a a a a a a ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥==+⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦A 11110100(3)00100001a a a a ⎡⎤⎢⎥-⎢⎥=+⎢⎥-⎢⎥-⎣⎦=(a +3)(a -1)2=0 由此得a =-3或a =1.当a =1时,显然有R (A )=1;而当a =-3时,A 的左上角的3阶子式为311131160113-⎡⎤⎢⎥-=-≠⎢⎥⎢⎥-⎣⎦即A 中存在非零的3阶子式,且不存在更高阶的非零子式,故当且仅当a =-3时,R (A )=3.§5 矩阵的初等变换由上节介绍的方法求阶数较高的矩阵的秩的计算量很大,本节来介绍一种简单有效的求矩阵的秩的方法,即利用矩阵的初等变换求出矩阵的等价标准型,矩阵的秩就等于它的等价标准型的秩.下面我们回顾一下矩阵的初等行变换.定义 12 下面的三种变换称为矩阵的初等行变换:(1) 对换矩阵两行的位置(对换第i 行和第j 行的位置记为r (i ,j )).(2)矩阵的某行所有元素同乘以一个非零常数(第i 行乘以k 记为r (i (k ))).(3) 把矩阵一行所有元素的k 倍加到另一行对应的元素上去[第i 行的k 倍加到第j 行上去记为r (j +i (k ))].显然,矩阵的初等行变换都是可逆的,且其逆变换也是同类的初等行变换.r (i ,j )的逆变换仍为r (i ,j );r (i (k ))的逆变换为r (i (1/k ));r (j +i (k ))的逆变换为r (j +i (-k )).定理 12 如果矩阵A经过有限次初等行变换变为B ,则A 的行向量组与B 的行向量组等价,而A 的任意k 个列向量与B中对应的k 个列向量有相同的线性关系.证 当A 经过一次初等行变换变为B 时,B 的行向量组显然可由A 的行向量组线性表出,对A 的任意k 个列向量α1,α2,…,αk ,设它们所对应的B 的列向量依次为12k'''a ,a ,,a ,如果α1,α2,…,αk 线性相关,就有不全为零的常数12,,,k l l l 使1122k k l l l +++a a a =0.由12k'''a ,a ,,a 各分量与α1,α2,…,αk 各分量的关系容易得出 1122k kl l l '''+++a a a =0, 因此12k'''a ,a ,,a 也线性相关.由初等行变换的逆变换也是初等行变换可以知道A的行向量组也可由B的行向量组线性表出,并且由12k'''a ,a ,,a 线性相关也可以导出α1,α2,…,αk 线性相关,此时命题成立.当A要经若干个初等变换变为B时,用数学归纳法容易证明命题也成立.例11 求下列向量组α1=(1,-2,2,3), α2=(-2,4,-1,3), α3=(-1,2,0,3), α4=(0,6,2,3),α5=(2,-6,3,4) 的一个极大线性无关组与秩.解 作12102242662102333334--⎡⎤⎢⎥--⎢⎥=⎢⎥-⎢⎥⎣⎦A , 对A作初等行变换得(21(2))(31(2))(2,3)(41(3))(3,4)121212102000620322103021096320933200062r r r r r ++-+-----⎡⎤⎡⎤⎢⎥⎢⎥--⎢⎥⎢⎥−−−−→−−−→⎢⎥⎢⎥--⎢⎥⎢⎥--⎣⎦⎣⎦A (32(3))12102032210003100062r +---⎡⎤⎢⎥-⎢⎥−−−−→⎢⎥-⎢⎥-⎣⎦(43(2))12102032210003100000r +--⎡⎤⎢⎥-⎢⎥−−−−→⎢⎥-⎢⎥⎣⎦. (3.5) 上面最后一个矩阵(3.5)满足:从每一行的第一个元素到第一个非零元素下面全为零,这些零的排列像一个阶梯,每个阶梯都只有一行,它称为一个行阶梯矩阵.易见,行阶梯矩阵(3.5)中有一个3级子式不为零,而所有4级子式全为零,故矩阵(3.5)的秩为3,它的第1、2、4列线性无关,所以R (A)=3,且R (α1,α2,α3,α4,α5)=3,α1,α2,α4为该向量组的一个极大线性无关组.对(3.5)继续进行初等行变换还可化为更简单的形式:1(2())31(3())312102221013331000130000r r ---⎡⎤⎢⎥⎢⎥-⎢⎥−−−−→⎢⎥-⎢⎥⎢⎥⎢⎥⎣⎦矩阵(3.5) (12(2))2(23())311610039210103910001300000r r ++-⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥−−−−→⎢⎥⎢⎥-⎢⎥⎢⎥⎣⎦.(3.6) (3.6)仍是一个行阶梯形矩阵,但它的每一非零行的第一个非零元素为1,且这些元素所在的列的其他元素都为0,这个矩阵称为矩阵A的行最简形.例12 求向量组α1=(1,4,1,0,2),α2=(2,5,-1,-3,2),α3=(0,2,2,-1,0), α4=(-1,2,5,6,2)的一个极大无关组,并把不属于极大无关组的向量用该极大无关组线性表出.解 把向量组按列排成矩阵A ,利用初等行变换把A 化为行最简形矩阵B .1201120145220326112503260316031622020204⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥=→→-⎢⎥⎢⎥--⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦A1201100301020102001000100000000000000000-⎡⎤⎡⎤⎢⎥⎢⎥--⎢⎥⎢⎥⎢⎥⎢⎥→=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦B 易见B 的第1,2,3列线性无关,由于A 的列向量组与B 的对应的列向量组有相同的线性组合关系,故与其对应的矩阵A 的第1,2,3列线性无关,即α1,α2,α3是该向量组成的一个极大无关组.由矩阵B 易得α4=3α1-2α2.求向量组的极大无关组时,不管所给的是行向量组还是列向量组,都要按列排成矩阵再进行初等行变换.对应于矩阵的初等行变换,我们还可以定义矩阵的初等列变换.对矩阵的初等列变换c (i ,j ),c (i (k ))和c (j +i (k ))也有类似于矩阵的初等行变换的结论.所以,我们同样可以通过求矩阵的列阶梯形矩阵和列最简形来求矩阵的秩以及行向量组的极大线性无关组.矩阵的初等行变换和初等列变换统称为初等变换.事实上,我们在求矩阵的秩时,经常对矩阵既进行初等行变换也进行初等列变换,使计算过程得到简化.定义 13 如果矩阵A 经有限次初等变换化成B ,就称矩阵A 与B 等价. 我们容易证明,矩阵的等价关系具有下列性质: (1) 反身性: A 与A 等价.(2) 对称性: 如果A 与B 等价,那么B 与A 等价.(3) 传递性: 如果A 与B 等价,B 与C 等价,那么A 与C 等价. 定理 13 如果矩阵A 与B 等价,那么R (A )=R (B). 对矩阵(3.6)再进行初等列变换可得1(31())316(51())92(32())31(52())(3,4)91(54())31000010000010000100000010001000000000000r r r r c r +-+-+-++⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥−−−−→−−−→⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦矩阵(3.6). (3.7)矩阵(3.7)的左上角为一个单位矩阵E 3,它的阶数就是A 的秩,其他各分块矩阵都是零矩阵, 矩阵(3.7)就称为A 的等价标准型.事实上,我们有如下定理定理 14 每个矩阵都有等价标准型,矩阵A 与B 等价,当且仅当它们有相同的等价标准型.推论 两个同型矩阵等价的充分必要条件是它们的秩相等.当A 为n 阶可逆方阵时,R (A)=n ,所以A 的等价标准型为n 阶单位矩阵.由于可逆方阵的秩等于阶数,所以可逆方阵又称为满秩方阵,而奇异方阵就称为降秩方阵.§ 6初等矩阵与求矩阵的逆这一节我们来建立矩阵的初等变换与矩阵乘法的联系,并在此基础上给出用初等变换求逆矩阵的方法.定义 14由单位矩阵E经过一次初等变换得到的矩阵称为初等矩阵.显然,初等矩阵都是方阵.互换E 的第i 行与第j 行(或者互换E的第i 列和第j 列)的位置,得11011(,)11011i i j j ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦第行第行E ; 用常数k 乘E 的第i 行(或第i 列)得11(())11i k i k ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦第行E ; 把E的第j 行的k 倍加到第i 行(或把第i 列的k 倍加到第j 列)得11(())11i k i j k j ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥+=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦第行第行E . 这三类矩阵就是全部的初等矩阵,显然111()(),(())(())i j i j i k i k--==,,E E E E ,1(())(())i j k i j k -+=+-E E .定理15 对一个s ×n 矩阵A 作一初等行变换就相当于在A 的左边乘上相应的s ×s 初等矩阵;对A 作一初等列变换就相当于在A 的右边乘上相应的n ×n 初等矩阵.证 我们只看行变换的情形,列变换的情形可同样证明.令B=(b ij )s ×s 为任意一个s ×s 矩阵,A1,A2,…,As 为A 的行向量组,由矩阵的分块乘法,得111122121122221122s s s s s s ss s b b b b b b b b b ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦A +A ++A A +A ++A BA A +A ++A ,令B=E (i ,j ),得1()j i s i j ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦,A A E A A A ,这相当于把A 的i 行与j 行互换;令B=E (i (k )),得1(())i s i k k ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦A E A A A ,这相当于用k 乘A 的第i 行;令B=E (i +j (k )),得1(())i j j s k i j k ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥+=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦A A +A E A A A ,这相当于把A 的第j 行的k 倍加到第i 行.推论1 矩阵A 与B 等价的充分必要条件是:有初等方阵P1,P2,…,Ps ,Q1,…,Qt使A=P1P2…Ps BQ1Q2…Qt.推论2 n×n矩阵A 可逆的充分必要条件是:它能表成一些初等矩阵的乘积. 推论3 两个s×n矩阵A 、B 等价的充分必要条件是:存在可逆的s×s矩阵P 与可逆的n ×n 矩阵Q 使A=PBQ.推论4 可逆矩阵总可以经过一系列初等行变换化成单位矩阵.证 如果A 是可逆方阵,由推论2知道它可以写成一些初等矩阵的乘积:A=Q1Q2…Qm.因此11121m---=Q Q Q A E .由于初等矩阵的逆矩阵仍为初等矩阵,而A 左乘初等矩阵就相当于对A 施行初等行变换,所以A 可以经初等行变换化为单位矩阵.值得注意的是,如果有初等矩阵P1,…,Pm使Pm…P1A=E,那么A-1=Pm…P1=Pm…P1E,这说明,如果用一系列初等行变换可把可逆矩阵A 化为单位矩阵,那么同样地用这一系列初等行变换去化单位矩阵,就得到A -1.如果我们把A ,E 这两个矩阵凑在一起作成一个n ×2n 矩阵.(A┊E),按矩阵的分块乘法可得Pm…P1(A┊E)=(Pm…P1A┊Pm…P1E )=(E ┊A-1).这就给我们提供了一个具体的求可逆矩阵A 的逆矩阵的方法:作n×2n 矩阵(A ┊E ),用初等行变换把它的左边一半化成E ,这时,右边的一半就是A -1.例13 设012114210⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦A ,求A-1.解 对(A┊E)作初等行变换012100()114010210001⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦A E(1,2)114010012100210001r ⎡⎤⎢⎥−−−→⎢⎥⎢⎥-⎣⎦ (31(2))114010012100038021r +-⎡⎤⎢⎥−−−−→⎢⎥⎢⎥---⎣⎦ (32(3))114010012100002321r +⎡⎤⎢⎥−−−−→⎢⎥⎢⎥--⎣⎦(23(1))(13(2))(12(1))100211010421002321r r r +++--⎡⎤⎢⎥−−−−→-⎢⎥⎢⎥--⎣⎦1(3())210021101042131001122r -⎡⎤⎢⎥-⎢⎥−−−−→-⎢⎥⎢⎥--⎢⎥⎣⎦.于是121142131122-⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥--⎢⎥⎣⎦A .当然,同样可以证明,可逆矩阵也能用初等列变换化成单位矩阵,这就给出了用初等列变换求逆矩阵的方法.§7 向量空间定义15 设V 为n 维向量组成的集合.如果V 非空,且对于向量加法及数乘运算封闭,即对任意的α,β∈V 和常数k 都有α+β∈V,kα∈V,就称集合V 为一个向量空间.例14 n 维向量的全体R n构成一个向量空间.特别地,三维向量可以用有向线段来表示,所以R 3也可以看作以坐标原点为起点的有向线段的全体.例15 n 维零向量所形成的集合{0}构成一个向量空间.例16 集合V ={(0,x2,x3,…,xn)}|x2,x3,…,xn∈R }构成一个向量空间.例17 集合V ={(x1,x2,…,xn)|x1+x2+…+xn=1}不构成向量空间. 例18 设α1,α2,…,αm为一个n 维向量组,它们的线性组合V={k1α1+k2α2+…+k m αm |k 1,k 2,…,k m ∈R }构成一个向量空间.这个向量空间称为由α1,α2,…,αm所生成的向量空间,记为L (α1,α2,…,αm).例19 证明由等价的向量组生成的向量空间必相等.证 设α1,α2,…,αm和β1,β2,…,βs 是两个等价的向量组.任意的α∈L(α1,α2,…,αm)都可经α1,α2,…,αm线性表出.由向量组α1,α2,…,αm又可经β1,β2,…,βs 线性表出可以知道α也能经β1,β2,…,βs 线性表出,即有α∈L(β1,β2,…,βs ).由α的任意性得L (α1,α2,…,αm)⊆L (β1,β2,…,βs ).同理可证L (β1,β2,…,βs )⊆L ().于是L (α1,α2,…,αm)=L (β1,β2,…,βs ).定义16 如果V 1和V2都是向量空间且V 1⊆V2,就称V1是V2的子空间.任何由n 维向量所组成的向量空间都是R n的子空间.R n和{0}称为R n的平凡子空间,其他子空间称为R n的非平凡子空间.定义17 设V 为一个向量空间.如果V 中的向量组α1,α2,…,αr 满足(1)α1,α2,…,αr 线性无关;(2) V 中任意向量都可经α1,α2,…,αr 线性表出,那么,向量组α1,α2,…,αr 就称为V 的一个基,r 称为V 的维数,并称V 为一个r 维向量空间.如果向量空间V 没有基,就说V 的维数为0,0维向量空间只含一个零向量.如果把向量空间V 看作向量组,那么V 的基就是它的极大线性无关组,V 的维数就是它的秩.当V 由n 维向量组成时,它的维数不会超过n .例20 设 ()123221212122-⎡⎤⎢⎥=-⎢⎥⎢⎥-⎣⎦A a ,a ,a , ()12140342⎡⎤⎢⎥==⎢⎥⎢⎥-⎣⎦B ,ββ, 验证α1,α2,α3是R 3的一个基并将β1,β2用这个基线性表出.解 由|A|≠0可以知道α1,α2,α3线性无关,因此α1,α2,α3是R 3的一个基.设β1=x11α1+x21α2+x31α3,β2=x12α1+x22α2+x32α3,即(β1,β2)=(α1,α2,α3)111221223132x x x x x x ⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦, 那么 ()1112112122123132x x x x x x --⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦A ,=AB ββ.如果P 1,P2,…,Pl为初等矩阵,使P1P2…PlA=E,则 A-1=P1P2…Pl且11122122123132l x x x x x x ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦P P P B .因此只需对矩阵(A┊B)作初等行变换,当把A 变为E 时,B 就变成了A-1B.(A┊B)=221142*********-⎡⎤⎢⎥-⎢⎥⎢⎥--⎣⎦(1,3)122422*********r --⎡⎤⎢⎥−−−→-⎢⎥⎢⎥-⎣⎦(21(2))(31(2))122420368706378r r ++--⎡⎤⎢⎥−−−−→-⎢⎥⎢⎥-⎣⎦(1(1))(32(2))122420368700996r r -+----⎡⎤⎢⎥−−−−→-⎢⎥⎢⎥--⎣⎦1(3())9(23(6))(13(2))21202303023200113r r r -+-+⎡⎤--⎢⎥⎢⎥−−−−→-⎢⎥⎢⎥-⎢⎥⎣⎦1(2())3(12(2))2410033201013200113r r +⎡⎤⎢⎥⎢⎥⎢⎥−−−−→-⎢⎥⎢⎥⎢⎥-⎢⎥⎣⎦所以 112321232242,3333--++=a a a =a a a ββ. 习 题 三1. 设α1=(1,1,0),α2=(0,1,1),α3=(3,4,0).求α1-α2及3α1+2α2-α3.2. 设3(α1-α)+2(α2+α)=5(α3+α),其中α1=(2,5,1,3),α2=(10,1,5,10),α3=(4,1,-1,1).求α.3. 判断下列命题是否正确:(1) 若向量组α1,α2,…,αm线性相关,那么其中每个向量可经其他向量线性表示.(2) 如果向量β1,β2,…,βs 可经向量组α1,α2,…,αm线性表示且α1,α2,…,αm 线性相关,那么β1,β2,…,βs 也线性相关.(3) 如果向量β可经向量组α1,α2,…,αm线性表示且表示式是惟一的,那么α1,α2,…,αm线性无关.(4) 如果当且仅当λ1=λ2=…=λm=0时才有λ1α1+λ2α2+…+λm αm +λ1β1+λ2β2+…+λmβm=0,那么α1,α2,…,αm线性无关且β1,β2,…,βm 也线性无关.(5) α1,α2,…,αm线性相关,β1,β2,…,βm 也线性相关,就有不全为0的数λ1, λ2,…,λm使λ1α1+λ2α2+…+λm αm =λ1β1+λ2β2+…+λmβm.(6) 如果R (A )=r,则A 的r-1阶子式全为0.(7) 如果R (A )=r,则A 的r阶子式不为0.(8) 如果由矩阵A 划去一行得到B ,则R (A )>R (B ).(9) 如果P 为一个可逆s×s方阵,Q 为一个可逆n×n方阵,A 为一个s×n阵,那么R (A )=R (PAQ).4. 判别下列向量组的线性相关性.(1)α1=(2,5), α2=(-1,3);(2) α1=(1,2), α2=(2,3), α3=(4,3);(3) α1=(1,1,3,1),α2=(4,1,-3,2),α3=(1,0,-1,2);(4) α1=(1,1,2,2,1),α2=(0,2,1,5,-1),α3=(2,0,3,-1,3),α4=(1,1,0,4,-1).5. β1=α1+α2,β2=α2+α3,β3=α3+α4,β4=α4+α1,证明向量组β1,β2,β3,β4线性相关.6. 设向量组α1,α2,…,αr 线性无关,证明向量组β1,β2,…,βr 也线性无关,这里βi=α1+α2+…+αi.7. 作一个以(1,0,1,0)和(1,-1,0,0)为行向量的秩为4的方阵.8. αi=(αi1,αi2,…,αin),i =1,2,…,n.证明:如果|aij|≠0,那么α1,α2,…,αn 线性无关.。
第3章数组及矩阵运算
第3章数组及矩阵运算第三章数组与矩阵及其基本运算3.1 数组3.1.1数组与矩阵的输⼊1. 直接输⼊法对于规模较⼩的矩阵,可直接在MATLAB 命令窗输⼊,也可在程序编辑器中写⼊程序,矩阵元素值还可在变量浏览器修改。
矩阵所有元素包含在“[]”内,同⾏元素之间⽤“,”隔开,也可⽤空格,两⾏元素⽤“;”分开,矩阵元素可以是数值,也可以是表达式。
【例3-1】输⼊矩阵=987654321A 。
解:(1)在键盘上输⼊下列内容A = [1,2,3; 4,5,6; 7,8,9](2)按【Enter 】键,指令被执⾏,⼯作窗将显⽰以下结果:A =1 2 3 4 5 67 8 9也可输⼊:A = [1 2 3; 4 5 6; 7 8 9] %同⾏元素之间⽤空格或 A=[1 2 3;4 5 6; 7 8 9]【例3-2】已知B=2+3i ,输⼊矩阵??+=9872*6)5(4323/1B sqrt A 。
解:(1)在键盘上输⼊下列内容A = [1/3,2,3; 4,sqrt(5),6*B+2; 7,8,9](2)按【Enter 】键,指令被执⾏,⼯作窗将显⽰以下结果:A =0.3333 2.0000 3.00004.0000 2.2361 14.0000 +18.0000i 7.0000 8.0000 9.0000【例3-3】⽤下⾯三条指令创建⼆维数组C 。
解:(1)在键盘上输⼊下列内容a=sqrt(2); b=33^0.5;C=[1,1/a+i*b,b*sqrt(a);sin(pi/6),a+b,3+2i](2)按回车后得:C =1.0000 0.7071 + 5.7446i 6.8315 0.5000 7.1588 3.0000 +2.0000i复数矩阵的输⼊见例2-2、例2-3。
【例3-4】输⼊矩阵??++++++=i i ii i iCN 166155144133122111。
解:在键盘上输⼊下列内容后,按回车后得CN 矩阵。
Matlab教程之矩阵运算
第3章 矩阵、数组和符号运算
c.利用M文件产生矩阵
A=[1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 16,17,18,19,20 21,22,23,24,25]
第3章 矩阵、数组和符号运算
d.从外部数据文件调入矩阵 用load命令输入 用Import 菜单输入
第3章 矩阵、数组和符号运算
>> a=[1,2,3,4]; >> x=0:0.5:2;
% x=logspace(a,b,n) 生成有 n 个元素的行向量 x,其元素起点 x(1)=10a, 终点 x(n)=10b。
>> b=logspace(0,2,4) b= 1.0000 4.6416 21.5443 100.0000
第3章 矩阵、数组和符号运算
% eye 生成单位阵
0 0 0 1 0 0 0 0 0 0 1 0
% rand 生成均匀分布的随机矩阵
>> R=rand(4) R= 0.9501 0.8913 0.2311 0.7621 0.6068 0.4565 0.4860 0.0185 0.8214 0.4447 0.6154 0.7919 0.9218 0.7382 0.1763 0.4057
>> ones(3,4) ans = 1 1 1 1 1 1 1 1 1 1 1 1 >> F=5*ones(3) F= 5 5 5 5 5 5 5 5 5
%生成空阵
>> K=[] K= []
-6 0 0 0 0
% zeros 生成全部元素为0的矩阵
>> Z=zeros(2,4) Z= 0 0 0 0 0 0 0 0 0 0 0 0 0 1
4 矩阵和数组(2):运算与操作
一、矩阵变形
让reshape函数内部自动计算所需的行数
将向量转换成矩阵 (按列排放)
Reshape要求变形前后的元素总数目保持不变
>> A=[1:3;4:6;7:9] A= 1 2 3 4 5 6 7 8 9
>> rot90(A) ans = 3 6 9 2 5 8 1 4 7
逆时针旋转90度
2
3
4
5
8
9
>> B = sort(A,'descend') %降序 B= 9 8 5 4 3 2 0 -7 -10 >> B = sort(A, 'ascend' ) %升序 B= -10 -7 0 2 3 4 5 8
9
>> A = [9 0 -7 5 3 8 -10 4 2] A= 9 0 -7 5 3 8 -10 1 2 3 4 5 6 7
Description Circularly shift matrix contents. Sort array elements in ascending or descending order. Sort rows in ascending order. Determine if matrix elements are in sorted order.
基于多列排序: 前面一列若有相等的数值, 后面一列继续按照数值大小排序
>> B = sortrows(A,[1 7]) B= 76 79 91 0 19 76 44 40 35 60 76 61 93 81 27 95 82 17 5 19 95 1 73 89 20 95 45 92 41 13 >> C = sortrows(A,[1 -7]) C= 76 61 93 81 27 76 44 40 35 60 76 79 91 0 19 95 45 92 41 13 95 1 73 89 20 95 82 17 5 19
第3章 数组(习题答案及解析)
习题3 参考答案一、选择题3.1 C 分析:本题考查程序和数组的基本概念。
3.2 A 分析:字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,B选项不正确;字符串比较大小除了使用库函数strcn3()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小。
因为字符串在表达式中相当于const char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。
C选项不正确。
C语言中只有字符串常量而没有字符串变量,D选项描述不正确;空串的长度为0,而以空格打头的字符串的长度至少为1,因此A选项是正确。
3.3 A 分析:如果第一维的长度没有指定,则定义的同时需要完成初始化,否则不知道分配多大的内存空间给它,所以选项B、C错误;二维数组a[2][3]中只有两个元素,都是一维数组,一维下标最大只能是a[1],所以选项D错误;若完成初始化的二维数组,第一维的长度没有指定,则第一维的大小按如下规则确定:若初值个数能被第二维大小整除,所得的商就是第一维的大小,若不能整除,则所得的商加1作为第一维的大小,所以选项A相当于:double a[1][3] = {6};其中a[0][0]=6,其他元素赋值0,选项A正确,答案为A。
3.4 D 分析:本题考察的知识点是:字符串常量。
在C语言中,字符串常量是以双引号括起来的字符序列。
因此B选项和C选项不正确。
字符序列中可包含一些转义字符,转义字符都是以"\"开头的。
A选项中包含了三个"\",前两个(\\)代表了一个"\"字符,后面一个和"""一起(\")被看作一个""",所以该字符串缺少一个结束的""",因此不正确。
D选项的两个"""之间没有任何字符,代表的是一个空串,是合法的字符串常量,因此D选项正确。
c语言编写矩阵及其运算
c语言编写矩阵及其运算矩阵是线性代数中的重要概念,它可以用来表示线性方程组、线性变换以及向量空间等。
在C语言中,我们可以通过数组来实现矩阵的表示和运算。
本文将介绍如何使用C语言编写矩阵及其运算的相关代码。
1. 矩阵的表示在C语言中,可以使用二维数组来表示矩阵。
二维数组是由多个一维数组组成的,每个一维数组表示矩阵的一行或一列。
例如,我们可以使用以下代码定义一个3x3的矩阵:```int matrix[3][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};```2. 矩阵的运算矩阵的运算包括加法、减法、乘法等。
下面分别介绍这些运算在C 语言中的实现方法。
2.1 矩阵加法矩阵加法的规则是将两个矩阵对应元素相加。
例如,给定两个相同大小的矩阵A和B,它们的和矩阵C的第i行第j列的元素可表示为:C[i][j] = A[i][j] + B[i][j]。
下面是一个实现矩阵加法的代码示例:```void matrixAddition(int A[][3], int B[][3], int C[][3], int rows, int cols) {for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {C[i][j] = A[i][j] + B[i][j];}}}```2.2 矩阵减法矩阵减法的规则与矩阵加法类似,只是将对应元素相减。
例如,给定两个相同大小的矩阵A和B,它们的差矩阵C的第i行第j列的元素可表示为:C[i][j] = A[i][j] - B[i][j]。
下面是一个实现矩阵减法的代码示例:```void matrixSubtraction(int A[][3], int B[][3], int C[][3], int rows, int cols) {for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {C[i][j] = A[i][j] - B[i][j];}}}```2.3 矩阵乘法矩阵乘法的规则是将第一个矩阵的每一行与第二个矩阵的每一列进行点乘,然后将结果相加。
3.多维数组和矩阵
3.多维数组和矩阵多维数组和矩阵数组(array)和矩阵(matrix)数组(array)可以看成是带多个下标的类型相同的元素的集合,常⽤的是数值型的数组如矩阵,也可以有其它类型(如字符型、逻辑型、复型数组)。
S可以很容易地⽣成和处理数组,特别是矩阵(⼆维数组)。
数组有⼀个特征属性叫做维数向量(dim属性),维数向量是⼀个元素取正整数值的向量,其长度是数组的维数,⽐如维数向量有两个元素时数组为⼆维数组(矩阵)。
维数向量的每⼀个元素指定了该下标的上界,下标的下界总为1。
⼀组值只有定义了维数向量(dim属性)后才能被看作是数组。
⽐如:> z <- 1:1500> dim(z) <- c(3, 5, 100)这时z已经成为了⼀个维数向量为c(3,5,100)的三维数组。
也可以把向量定义为⼀维数组,例如:> dim(z) <- 1500数组元素的排列次序缺省情况下是采⽤FORTRAN的数组元素次序(按列次序),即第⼀下标变化最快,最后下标变化最慢,对于矩阵(⼆维数组)则是按列存放。
例如,假设数组a的元素为1:24,维数向量为c(2,3,4),则各元素次序为a[1,1,1], a[2,1,1], a[1,2,1], a[2,2,1], a[1,3,1], ...,a[2,3,4]。
⽤函数array()或matrix()可以更直观地定义数组。
array()函数的完全使⽤为array(x,dim=length(x), dimnames=NULL),其中x是第⼀⾃变量,应该是⼀个向量,表⽰数组的元素值组成的向量。
dim参数可省,省略时作为⼀维数组(但不同于向量)。
dimnames属性可以省略,不省略时是⼀个长度与维数相同的列表(list,见后⾯),列表的每个成员为⼀维的名字。
例如上⾯的z可以这样定义:> z <- array(1:1500, dim=c(3,5,100))函数matrix()⽤来定义最常⽤的⼀种数组:⼆维数组,即矩阵。
矩阵的运算及其运算规则
矩阵的运算及其运算规则矩阵是现代数学中的一种重要工具,它在线性代数、图论、物理学等领域中都有广泛的应用。
矩阵的运算是研究矩阵性质和解决实际问题的基础。
本文将介绍矩阵的运算及其运算规则。
(一)矩阵的加法矩阵的加法是指将两个相同大小的矩阵对应位置的元素相加。
假设有两个矩阵A和B,它们的大小都是m行n列,记作A = [aij]m×n,B = [bij]m×n,则矩阵A和B的加法C = A + B定义为C = [cij]m×n,其中cij = aij + bij。
例如,对于矩阵A = [1 2 3; 4 5 6]和矩阵B = [7 8 9; 10 11 12],它们的加法结果为C = [8 10 12; 14 16 18]。
矩阵的加法满足以下运算规则:1. 加法满足交换律,即A + B = B + A。
2. 加法满足结合律,即(A + B) + C = A + (B + C)。
3. 存在一个零矩阵0,使得A + 0 = A。
4. 对于任意矩阵A,存在一个相反矩阵-B,使得A + (-B) = 0。
(二)矩阵的数乘矩阵的数乘是指将一个矩阵的每个元素都乘以一个数。
假设有一个矩阵A和一个实数k,记作kA,则矩阵kA定义为kA = [kaij]m×n。
例如,对于矩阵A = [1 2 3; 4 5 6]和实数k = 2,它们的数乘结果为kA = [2 4 6; 8 10 12]。
矩阵的数乘满足以下运算规则:1. 数乘满足结合律,即k(lA) = (kl)A,其中k和l分别为实数。
2. 数乘满足分配律,即(k + l)A = kA + lA,其中k和l分别为实数。
3. 数乘满足分配律,即k(A + B) = kA + kB,其中k为实数,A和B 为矩阵。
(三)矩阵的乘法矩阵的乘法是指将一个m行n列的矩阵A和一个n行p列的矩阵B 相乘得到一个m行p列的矩阵C。
假设有两个矩阵A和B,它们的大小分别为m行n列和n行p列,记作A = [aij]m×n,B = [bij]n×p,则矩阵A和B的乘法C = AB定义为C = [cij]m×p,其中cij= ∑(ai1 * b1j)。
矩阵的运算和应用
矩阵的应用
矩阵可以表示线性方程组的系数 矩阵的乘法可以求解线性方程组 矩阵的逆可以求解线性方程组 矩阵的秩可以判断线性方程组的解的情况
矩阵可以用于向量的线性变 换
矩阵可以表示向量和向量之 间的关系
矩阵可以用于求解线性方程 组
矩阵可以用于计算向量的内 积和外积
矩阵在概率论中用于描述随机变量的关系和变化
矩阵加法满足交换 律和结合律
矩阵加法满足有零 元和负元
矩阵加法满足消去 律
矩阵加法的单位元 是零矩阵
矩阵的数乘
定义:数乘矩阵是将一个标量 与矩阵中的每个元素相乘
性质:数乘不改变矩阵的行数 和列数
运算规则:标量与矩阵中的每 个元素相乘,得到一个新的矩 阵
应用:在数学、物理、工程等 领域有广泛应用
矩阵乘法满足结合律
矩阵乘法不满足交换律
矩阵乘法的单位元是单位矩阵
矩阵乘法的逆元存在,但计算 复杂
矩阵乘法的定义:两个矩阵相乘,按照一定的规则,将一个矩阵的列向量与另一个矩阵的行向量 对应相乘,得到一个新的矩阵。
矩阵乘法的规则:第一个矩阵的列数必须等于第二个矩阵的行数,且结果矩阵的行数等于第一个 矩阵的行数,列数等于第二个矩阵的列数。
矩阵数乘满足结合 律
矩阵数乘不满足交 换律
矩阵数乘满足分配 律
数乘不改变矩阵的 秩
矩阵பைடு நூலகம்乘法
矩阵乘法的结果是一个新的矩 阵,其元素是原来两个矩阵对 应元素的乘积之和
矩阵乘法是线性代数中的基本 运算之一,用于将两个矩阵相 乘
矩阵乘法满足结合律,但不 满足交换律和分配律
矩阵乘法在科学计算、工程技 术和经济学等领域有广泛应用
逆矩阵的应用: 线性方程组的 求解、行列式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章数组与矩阵及其基本运算3.1 数组3.1.1数组与矩阵的输入1. 直接输入法对于规模较小的矩阵,可直接在MATLAB 命令窗输入,也可在程序编辑器中写入程序,矩阵元素值还可在变量浏览器修改。
矩阵所有元素包含在“[]”内,同行元素之间用“,”隔开,也可用空格,两行元素用“;”分开,矩阵元素可以是数值,也可以是表达式。
【例3-1】输入矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321A 。
解:(1)在键盘上输入下列内容A = [1,2,3; 4,5,6; 7,8,9](2)按【Enter 】键,指令被执行,工作窗将显示以下结果:A =1 2 3 4 5 67 8 9也可输入:A = [1 2 3; 4 5 6; 7 8 9] %同行元素之间用空格 或 A=[1 2 3;4 5 6; 7 8 9]【例3-2】已知B=2+3i ,输入矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+=9872*6)5(4323/1B sqrt A 。
解:(1)在键盘上输入下列内容A = [1/3,2,3; 4,sqrt(5),6*B+2; 7,8,9](2)按【Enter 】键,指令被执行,工作窗将显示以下结果:A =0.3333 2.0000 3.00004.0000 2.2361 14.0000 +18.0000i 7.0000 8.0000 9.0000【例3-3】用下面三条指令创建二维数组C 。
解:(1)在键盘上输入下列内容a=sqrt(2); b=33^0.5;C=[1,1/a+i*b,b*sqrt(a);sin(pi/6),a+b,3+2i](2)按回车后得:C =1.0000 0.7071 + 5.7446i 6.8315 0.5000 7.1588 3.0000 +2.0000i复数矩阵的输入见例2-2、例2-3。
【例3-4】输入矩阵⎥⎦⎤⎢⎣⎡++++++=i i ii i iCN 166155144133122111。
解:在键盘上输入下列内容后,按回车后得CN 矩阵。
M_1=[1,2,3;4,5,6],M_2=[11,12,13;14,15,16];CN=M_1+i*M_2【例3-5】将时间轴t 在[-1,6]之间等分,间距为0.2,求等分后的t 数组。
解:“:”法在定义等间隔数组时经常使用,在命令窗中用键盘输入:t=1:0.2:6;2. 由函数创建MATLAB提供大量函数和特殊矩阵,可用于矩阵或数组的创建。
【例3-6】创建等差数列,用函数linspace对例3-5求解。
解:t=linspace(1,6,26); % linspace用法: linespace(<初值>,<终值>,<元素个数>)【例3-7】用logspace创建等比数列,。
解:t=logspace(0,5,6)运行得:t =1 10 100 1000 10000 100000产生起点为100、终点为105、的6个数据的等比数列。
【例3-8】用ones产生全1矩阵。
ones(1,2) %产生规模为 1X2的全1行数组ans =1 12(⨯的全1阵ones(2) %产生)2ans =1 11 1【例3-9】用randn产生正态随机矩阵。
randn('state',0) %把正态随机数发生器置02(⨯的正态随机阵randn(2,3) %产生)3ans =-0.4326 0.1253 -1.1465-1.6656 0.2877 1.1909【例3-10】用eye产生单位矩阵。
3(⨯的单位阵D=eye(3) %产生)3D =1 0 00 1 00 0 1【例3-11】用diag产生对角矩阵。
diag(D) %取D阵的对角元ans =111diag(diag(D)) %内diag取D的对角元,外diag利用一维数组生成对角阵ans =1 0 00 1 00 0 13. 由矩阵编辑器创建和修改当矩阵规模很大不适合用程序或键盘输入时,可通过矩阵编辑器创建和修改,步骤入下:(1)先给待初始化的矩阵在命令窗赋以任意初值,例如,输入abc=2。
(2)在变量浏览器查找变量abc。
(3)双击该变量名,弹出矩阵编辑器,在此界面可修改矩阵规模和矩阵元素值。
在界面工具栏有输入框“size”、“by”,在此修改矩阵规模。
通过滚动条查找须修改元素,直接输入元素值。
图3-1 矩阵编辑器3.1.2 数组的访问【例3-12】数组的访问与赋值。
rand('state',0) %把均匀分布伪随机发生器置为0状态 x=rand(2,4) %产生)(42⨯的随机数组 x =0.9501 0.6068 0.8913 0.4565 0.2311 0.4860 0.7621 0.0185 x(1,3) %寻访数组x 第一行的第三个元素。
ans =0.8913x(1,3)=1 %数组x 第一行的第三个元素赋值为1 x =0.9501 0.6068 1.0000 0.4565 0.2311 0.4860 0.7621 0.0185x(1,[1 2 4]) %访问数组x 第一行的第一、二、四、八个元素组成的子数组。
ans =0.9501 0.6068 0.4565x(1,[1 2 4])=[0 0 0] %数组x 第一行的第一、二、四、八个元素赋值为0。
x =0 0 1.0000 00.2311 0.4860 0.7621 0.0185x(2,2:4) %寻访前x 第二行的第二个到第四个元素组成的子数组 ans =0.4860 0.7621 0.0185x(1,3:end) %寻访x 第一行除前2个元素外的全部其他元素。
ans =0.8913 0.4565x(find(x>0.7)) %由大于0.7的元素构成的子数组 ans =0.9501 0.8913 0.7621【例3-13】不同赋值方式。
A=zeros(2,4) %创建)42(⨯的全零数组A =0 0 0 0 0 0 0 0 A(:)=1:0.1:1.7 A =1.0000 1.2000 1.4000 1.6000 1.1000 1.3000 1.5000 1.7000s=[2 3 5]; A(s) ans =1.1000 1.2000 1.4000修改值SA=[10 20 30]' %Sa是长度为3的“列数组”A(s)=SA %单下标方式赋值ans =2 3 5SA =102030A =1.0000 20.0000 30.0000 1.600010.0000 1.3000 1.5000 1.7000A(:,[2 3])=ones(2) %双下标赋值方式:把A的第2、3列元素全赋为1A =1.0000 1.0000 1.0000 1.600010.0000 1.0000 1.0000 1.70003.2数组运算和矩阵运算3.2.1数组和矩阵的基本运算矩阵运算遵循线性代数中的矩阵运算规则,数组的运算是按单个元素进行,二者的运算符号是不一样的。
表3-1数组和矩阵的基本运算符【例3-13】已知A=[1 2 3;4 5 6;7 8 9],p=0.5,求数组的标量乘方A.^p和标量的数组乘方p.^A。
解:A=[1 2 3;4 5 6;7 8 9];p=0.5;B=A.^pC=p.^A结果:B =1.0000 1.4142 1.73212.0000 2.2361 2.44952.6458 2.82843.0000C =0.5000 0.2500 0.12500.0625 0.0313 0.01560.0078 0.0039 0.0020【例3-14】求解线性方程组解:⎪⎩⎪⎨⎧=-+-=-+-=+-+040142301752321321321x x x x x x x x x解:(1)求逆法线性方程组一般形式为AX=B ,用求逆法求解步骤:先求A 的行列式值,如果不为0,则B A X 1-=。
写出该题的MATLAB 程序: A=[2 5 –7;3 –2 4; 1 –1 1];B=[-1 1 4] '; %也可输入B=[-1;1;4]; if det(A)~=0 %判断A 的行列式值是否为0 X=inv(A)*B 运算结果: X = 1.5000 -6.7500 -4.2500 (2)左除法也可用左除法解线性方程组,解法是: A=[2 5 –7;3 –2 4; 1 –1 1];B=[-1 1 4] '; %也可输入B=[-1;1;4]; X=A\B左除法是MATLAB 引入的一种特殊的矩阵除法运算,它是基于高斯消元法原理,具有求解速度快、稳定性好、精度高的特点。
【例 3-15】两种不同转置的比较clear;A=zeros(2,3);A(:)=1:6; %全元素赋值法A=A*(1+i) %运用标量与矩阵乘产生复数矩阵 A_A=A.' %数组转置,即非共轭转置 A_M=A' %矩阵转置,即共轭转置 A =1.0000 + 1.0000i 3.0000 + 3.0000i 5.0000 + 5.0000i2.0000 + 2.0000i 4.0000 + 4.0000i 6.0000 + 6.0000i A_A =1.0000 + 1.0000i2.0000 + 2.0000i3.0000 + 3.0000i4.0000 + 4.0000i5.0000 + 5.0000i6.0000 + 6.0000i A_M =1.0000 - 1.0000i2.0000 - 2.0000i3.0000 - 3.0000i4.0000 - 4.0000i5.0000 - 5.0000i6.0000 - 6.0000i3.2.2 数组操作函数【例 3-16】diag 与reshape 的使用。
a=-4:4 %产生一维数组A=reshape(a,3,3) %把一维数组a 重排成)33(⨯的二维数组a =-4 -3 -2 -1 0 1 2 3 4 A =-4 -1 2 -3 0 3 -2 1 4a1=diag(A,1) %取A 阵“第一上对角线”的元素 a1 = -1 3A1=diag(a1,-1) %产生以a1数组元素为“第一下对角线”元素的二维数组 A1 =0 0 0 -1 0 0 0 3 0【例3-17】数组对称交换和旋转操作后果的对照比较。
A A =-4 -1 2 -3 0 3 -2 1 4flipud(A) %上下对称交换 ans =-2 1 4 -3 0 3 -4 -1 2fliplr(A) %左右对称交换 ans =2 -1 -43 0 -34 1 -2rot90(A) %逆时针旋转90度 ans =2 3 4 -1 0 1 -4 -3 -23.3 高维数组【例3-18】“全下标”元素赋值方式创建高维数组。