您的位置:首页 > 编程语言 > MATLAB

MATLAB 矩阵处理

2018-03-03 22:46 501 查看
科学计算与MATLAB语言

刘卫国蔡旭晖吕格莉何小贤

特殊矩阵

相关函数

zeros()
:产生全0矩阵,即零矩阵

ones()
:产生全1矩阵,即幺矩阵

eye()
:产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵

rand()
:产生,(0,1),(0,1)区间均匀分布的随机矩阵

randn()
:产生均值为0,方差为1的标准正态分布随机矩阵

一些技巧

rand()
产生随机数 x;
fix(a+(b-a)*x)
产生,(a,b),(a,b)区间上均匀分布的随机整数

randn()
产生随机数 y;μ+σyμ+σy 得到均值为μμ、方差为σ2σ2的随机数

特定用途的矩阵

魔方矩阵(幻方) – Magic Square

n>2n>2 时有很多不同的 n 阶魔方阵,MATLAB函数
magic(n)
产生一个特定的魔方阵。

nn阶魔方阵每行每列元素的和为(1+2+3+…+n2)/n=(n+n3)/2(1+2+3+…+n2)/n=(n+n3)/2



范德蒙(Vandermonde)矩阵
vander()


最后一列全为1,即向量v各元素的零次方

倒数第二列为指定的向量v, 即向量v各元素的一次方

其他各列是其后列与倒数第二列的点乘积



希尔伯特(Hilbert)矩阵
hilb()


元素H(i,j)=1/(i+j−1)H(i,j)=1/(i+j−1)

希尔伯特矩阵是著名的病态矩阵,即任何一个元素发生较小的变动,整个矩阵的值和逆矩阵都会发生很大变化。病态程度和矩阵的阶数相关,随着阶数的增加病态越严重。



伴随矩阵
compan()


矩阵A


多项式 p(x)=anxn+an−1xn−1+…+a1x+a0p(x)=anxn+an−1xn−1+…+a1x+a0,则其伴随矩阵为 A,A 的特征多项式为 p(x)p(x)

伴随矩阵的特征值等于多项式方程的根

帕斯卡(Pascal)矩阵

即杨辉三角

帕斯卡矩阵的逆矩阵的所有元素也为整数



矩阵变换

提取矩阵元素

对角阵:只有对角线上有非零元素的矩阵。

数量矩阵:主对角线上的元素相等的对角矩阵。

矩阵的对角线: 与主对角线平行,往右上为第1条、第2条、 一直到第n条对角线,往左下为第-1条、 -2条、 一直到-n条对角线。主对角线为第0条对角线

diag(A,k)
:提取矩阵 A 第 k 条对角线的元素,产生一个列向量(k 默认为0)

diag(V,k)
:以向量 V 为第 k 条对角线元素,产生对角矩阵(k 默认为0)

改变元素位置

转置运算符是小数点后面接单引号
.'


共轭转置的运算符是单引号
'
,在转置的基础上取每个数的复共轭

如果矩阵的元素是实数,那么转置和共轭转置的结果是一样的

triu(A,k)
:提取矩阵 A 的第 k 条对角线及以上的元素,其余元素为0,产生一个与原矩阵同型的矩阵(k 默认为0)

tril(A,k)
:提取矩阵 A 的第 k 条对角线及以下的元素(k 默认为0)

rot90(A,k)
:将矩阵A逆时针方向旋转 º90º∗kº90º∗k(k 默认为1)

fliplr(A)
:对矩阵A实施左右翻转(镜面对称)

flipud(A)
:对矩阵A实施上下翻转

矩阵求逆

inv(A)
:求方阵A的逆矩阵

A\eye(n)
:n 为 A 的阶

eye(n)/A
:n 为 A 的阶

矩阵求值

det(A)
:求方阵A所对应的行列式的值

rank(A)
:求矩阵A的秩

trace(A)
:求矩阵A的迹(矩阵的对角线元素之和,也等于矩阵的特征值之和)

向量的范数

向量1—范数:向量元素的绝对值之和。

norm(V,1)


向量2—范数:向量元素平方和的平方根。

norm(V)
norm(V,2)


向量∞—范数:所有向量元素绝对值中的最大值。

norm(V,inf)


矩阵的范数

矩阵A的1—范数:所有矩阵列元素绝对值之和的最大值

矩阵A的2—范数:矩阵A的最大特征值的平方根

矩阵A的∞—范数:所有矩阵行元素绝对值之和的最大值

调用形式与向量相同

矩阵的条件数

矩阵A的条件数等于A的范数与A的逆矩阵的范数的乘积

条件数越接近于1,矩阵的性能越好,反之,矩阵的性能越差

cond(A,1)
:计算A的1—范数下的条件数。

cond(A)
cond(A,2)
:计算A的2—范数数下的条件数

cond(A,inf)
:计算A的∞—范数下的条件数

矩阵的特征值与特征向量

E=eig(A)
:求矩阵A的全部特征值,构成向量E

[X,D]=eig(A)
:求矩阵A的全部特征值,构成对角阵D, 并产生矩阵X, X各列是相应的特征向量

稀疏矩阵

矩阵的存储方式

完全存储方式: 将矩阵的全部元素按列存储

稀疏存储方式: 只存储矩阵的非零元素的值及其位置,即行号和

列号

A=sparse(S)
: 将矩阵S转化为稀疏存储方式的矩阵A。

S=full(A)
: 将矩阵A转化为完全存储方式的矩阵S

稀疏矩阵的生成

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

sparse(u,v,S)
:其中u、 v、 S是3个等长的向量。S是要建立的稀

疏存储矩阵的非零元素,
u(i)
v(i)
分别是
S(i)
的行和列下标

使用
spconvert()
直接建立稀疏存储矩阵,其调用格式为
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列

speye(m,n)
返回一个m×n的稀疏存储单位矩阵

带状稀疏矩阵

是一种具有规则结构的稀疏矩阵,其所有非零元素集中在对角线上(不只是主对角线)

[B,d]=spdiags(A)
:从带状稀疏矩阵A中提取全部非零对角线元素赋给矩阵B及其这些非零对角线的位置向量d

A=spdiags(B,d,m,n)
:产生带状稀疏矩阵的稀疏存储矩阵A, 其中m、 n为原带状稀疏矩阵的行数与列数,矩阵B的第i列即为原带状稀疏矩阵的第i条非零对角线, 向量d为原带状稀疏矩阵所有非零对角线的位置

应用举例





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: