第3章 MATLAB矩阵分析与处理.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB语言 及应用
电气学院 祝振敏
第3章 MATLAB矩阵分析与处理
3.1 特殊矩阵 3.1.1 通用的特殊矩阵 常用的产生通用特殊矩阵的函数有: zeros:产生全0矩阵(零矩阵)。 ones:产生全1矩阵(幺矩阵)。 eye:产生单位矩阵。 rand:产生0~1间均匀分布的随机矩阵 randn:产生均值为0,方差为1的标准正态分布 随机矩阵。 调用格式: zeros(m): 产生m*m的零矩阵。 zeros(m,n):产生m*n的零矩阵。
例3.1 分别建立3×3、3×2和与矩阵A同样大小 的幺矩阵。 (1) 建立一个3×3幺矩阵。 ones(3) (2) 建立一个3×2幺矩阵。 ones(3,2) (3) 设A为2×3矩阵,建立一个与矩阵A同样大 小的幺矩阵。 A=[1 2 3;4 5 6]; %产生2×3矩阵A zeros(size(A)) %产生与矩阵A同维的零矩
rand(m,n):生成m*n维0~1之间均匀分布的 随机数矩阵。 randn(m,):生成m*n维均值为0,方差为1正 态分布的随机数矩阵。 a=rand(1000,1) b=randn(1000,1) subplot(2,1,1) hist(a) subplot(2,1,2) hist(b)
3.1.2
用于专门学科的特殊矩阵
(1) 魔方矩阵 魔方矩阵有一个有趣的性质,其每行、每 列及两条对角线上的元素和都相等。对于n阶 魔方阵,其元素由1,2,3,…,n2共n2个整数组成。 MATLAB提供了求魔方矩阵的函数: magic(n) 其功能是生成一个n阶魔方阵。
(2) 范得蒙德矩阵
范得蒙德(Vandermonde)矩阵最后一列全为 1,倒数第二列为一个指定的向量,其他各列 是其后列与倒数第二列的点乘积。 x3 x2 x1 x 0
例3.6 先建立5×5矩阵A,然后将A的第一行元素乘 以1,第二行乘以2,…,第五行乘以5。
A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;... 11,18,25,2,19]; D=diag(1:5); D*A %用D左乘A,对A的每行乘以一个指定常数
1 2 3 4 5
17 0 1 0 15 23 5 7 14 16 4 0 13 0 22 10 12 19 21 3 11 18 25 2 19
2.三角阵
三角阵分为上三角阵和下三角阵。 上三角阵(upper triangular):即矩阵的对 角线以下的元素全为0的一种矩阵。 triu(A) 下三角阵(lower triangular):则是对角线 以上的元素全为0的一种矩阵。 tril(A)
1 2 3 4 5 6
1 3 6 10 15 21
பைடு நூலகம்
1 4 10 20 35 56
1 5 15 35 70 126
1 6 21 56 126 252
矩阵次对角线上的元素1,5,10,10,5,1即为二 次项(x+y)5展开后的系数
3.2 矩阵结构变换
3.2.1 对角阵与三角阵 1.对角阵 (1) 提取矩阵的对角线元素 diag(A):用于提取矩阵A主对角线元素。 diag(A,k):提取第k条对角线的元素。 (2) 构造对角矩阵 设V为具有m个元素的向量,diag(V)将产 生一个m×m对角矩阵,其主对角线元素即为 向量V的元素。
1 1 8 4 A 27 9 125 25 1 2 3 5 1 函数vander(V)生成以向量 1 V为基础向量的范得蒙德矩阵。 1 例如,A=vander([1;2;3;5])即 可得到上述范得蒙矩阵。 1
(3) 希尔伯特矩阵
每个元素hrc=1/(r+c-1) 生成希尔伯特矩阵的函数是 hilb(n) 例3.4 求4阶希尔伯特矩阵及其逆矩阵。 format rat %以有理形式输出 H=hilb(4) H= 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 1/4 1/5 1/6 1/7
(5) 帕斯卡矩阵
二次项(x+y)n展开后的系数,随n的增大组 成一个三角形表,称为杨辉三角形。 由杨辉三角形表组成的矩阵称为帕斯卡 (Pascal)矩阵。 函数pascal(n)生成一个n阶帕斯卡矩阵。 例3.5 求(x+y)5的展开式。 输入命令: pascal(6)
杨辉三角形
ans = 1 1 1 1 1 1
希尔伯特矩阵是一个条件数很差的矩阵, 使用一般方法求逆会因为原始数据的微小扰动 而产生不可靠的计算结果。 MATLAB中,有一个专门求希尔伯特矩阵 的逆的函数: invhilb(n) 其功能是求n阶的希尔伯特矩阵的逆矩阵。
(4) 伴随矩阵(Companion matrix)
生成伴随矩阵的函数是 compan(p) 其中p是一个多项式的系数向量(降幂排 列)。例如,为了求多项式的x3-7x+6的伴随矩 阵,可使用命令: p=[1,0,-7,6]; A=compan(p) p(x)是矩阵A的特征多项式,A为p(x) 的伴随矩阵。 A的特征值即为p(x)=0的根。
例3.2 建立随机矩阵:
(1) 在区间[20,50]内均匀分布的5阶随机矩阵。 (2) 均值为0.6、方差为0.1的5阶正态分布随机矩阵。 命令如下: x=20+(50-20)*rand(5) y=0.6+sqrt(0.1)*randn(5)
产生m*n维[a,b]区间上均匀分布的随机数矩阵: y=a+(b-a)*rand(m,n) 产生m*n维,均值为,方差为2随机数矩阵: y= +sigma*randn(m,n)
A=[7,13,-28;2,-9,8;0,34,5] B=triu(A) C=tril(A) A= 7 13 -28 2 -9 8 0 34 5 B= 7 13 -28 0 -9 8 0 0 5 C= 7 0 0 2 -9 0 0 34 5
电气学院 祝振敏
第3章 MATLAB矩阵分析与处理
3.1 特殊矩阵 3.1.1 通用的特殊矩阵 常用的产生通用特殊矩阵的函数有: zeros:产生全0矩阵(零矩阵)。 ones:产生全1矩阵(幺矩阵)。 eye:产生单位矩阵。 rand:产生0~1间均匀分布的随机矩阵 randn:产生均值为0,方差为1的标准正态分布 随机矩阵。 调用格式: zeros(m): 产生m*m的零矩阵。 zeros(m,n):产生m*n的零矩阵。
例3.1 分别建立3×3、3×2和与矩阵A同样大小 的幺矩阵。 (1) 建立一个3×3幺矩阵。 ones(3) (2) 建立一个3×2幺矩阵。 ones(3,2) (3) 设A为2×3矩阵,建立一个与矩阵A同样大 小的幺矩阵。 A=[1 2 3;4 5 6]; %产生2×3矩阵A zeros(size(A)) %产生与矩阵A同维的零矩
rand(m,n):生成m*n维0~1之间均匀分布的 随机数矩阵。 randn(m,):生成m*n维均值为0,方差为1正 态分布的随机数矩阵。 a=rand(1000,1) b=randn(1000,1) subplot(2,1,1) hist(a) subplot(2,1,2) hist(b)
3.1.2
用于专门学科的特殊矩阵
(1) 魔方矩阵 魔方矩阵有一个有趣的性质,其每行、每 列及两条对角线上的元素和都相等。对于n阶 魔方阵,其元素由1,2,3,…,n2共n2个整数组成。 MATLAB提供了求魔方矩阵的函数: magic(n) 其功能是生成一个n阶魔方阵。
(2) 范得蒙德矩阵
范得蒙德(Vandermonde)矩阵最后一列全为 1,倒数第二列为一个指定的向量,其他各列 是其后列与倒数第二列的点乘积。 x3 x2 x1 x 0
例3.6 先建立5×5矩阵A,然后将A的第一行元素乘 以1,第二行乘以2,…,第五行乘以5。
A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;... 11,18,25,2,19]; D=diag(1:5); D*A %用D左乘A,对A的每行乘以一个指定常数
1 2 3 4 5
17 0 1 0 15 23 5 7 14 16 4 0 13 0 22 10 12 19 21 3 11 18 25 2 19
2.三角阵
三角阵分为上三角阵和下三角阵。 上三角阵(upper triangular):即矩阵的对 角线以下的元素全为0的一种矩阵。 triu(A) 下三角阵(lower triangular):则是对角线 以上的元素全为0的一种矩阵。 tril(A)
1 2 3 4 5 6
1 3 6 10 15 21
பைடு நூலகம்
1 4 10 20 35 56
1 5 15 35 70 126
1 6 21 56 126 252
矩阵次对角线上的元素1,5,10,10,5,1即为二 次项(x+y)5展开后的系数
3.2 矩阵结构变换
3.2.1 对角阵与三角阵 1.对角阵 (1) 提取矩阵的对角线元素 diag(A):用于提取矩阵A主对角线元素。 diag(A,k):提取第k条对角线的元素。 (2) 构造对角矩阵 设V为具有m个元素的向量,diag(V)将产 生一个m×m对角矩阵,其主对角线元素即为 向量V的元素。
1 1 8 4 A 27 9 125 25 1 2 3 5 1 函数vander(V)生成以向量 1 V为基础向量的范得蒙德矩阵。 1 例如,A=vander([1;2;3;5])即 可得到上述范得蒙矩阵。 1
(3) 希尔伯特矩阵
每个元素hrc=1/(r+c-1) 生成希尔伯特矩阵的函数是 hilb(n) 例3.4 求4阶希尔伯特矩阵及其逆矩阵。 format rat %以有理形式输出 H=hilb(4) H= 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 1/4 1/5 1/6 1/7
(5) 帕斯卡矩阵
二次项(x+y)n展开后的系数,随n的增大组 成一个三角形表,称为杨辉三角形。 由杨辉三角形表组成的矩阵称为帕斯卡 (Pascal)矩阵。 函数pascal(n)生成一个n阶帕斯卡矩阵。 例3.5 求(x+y)5的展开式。 输入命令: pascal(6)
杨辉三角形
ans = 1 1 1 1 1 1
希尔伯特矩阵是一个条件数很差的矩阵, 使用一般方法求逆会因为原始数据的微小扰动 而产生不可靠的计算结果。 MATLAB中,有一个专门求希尔伯特矩阵 的逆的函数: invhilb(n) 其功能是求n阶的希尔伯特矩阵的逆矩阵。
(4) 伴随矩阵(Companion matrix)
生成伴随矩阵的函数是 compan(p) 其中p是一个多项式的系数向量(降幂排 列)。例如,为了求多项式的x3-7x+6的伴随矩 阵,可使用命令: p=[1,0,-7,6]; A=compan(p) p(x)是矩阵A的特征多项式,A为p(x) 的伴随矩阵。 A的特征值即为p(x)=0的根。
例3.2 建立随机矩阵:
(1) 在区间[20,50]内均匀分布的5阶随机矩阵。 (2) 均值为0.6、方差为0.1的5阶正态分布随机矩阵。 命令如下: x=20+(50-20)*rand(5) y=0.6+sqrt(0.1)*randn(5)
产生m*n维[a,b]区间上均匀分布的随机数矩阵: y=a+(b-a)*rand(m,n) 产生m*n维,均值为,方差为2随机数矩阵: y= +sigma*randn(m,n)
A=[7,13,-28;2,-9,8;0,34,5] B=triu(A) C=tril(A) A= 7 13 -28 2 -9 8 0 34 5 B= 7 13 -28 0 -9 8 0 0 5 C= 7 0 0 2 -9 0 0 34 5