当前位置:网站首页>MATLAB程序设计与应用 3.1 特殊矩阵
MATLAB程序设计与应用 3.1 特殊矩阵
2022-08-04 10:32:00 【Ding Jiaxiong】
MATLAB程序设计与应用
3. 第3章 MATLAB矩阵处理
正如 MATLAB 的名字——“矩阵实验室”的含义一样,MATLAB是由早期专门用于矩阵运算的科学计算软件发展而来的。矩阵是MATLAB最基本的数据形式,MATLAB 的大部分运算或命令都是在矩阵运算的意义下执行的,而且这种运算定义在复数域上。正因为如此,MATLAB 的矩阵运算功能非常丰富,许多含有矩阵运算的复杂计算问题,在MATLAB中很容易得到解决。
因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。
3.1 特殊矩阵
有一类具有特殊形式的矩阵称为特殊矩阵。常见的特殊矩阵有零矩阵、幺矩阵、单位矩阵等,这些特殊矩阵在应用中具有通用性;还有一类特殊矩阵在专门学科中得到应用,如有名的魔方矩阵、范德蒙(Vandermonde)矩阵、希尔伯特(Hilbert)矩阵等。MATLAB 提供了相应的函数,可以更方便地生成特殊矩阵。
3.1.1 通用的特殊矩阵
常用的产生特殊矩阵的函数:
- zeros:产生全0矩阵,即零矩阵。
- ones:产生全1矩阵,即幺矩阵。
- eye:产生单位矩阵。
- rand:产生(0,1)区间均匀分布的随机矩阵。
- randn:产生均值为0 , 方差为1的标准正态分布随机矩阵。
zeros(m):产生mxm零矩阵。
zeros(m,n):产生mxn零矩阵。当m = n 时,等同于zeros(m)。
zeros(size(A)):产生与矩阵A同样大小的零矩阵。
>> zeros(3)
ans =
0 0 0
0 0 0
0 0 0
>> A = [1,2,3;4,5,6];
>> zeros(size(A))
ans =
0 0 0
0 0 0
例子:建立随机矩阵。
- 在区间[20 , 50]内均匀分布的5阶随机矩阵
- 均值为0.6 , 方差为0.1的5阶正态分布随机矩阵。
产生(0,1)区间均匀分布随机矩阵使用 rand 函数,假设得到了一组满足(O,1)区间均匀分布的随机数x,则若想得到在任意[a,b]区间上均匀分布的随机数,只需用yi=a+(b-a)xi,计算即可。产生均值为0,方差为1的标准正态分布随机矩阵使用 randn 函数,假设已经得到了一组标准正态分布随机数xi,如果想更一般地得到均值为u,方差为σ ^2的随机数,可用yi=u+σxi,计算出来。
>> x = 20 + (50 - 20) * rand(5)
x =
44.4417 22.9262 24.7284 24.2566 39.6722
47.1738 28.3549 49.1178 32.6528 21.0714
23.8096 36.4064 48.7150 47.4721 45.4739
47.4013 48.7252 34.5613 43.7662 48.0198
38.9708 48.9467 44.0084 48.7848 40.3621
>> y = 0.6 + sqrt(0.1) * randn(5)
y =
0.9272 0.8809 1.0549 0.5677 0.5905
0.8299 0.2373 0.7028 0.5236 0.5479
0.5040 0.2620 0.3613 0.7009 0.7985
0.6929 0.3440 1.0333 0.6989 0.9457
0.3510 -0.3311 0.0588 0.3265 0.9508
3.1.2 用于专门学科的特殊矩阵
魔方矩阵
魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1、2、3、…、n2共n个整数组成,每行、每列及两条对角线上的元素和都等于n(n2+1)/2。MATLAB提供了函数magic(n),其功能是生成一个n阶魔方阵。
>> magic(3) ans = 8 1 6 3 5 7 4 9 2将[101 , 125]范围内的25个整数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。
一个5阶魔方矩阵的每行、每列及对角线的和均为65,对其每个元素都加100后,这些和变为565。
>> M = 100 + magic(5) M = 117 124 101 108 115 123 105 107 114 116 104 106 113 120 122 110 112 119 121 103 111 118 125 102 109范德蒙矩阵
范德蒙(Vandermonde)矩阵的一般形式为:

范德蒙矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后一列与倒数第二列对应元素的乘积。如:

可以用一个指定向量生成一个范德蒙矩阵。在 MATLAB中,函数vander(V)生成以向量V为基础向量的范德蒙矩阵。
>> A = vander([1;2;3;5]) A = 1 1 1 1 8 4 2 1 27 9 3 1 125 25 5 1希尔伯特矩阵
希尔伯特(Hilbert)矩阵是一种数学变换矩阵,它的每个元素

在MATLAB中,生成希尔伯特矩阵的函数是hilb(n)。
希尔伯特矩阵是一个高度病态的矩阵,即任何一个元素发生微小变动,整个矩阵的值和逆矩阵都会发生很大变化,病态程度和阶数相关。在MATLAB中,有一个专门求n阶希尔伯特矩阵的逆矩阵的函数invhilb(n)。
例子:求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 >> H = invhilb(4) H = 16 -120 240 -140 -120 1200 -2700 1680 240 -2700 6480 -4200 -140 1680 -4200 2800 >> format %恢复默认输出格式托普利兹矩阵
托普利兹(Toeplitz)矩阵除第一行和第一列外,其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数是toeplitz(x,y),它生成一个以x为第一列,y为第一行的托普利兹矩阵。这里x、 y均为向量,两者不必等长。toeplitz(x)用向量x生成一个对称的托普利兹矩阵。
>> T = toeplitz(1:6) T = 1 2 3 4 5 6 2 1 2 3 4 5 3 2 1 2 3 4 4 3 2 1 2 3 5 4 3 2 1 2 6 5 4 3 2 1伴随矩阵
多项式

,则称矩阵

为多项式p(x)的伴随矩阵,p(x)称为A的特征多项式,方程p(x) = 0的根称为A的特征值。
MATLAB生成伴随矩阵的函数是compan§,其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。例如,为了求多项式x^3-7x+6的伴随矩阵:
>> p = [1,0,-7,6]; >> compan(p) ans = 0 7 -6 1 0 0 0 1 0帕斯卡矩阵
二次项(x+y)^n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。帕斯卡矩阵的第一行元素和第一列元素都为1,其余位置的元素是该元素的左边元素与上一行对应位置元素相加,即 A(i,j)=A(i,j-1)+A(i-1,j)。函数 pascal(n)生成一个n阶帕斯卡矩阵。
例子:求(x + y) ^ 5的展开式
>> pascal(6)
ans =
1 1 1 1 1 1
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即为展开式的系数。
1
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即为展开式的系数。
边栏推荐
猜你喜欢
随机推荐
华为云安全云脑,让企业云化运营更放心
RL78开发环境
HCIP 交换实验
2022-08-03 第六小组 瞒春 学习笔记
iMeta | Baidu certification is completed, search "iMeta" directly to the publisher's homepage and submission link
AWS Lambda related concepts and implementation approach
Multimedia and Internet of Things technology make the version "live" 129 vinyl records "Centennial Voice"
safe-point(safepoint 安全点) 和 safe-region(安全区域)「建议收藏」
Mobile open source low code tools beeware and kivy
高级转录组分析和R数据可视化火热报名中(2022.10)
LeetCode 54. 螺旋矩阵 蛇形矩阵式输出字符串
什么是终端特权管理
冰蝎逆向初探
无线Mesh自组网方案,CV5200无线模组应用,支持高清数据远距离传输
什么是元宇宙?
开源一夏|ArkUI如何自定义弹窗(eTS)
图文手把手教程--ESP32 一键配网(Smartconfig、Airkiss)
Jenkins使用手册(1) —— 软件安装
Business collocations
EastWave应用:自动计算光子晶体透反率









