专题二 MATLAB矩阵处理

专题二 MATLAB矩阵处理

文章目录

  • 专题二 MATLAB矩阵处理
  • 一、特殊矩阵
    • 1、通用的特殊矩阵
    • 2、用于专门学科的特殊矩阵
      • (1)魔方矩阵(Magic Square)
      • (2)范德蒙矩阵
      • (3)希尔伯特矩阵
      • (4)伴随矩阵
      • (5) 帕斯卡矩阵
  • 二、矩阵变换
    • 1.对角阵
      • (1)提取矩阵的对角线元素
      • (2)构造对角矩阵
    • 2、三角阵
      • (1)上三角阵
      • (2)下三角阵
    • 3、矩阵的转置
    • 4、矩阵的旋转
    • 5、矩阵的翻转
    • 6、矩阵的逆
  • 三、矩阵求值
    • 1、方阵的行列式
    • 2、矩阵的秩
    • 3、矩阵的迹
    • 4、向量和矩阵的范数
      • (1)向量的3种常见范数
      • (2)矩阵的范数
      • (3)矩阵的条件数
  • 四、矩阵的特征值和特征向量
    • 1、求矩阵的特征值和特征向量
    • 2、矩阵特征值的几何意义
  • 五、稀疏矩阵
    • 1、矩阵的存储方式
    • 2、稀疏存储方式的产生
      • (1)完全存储方式和稀疏存储方式之间的转化
      • (2)直接建立稀疏存储矩阵
      • (3)带状稀疏矩阵的稀疏存储
      • (4)单位矩阵的稀疏存储
    • 3、稀疏矩阵应用举例
  • 总结


一、特殊矩阵

1、通用的特殊矩阵

(1)-zeros函数:产生全为0的矩阵,即零矩阵
-ones函数:产生全为1的矩阵,及幺矩阵
-eye函数:产生对角线全为1的矩阵,当矩阵是方阵时,得到一个单位矩阵
-rand函数:产生(0,1)区间均匀分布的随机矩阵
-randn函数:产生均值为0,方差为1的标准正态分布随机矩阵
(2)以上函数的调用格式相似,以zeros函数为例子:
-zeros(m):产生m * m的零矩阵
-zeros(m,n):产生m * n的零矩阵
-zeros(size(A)):产生与矩阵A同样大小的零矩阵
(3)若要产生n阶矩阵,且矩阵的元素均在区间[a,b]上:
-fix(a+(b-a+1)*rand(n))
专题二 MATLAB矩阵处理_第1张图片
(4)若要产生n阶矩阵,且矩阵是均值为μ,方差为σ²的正态分布:
-μ+σ * randn(n)
专题二 MATLAB矩阵处理_第2张图片

2、用于专门学科的特殊矩阵

(1)魔方矩阵(Magic Square)

n阶魔方矩阵由1,2,3,……,n²共n²个整数组成,且每行、每列及主副对角线上各n个元素之和都相等。
n阶魔方矩阵每行每列元素的和为(1+2+3+……+n²)/n=(n+n^3)/2
magic()函数可以产生一个特定的魔方阵

专题二 MATLAB矩阵处理_第3张图片

(2)范德蒙矩阵

vander(V)函数:生成以向量V为基础的范德蒙矩阵
专题二 MATLAB矩阵处理_第4张图片
专题二 MATLAB矩阵处理_第5张图片

(3)希尔伯特矩阵

hilb(n)函数:生成n阶希尔伯特矩阵
专题二 MATLAB矩阵处理_第6张图片
专题二 MATLAB矩阵处理_第7张图片
希尔伯特矩阵是高度病态(即,任何一个元素发生一点变动,整个矩阵的行列式的值和逆矩阵都会发生巨大变化),病态程度和阶数相关,阶数越大,病态越严重。

(4)伴随矩阵

compan§函数:生成伴随矩阵,其中p是一个多项式的系数向量,高次幂系数在前,低次幂系数在后。
专题二 MATLAB矩阵处理_第8张图片
专题二 MATLAB矩阵处理_第9张图片

(5) 帕斯卡矩阵

根据二项式定理,(x+y)^n展开后的系数随着n的增大组成一个三角形表,即杨辉三角形。
把二项式系数依次填写在矩阵的左侧对角线上,然后提取左侧的n行n列元素,即为n阶帕斯卡矩阵。故P(i,j)=P(i,j-1)+P(i-1,j),且P(1,j)=1,P(i,1)=1
pascal(n)函数:生成一个n阶帕斯卡矩阵
专题二 MATLAB矩阵处理_第10张图片
专题二 MATLAB矩阵处理_第11张图片

二、矩阵变换

1.对角阵

对角矩阵:只有对角线上有非零元素的矩阵
数量矩阵:对角线上的元素相等的对角矩阵
单位矩阵:对角线上的元素都为1的对角矩阵

(1)提取矩阵的对角线元素

diag(A):提取矩阵A主对角线元素,产生一个列向量
diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量
专题二 MATLAB矩阵处理_第12张图片
专题二 MATLAB矩阵处理_第13张图片

(2)构造对角矩阵

diag(V):以向量V为主对角线元素,产生对角矩阵
diag(V,k):以向量V为第k条主对角线元素,产生对角矩阵
专题二 MATLAB矩阵处理_第14张图片

2、三角阵

(1)上三角阵

上三角阵:矩阵的对角线以下的元素全为零的矩阵
triu(A):提取矩阵A的主对角线及以上的元素
triu(A,k):提取矩阵A的第k条对角线及以上的元素
专题二 MATLAB矩阵处理_第15张图片

(2)下三角阵

下三角阵:矩阵的对角线以上的元素全为零的矩阵
tril(A):提取矩阵A的主对角线及以下的元素
tril(A,k):提取矩阵A的第k条对角线及以下的元素
专题二 MATLAB矩阵处理_第16张图片

3、矩阵的转置

转置运算符是小数点后接单引号,即 .’
共轭转置运算符是单引号,即 ’
专题二 MATLAB矩阵处理_第17张图片

4、矩阵的旋转

rot90(A,k):将矩阵A逆时针方向旋转90°的k倍,当k为1时可省略,当k为负数时表示顺时针旋转。
专题二 MATLAB矩阵处理_第18张图片

5、矩阵的翻转

矩阵左右翻转:是将矩阵的第n列和倒数第n列调换
fliplr(A):对矩阵A实施左右翻转
矩阵上下翻转:是将矩阵的第n行和倒数第n行调换
flipud(A):对矩阵A实施上下翻转
例子:证明魔方矩阵的主对角线、副对角线元素之和相等
专题二 MATLAB矩阵处理_第19张图片

6、矩阵的逆

inv(A):求矩阵A的逆
例子:求解线性方程组:
x+2y+3z=5
x+4y+9z=-2
x+8y+27z=6
专题二 MATLAB矩阵处理_第20张图片

三、矩阵求值

1、方阵的行列式

det(A):表示求矩阵A对应行列式的值

2、矩阵的秩

rank(A):表示求矩阵A的秩

3、矩阵的迹

trace(A):表示求矩阵A的迹
(或者提取矩阵A的主对角线元素再求和:sum(diag(A)))

4、向量和矩阵的范数

矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度

(1)向量的3种常见范数

  • 向量1-范数:向量元素的绝对值之和。MATLAB中,用函数norm(V,1)来计算。
    在这里插入图片描述
  • 向量2-范数:向量元素绝对值的平方和的平方根。MATLAB中,用函数norm(V,2)或者norm(V)来计算。在这里插入图片描述
    -向量∞-范数:所有向量元素绝对值中的最大值。MATLAB中,用函数norm(A,inf)来计算。
    在这里插入图片描述

(2)矩阵的范数

  • 矩阵1-范数:矩阵列元素绝对值之和的最大值。MATLAB中,用函数norm(A,1)来计算。
    在这里插入图片描述
  • 向量2-范数:A’A矩阵的最大特征值的平方根。MATLAB中,用函数norm(A,2)或者norm(A)来计算。
    在这里插入图片描述
    -向量∞-范数:所有矩阵行元素绝对值之和的最大值。MATLAB中,用函数norm(A,inf)来计算。
    在这里插入图片描述

(3)矩阵的条件数

矩阵的条件数:是描述矩阵性能的一个参数,矩阵A的条件数等于A的范数于A的逆矩阵的范数的乘积。
矩阵的条件数越接近1,矩阵的性能越好。反之则越差。所谓性能,即矩阵的稳定性。

  • cond(A,1):计算矩阵A的1-范数下的条件数
  • cond(A)或cond(A,2):计算矩阵A的-范数下的条件数
  • cond(A,inf):计算矩阵A的∞-范数下的条件数
    例子:求2~10阶希尔伯特矩阵的条件数
    专题二 MATLAB矩阵处理_第21张图片
    可见当阶数越大,希尔伯特矩阵的条件数越大,因此其性能越差。

四、矩阵的特征值和特征向量

1、求矩阵的特征值和特征向量

  • E=eig(A)函数:求矩阵A的全部特征值,构成向量E
  • [X,D]=eig(A)函数:求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量。
    专题二 MATLAB矩阵处理_第22张图片

2、矩阵特征值的几何意义

设矩阵A的特征值为λ,对应的特征向量为x。y=Ax=λx,由此可见,向量x经由矩阵A变换得到y,等同于向量x沿着原来方向伸缩λ倍。

例子:已知大写字母M的各结点坐标如表所示:

x 0 0.5 0.5 3 5.5 5.5 6 6 3 0
y 0 0 6 0 6 0 0 8 1 8

(1)绘制M图
(2)用矩阵A=[1,0.5;0,1],对M的结点坐标进行变换,并绘制图像
专题二 MATLAB矩阵处理_第23张图片
专题二 MATLAB矩阵处理_第24张图片
可见:M原先是正体,而后变成斜体。因此,在构建字库时,不必单独创建斜体字库,而只需对正体字库进行适当的线性变换即可,这样可以大大节省存储空间。

五、稀疏矩阵

稀疏矩阵:零元素个数大于非零元素个数的矩阵。

1、矩阵的存储方式

  • 完全存储方式:将矩阵的全部元素按列存储
  • 稀疏存储方式:只存储矩阵的非零元素的值及其位置,即行号和列号。
    当稀疏矩阵很大时,采用稀疏存储方式,可以极大的减少存储空间。

2、稀疏存储方式的产生

(1)完全存储方式和稀疏存储方式之间的转化

  • A=sparse(B):将矩阵B转化为稀疏存储方式的矩阵A
  • B=full(A):将矩阵A转化为完全存储方式的矩阵B
    专题二 MATLAB矩阵处理_第25张图片

(2)直接建立稀疏存储矩阵

  • sparse(m,n):生成一个m*n的所有元素都是零的稀疏矩阵

  • sparse(u,v,S):其中u,v,S是3个等长的向量。S是要建立的稀疏存储矩阵的非零元素,u(i),v(i)分别是S(i)的行和列下标。
    专题二 MATLAB矩阵处理_第26张图片

  • B=spconvert(A):直接建立稀疏存储矩阵。其中A为一个m* 3或m*4的矩阵,每行表示一个非零元素,m是非零元素的个数。
    A(i,1)表示第i个非零元素所在的行
    A(i,2)表示第i个非零元素所在的列
    A(i,3)表示第i个非零元素值的实部
    A(i,4)表示第i个非零元素值的虚部
    若矩阵的全部元素都为实数,则无需第4列
    专题二 MATLAB矩阵处理_第27张图片

(3)带状稀疏矩阵的稀疏存储

稀疏矩阵有两种基本类型:无规则结构的稀疏矩阵与有规则结构的稀疏矩阵。
带状稀疏矩阵是指所有非零元素集中在对角线上的矩阵。

  • [B,d]=spdiags(A):从带状稀疏矩阵A中提取全部非零对角线元素赋给矩阵B及其这些非零对角线的位置向量d。
    r=min(m,n),若非零对角线上元素个数等于r,则取全部元素。否则,应该用零补足。
    (补零原则:若行数<列数,即m0时在后面补。若行数≥列数,即m≥n,则d<0在后面补0,d>0时在前面补。
    专题二 MATLAB矩阵处理_第28张图片
    专题二 MATLAB矩阵处理_第29张图片

  • A=spdiags(B,d,m,n):产生带状稀疏矩阵的稀疏存储矩阵A,其中m,n为原带状稀疏矩阵的行数与列数,矩阵B的第i列即为原带状稀疏矩的第i条非零对角线,向量d为原带状稀疏矩阵所有非零对角线的位置
    专题二 MATLAB矩阵处理_第30张图片

(4)单位矩阵的稀疏存储

speye(m,n):返回一个m*n的稀疏存储单位矩阵。
专题二 MATLAB矩阵处理_第31张图片

3、稀疏矩阵应用举例

专题二 MATLAB矩阵处理_第32张图片
专题二 MATLAB矩阵处理_第33张图片

总结

专题二 MATLAB矩阵处理_第34张图片

你可能感兴趣的:(MATLAB语言,matlab)