第1章矩阵及其基本运算xxf2数模.docx
- 文档编号:5344376
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:33
- 大小:175.98KB
第1章矩阵及其基本运算xxf2数模.docx
《第1章矩阵及其基本运算xxf2数模.docx》由会员分享,可在线阅读,更多相关《第1章矩阵及其基本运算xxf2数模.docx(33页珍藏版)》请在冰豆网上搜索。
第1章矩阵及其基本运算xxf2数模
1.1矩阵的表示
数值矩阵的生成
1.实数值矩阵输入
Time=[111212345678910]
X_Data=[2.323.43;4.375.98]
vect_a=[12345]
Matrix_B=[123 ;
234 ;345]
Null_M=[]%生成一个空矩阵
2.复数矩阵输入
复数矩阵有两种生成方式:
第一种方式
例1-1
a=2.7;b=13/25;
C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+1]
第2种方式
例1-2
R=[123;456],M=[111213;141516]
CN=R+i*M
1.1.2特殊矩阵的生成
命令全零阵
函数zeros
格式B=zeros(n)%生成n×n全零阵
B=zeros(m,n)%生成m×n全零阵
B=zeros([mn])%生成m×n全零阵
B=zeros(d1,d2,d3…)%生成d1×d2×d3×…全零阵或数组
B=zeros([d1d2d3…])%生成d1×d2×d3×…全零阵或数组
B=zeros(size(A))%生成与矩阵A相同大小的全零阵
命令单位阵
函数eye
格式Y=eye(n)%生成n×n单位阵
Y=eye(m,n)%生成m×n单位阵
Y=eye(size(A))%生成与矩阵A相同大小的单位阵
命令全1阵
函数ones
格式Y=ones(n)%生成n×n全1阵
Y=ones(m,n)%生成m×n全1阵
Y=ones([mn])%生成m×n全1阵
Y=ones(d1,d2,d3…)%生成d1×d2×d3×…全1阵或数组
Y=ones([d1d2d3…])%生成d1×d2×d3×…全1阵或数组
Y=ones(size(A))%生成与矩阵A相同大小的全1阵
命令均匀分布随机矩阵
函数rand
格式Y=rand(n)%生成n×n随机矩阵,其元素在(0,1)内
Y=rand(m,n)%生成m×n随机矩阵
Y=rand([mn])%生成m×n随机矩阵
Y=rand(m,n,p,…)%生成m×n×p×…随机矩阵或数组
Y=rand([mnp…])%生成m×n×p×…随机矩阵或数组
例1-9产生一个3×4随机矩阵
R=rand(3,4)
例1-10产生一个在区间[10,20]内均匀分布的4阶随机矩阵
a=10;b=20;
x=a+(b-a)*rand(4)
命令正态分布随机矩阵
函数randn
格式Y=randn(n)%生成n×n正态分布随机矩阵
Y=randn(m,n)%生成m×n正态分布随机矩阵
Y=randn([mn])%生成m×n正态分布随机矩阵
Y=randn(m,n,p,…)%生成m×n×p×…正态分布随机矩阵或数组
Y=randn([mnp…])%生成m×n×p×…正态分布随机矩阵或数组
Y=randn(size(A))%生成与矩阵A相同大小的正态分布随机矩阵
randn%无变量输入时只产生一个正态分布随机数
例1-11产生均值为0.6,方差为0.1的4阶矩阵
mu=0.6;sigma=0.1;
x=mu+sqrt(sigma)*randn(4)
命令产生随机排列
函数randperm
格式p=randperm(n)%产生1~n之间整数的随机排列
例1-12
randperm(6)
ans=
321546
命令产生线性等分向量
函数linspace
格式y=linspace(a,b)%在(a,b)上产生100个线性等分点
y=linspace(a,b,n)%在(a,b)上产生n个线性等分点
y=linspace(0,22,5)
y=
05.500011.000016.500022.0000
命令产生以输入元素为对角线元素的矩阵
函数blkdiag
格式out=blkdiag(a,b,c,d,…)%产生以a,b,c,d,…为对角线元素的矩阵
例1-13
out=blkdiag(1,2,3,4)
diag([1,2,3,4])
命令Hilbert矩阵
函数hilb
格式H=hilb(n)%返回n阶Hilbert矩阵,其元素为H(i,j)=1/(i+j-1)。
例1-17产生一个3阶Hilbert矩阵
formatrat%以有理形式输出
H=hilb(3)
H=
11/21/3
1/21/31/4
1/31/41/5
命令逆Hilbert矩阵
函数invhilb
格式H=invhilb(n)%产生n阶逆Hilbert矩阵
命令Magic(魔方)矩阵
函数magic
格式M=magic(n)%产生n阶魔方矩阵
例1-18
M=magic(3)
M=
816
357
492
1.2矩阵运算
1.2.1加、减运算
运算符:
“+”和“-”分别为加、减运算符。
运算规则:
对应元素相加、减,即按线性代数中矩阵的“十”,“一”运算进行。
例1-22
A=[1,1,1;1,2,3;1,3,6]
B=[8,1,6;3,5,7;4,9,2]
C=A+B
D=A-B
1.2.2乘法
运算符:
*
运算规则:
按线性代数中矩阵乘法运算进行,即放在前面的矩阵的各行元素,分别与放在后面的矩阵的各列元素对应相乘并相加。
1.两个矩阵相乘
例1-23
X=[2345;
1221];
Y=[011;
110;
001;
100];
Z=X*Y
结果显示为:
Z=
856
333
2.矩阵的数乘:
数乘矩阵
上例中:
a=2*X
则显示:
a=
46810
2442
向量的点乘(内积):
维数相同的两个向量的点乘。
数组乘法:
A.*B表示A与B对应元素相乘。
3.向量点积
函数dot
格式C=dot(A,B)%若A、B为向量,则返回向量A与B的点积,A与B长度相同;若为矩阵,则A与B有相同的维数。
C=dot(A,B,dim)%在dim维数中给出A与B的点积
例X=[-102];
Y=[-2-11];
Z=dot(X,Y)
则显示:
Z=
4
还可用另一种算法:
sum(X.*Y)
ans=
4
4.向量叉乘
在数学上,两向量的叉乘是一个过两相交向量的交点且垂直于两向量所在平面的向量。
在Matlab中,用函数cross实现。
函数cross
格式C=cross(A,B)%若A、B为向量,则返回A与B的叉乘,即C=A×B,A、B必须是3个元素的向量;若A、B为矩阵,则返回一个3×n矩阵,其中的列是A与B对应列的叉积,A、B都是3×n矩阵。
C=cross(A,B,dim)%在dim维数中给出向量A与B的叉积。
A和B必须具有相同的维数,size(A,dim)和size(B,dim)必须是3。
例1-24计算垂直于向量(1,2,3)和(4,5,6)的向量。
a=[123];
b=[456];
c=cross(a,b)
结果显示:
c=
-36-3
可得垂直于向量(1,2,3)和(4,5,6)的向量为±(-3,6,-3)
5.混合积
混合积由以上两函数实现:
例1-25计算向量a=(1,2,3)、b=(4,5,6)和c=(-3,6,-3)的混合积
解:
a=[123];b=[456];c=[-36-3];
x=dot(a,cross(b,c))
结果显示:
x=
54
注意:
先叉乘后点乘,顺序不可颠倒。
1.2.3除法运算
Matlab提供了两种除法运算:
左除(\)和右除(/)。
一般情况下,x=a\b是方程a*x=b的解,而x=b/a是方程x*a=b的解。
例:
a=[123;426;749];
b=[4;1;2];
x=a\b
则显示:
x=
-1.5000
2.0000
0.5000
如果a为非奇异矩阵,则a\b和b/a可通过a的逆矩阵与b阵得到:
a\b=inv(a)*b
b/a=b*inv(a)
数组除法:
A./B表示A中元素与B中元素对应相除。
1.2.4矩阵转置
运算符:
′
运算规则:
若矩阵A的元素为实数,则与线性代数中矩阵的转置相同。
若A为复数矩阵,则A转置后的元素由A对应元素的共轭复数构成。
若仅希望转置,则用如下命令:
A.′。
1.2.7方阵的行列式
函数det
格式d=det(X)%返回方阵X的多项式的值
例1-42
A=[123;456;789]
A=
123
456
789
D=det(A)
D=
0
1.2.8逆与伪逆
命令逆
函数inv
格式Y=inv(X)%求方阵X的逆矩阵。
若X为奇异阵或近似奇异阵,将给出警告信息。
例1-43求
的逆矩阵
方法一
A=[123;221;343];
Y=inv(A)或Y=A^(-1)
则结果显示为
Y=
1.00003.0000-2.0000
-1.5000-3.00002.5000
1.00001.0000-1.0000
方法二:
由增广矩阵
进行初等行变换
B=[1,2,3,1,0,0;2,2,1,0,1,0;3,4,3,0,0,1];
C=rref(B)%化行最简形
X=C(:
4:
6)%取矩阵C中的A^(-1)部分
显示结果如下:
C=
1.0000001.00003.0000-2.0000
01.00000-1.5000-3.00002.5000
001.00001.00001.0000-1.0000
X=
1.00003.0000-2.0000
-1.5000-3.00002.5000
1.00001.0000-1.0000
例1-44
A=[21-1;212;1-11];
formatrat%用有理格式输出
D=inv(A)
D=
1/301/3
01/3-2/3
-1/31/30
1.2.9矩阵的迹
函数trace
格式b=trace(A)%返回矩阵A的迹,即A的对角线元素之和。
1.2.10矩阵和向量的范数
命令向量的范数
函数norm
格式n=norm(X)%X为向量,求欧几里德范数,即
。
n=norm(X,inf)%求
-范数,即
。
n=norm(X,1)%求1-范数,即
。
n=norm(X,-inf)%求向量X的元素的绝对值的最小值,即
。
n=norm(X,p)%求p-范数,即
,所以norm(X,2)=norm(X)。
命令矩阵的范数
函数norm
格式n=norm(A)%A为矩阵,求欧几里德范数
,等于A的最大奇异值。
n=norm(A,1)%求A的列范数
,等于A的列向量的1-范数的最大值。
n=norm(A,2)%求A的欧几里德范数
,和norm(A)相同。
n=norm(A,inf)%求行范数
,等于A的行向量的1-范数的最大值
即:
max(sum(abs(A')))。
n=norm(A,'fro')%求矩阵A的Frobenius范数
,
即sqrt(sum(diag(A'*A))),不能用矩阵p-范数的定义来求。
1.2.11矩阵的秩
函数rank
格式k=rank(A)%求矩阵A的秩
1.2.12特殊运算
1.矩阵对角线元素的抽取
函数diag
格式X=diag(v,k)%以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。
X=diag(v)%以v为主对角线元素,其余元素为0构成X。
v=diag(X,k)%抽取X的第k条对角线元素构成向量v。
k=0:
抽取主对角线元素;k>0:
抽取上方第k条对角线元素;k<0抽取下方第k条对角线元素。
v=diag(X)%抽取主对角线元素构成向量v。
例1-46
v=[123];
x=diag(v,-1)
A=[123;456;789]
v=diag(A,1)
2.上三角阵和下三角阵的抽取
函数tril%取下三角部分
格式L=tril(X)%抽取X的主对角线的下三角部分构成矩阵L
L=tril(X,k)%抽取X的第k条对角线的下三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。
函数triu%取上三角部分
格式U=triu(X)%抽取X的主对角线的上三角部分构成矩阵U
U=triu(X,k)%抽取X的第k条对角线的上三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。
例1-47
A=ones(4)%产生4阶全1阵
L=tril(A,1)%取下三角部分
L=
1100
1110
1111
1111
U=triu(A,-1)%取上三角部分
U=
1111
1111
0111
0011
4.矩阵的变向
(1)矩阵旋转
函数
格式B=rot90(A)%将矩阵A逆时针方向旋转90°
B=rot90(A,k)%将矩阵A逆时针方向旋转(k×90°),k可取正负整数。
例1-50
A=[123;456;789]
A=
123
456
789
Y1=rot90(A),Y2=rot90(A,-1)
Y1=%逆时针方向旋转
369
258
147
Y2=%顺时针方向旋转
741
852
963
(2)矩阵的左右翻转
函数fliplr
格式B=fliplr(A)%将矩阵A左右翻转
(3)矩阵的上下翻转
函数flipud
格式B=flipud(A)%将矩阵A上下翻转
例1-51
A=[123;456]
A=
123
456
B1=fliplr(A),B2=flipud(A)
B1=
321
654
B2=
456
123
(4)按指定维数翻转矩阵
函数flipdim
格式B=flipdim(A,dim)%flipdim(A,1)=flipud(A),并且flipdim(A,2)=fliplr(A)。
例1-52
A=[123;456]
A=
123
456
B1=flipdim(A,1),B2=flipdim(A,2)
B1=
456
123
B2=
321
654
6.矩阵元素的数据变换
对于小数构成的矩阵A来说,如果我们想对它取整数,有以下几种方法:
(1)按-∞方向取整
函数floor
格式floor(A)%将A中元素按-∞方向取整,即取不足整数。
(2)按+∞方向取整
函数ceil
格式ceil(A)%将A中元素按+∞方向取整,即取过剩整数。
(3)四舍五入取整
函数round
格式round(A)%将A中元素按最近的整数取整,即四舍五入取整。
(4)按离0近的方向取整
函数fix
格式fix(A)%将A中元素按离0近的方向取整
例1-55
A=-1.5+4*rand(3)
A=
2.30050.44390.3259
-0.57542.0652-1.4260
0.92741.54841.7856
B1=floor(A),B2=ceil(A),B3=round(A),B4=fix(A)
B1=
200
-12-2
011
B2=
311
03-1
122
B3=
200
-12-1
122
B4=
200
02-1
011
(5)矩阵的有理数形式
函数rat
格式[n,d]=rat(A)%将A表示为两个整数矩阵相除,即A=n./d。
例1-56对于上例中的A
[n,d]=rat(A)
n=
44495131
-2252059-472
166481491
d=
193214402
391997331
17931835
1.3矩阵分解
1.3.3QR分解
将矩阵A分解成一个正交矩阵与一个上三角矩阵的乘积。
函数qr
格式[Q,R]=qr(A)%求得正交矩阵Q和上三角阵R,Q和R满足A=QR。
[Q,R,E]=qr(A)%求得正交矩阵Q和上三角阵R,E为单位矩阵的变换形式,R的对角线元素按大小降序排列,满足AE=QR。
[Q,R]=qr(A,0)%产生矩阵A的“经济大小”分解
[Q,R,E]=qr(A,0)%E的作用是使得R的对角线元素降序,且Q*R=A(:
E)。
R=qr(A)%稀疏矩阵A的分解,只产生一个上三角阵R,满足R'*R=A'*A,这种方法计算A'*A时减少了内在数字信息的损耗。
[C,R]=qr(A,b)%用于稀疏最小二乘问题:
minimize||Ax-b||的两步解:
[C,R]=qr(A,b),x=R\c。
R=qr(A,0)%针对稀疏矩阵A的经济型分解
[C,R]=qr(A,b,0)%针对稀疏最小二乘问题的经济型分解
例1-68
A=[123;456;789;101112];
[Q,R]=qr(A)
Q=
-0.0776-0.83310.54440.0605
-0.3105-0.4512-0.77090.3251
-0.5433-0.0694-0.0913-0.8317
-0.77620.31240.31780.4461
R=
-12.8841-14.5916-16.2992
0-1.0413-2.0826
000.0000
000
函数qrdelete
格式[Q,R]=qrdelete(Q,R,j)%返回将矩阵A的第j列移去后的新矩阵的qr分解
例1-69
A=[-149-50-154;537180546;-27-9-25];
[Q,R]=qr(A)
Q=
-0.2671-0.70880.6529
0.9625-0.16210.2176
-0.04840.68650.7255
R=
557.9418187.0321567.8424
00.07413.4577
000.1451
[Q,R]=qrdelete(Q,R,3)%将A的第3列去掉后进行qr分解。
Q=
-0.2671-0.70880.6529
0.9625-0.16210.2176
-0.04840.68650.7255
R=
557.9418187.0321
00.0741
00
1.3.4Schur分解
函数schur
格式T=schur(A)%产生schur矩阵T,即T的主对角线元素为特征值的三角阵。
T=schur(A,flag)%若A有复特征根,则flag='complex',否则flag='real'。
[U,T]=schur(A,…)%返回正交矩阵U和schur矩阵T,满足A=U*T*U'。
例1-71
H=[-149-50-154;537180546;-27-9-25];
[U,T]=schur(H)
U=
0.3162-0.65290.6882
-0.9487-0.21760.2294
0.00000.72550.6882
T=
1.0000-7.1119-815.8706
02.0000-55.0236
003.0000
1.3.5特征值分解
函数eig
格式d=eig(A)%求矩阵A的特征值d,以向量形式存放d。
d=eig(A,B)%A、B为方阵,求广义特征值d,以向量形式存放d。
[V,D]=eig(A)%计算A的特征值对角阵D和特征向量V,使AV=VD成立。
[V,D]=eig(A,'nobalance')%当矩阵A中有与截断误差数量级相差不远的值时,该指令可能更精确。
'nobalance'起误差调节作用。
[V,D]=eig(A,B)%计算广义特征值向量阵V和广义特征值阵D,满足AV=BVD。
[V,D]=eig(A,B,flag)%由flag指定算法计算特征值D和特征向量V,flag的可能值为:
'chol'表示对B使用Cholesky分解算法,这里A为对称Hermitian矩阵,B为正定阵。
'qz'表示使用QZ算法,这里A、B为非对称或非Hermitian矩阵。
说明一般特征值问题是求解方程:
解的问题。
广义特征值问题是求方程:
解的问题。
1.4线性方程的组的求解
我们将线性方程的求解分为两类:
一类是方程组求唯一解或求特解,另一类是方程组求无穷解即通解。
可以通过系数矩阵的秩来判断:
若系数矩阵的秩r=n(n为方程组中未知变量的个数),则有唯一解;
若系数矩阵的秩r 线性方程组的无穷解=对应齐次方程组的通解+非齐次方程组的一个特解;其特解的求法属于解的第一类问题,通解部分属第二类问题。 1.4.1求线性方程组的唯一解或特解(第一类问题) 这类问题的求法分为两类: 一类主要用于解低阶稠密矩阵——直接法;另一类是解大型稀疏矩阵——迭代法。 1.利用矩阵除法求线性方程组的特解(或一个解) 方程: AX=b 解法: X=A\b 例1-76求方程组 的解。 解: A=[56000 15600 0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1章 矩阵及其基本运算xxf2数模 矩阵 及其 基本 运算 xxf2 数模