Matlab专题二

一、特殊矩阵

1、 通用类型特殊矩阵

zeros 函数:产生全0矩阵,即零矩阵
ones 函数:产生全1矩阵,即么矩阵。
eye  函数:产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵。
rand 函数:产生(0,1)区间均匀分布的随机矩阵。
randn 函数:产生均值为0,方差为1的标准正态分布随机矩阵。

zeros函数的调用格式:

zeros(m):产生m×m零矩阵。

zeros(m,n):产生m×n零矩阵。

zeros(size(A)):产生与矩阵A同样大小的零矩阵。

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

 魔方矩阵——Magic Square (每一行、每一列、每一斜行和都是15)

>> M = magic(3) %产生三阶魔方阵%

M =

     8     1     6
     3     5     7
     4     9     2


%产生八阶矩阵,并求和%

>> M = magic(8); % magic(n) 产生n阶魔方阵 %
>> sum(M(1,:))

ans =

   260

>> sum(M(:,3))

ans =

   260

范德蒙矩阵

% 产生范德蒙矩阵的函数 vander()  %
>> A = vander(1:5)

A =

     1     1     1     1     1
    16     8     4     2     1
    81    27     9     3     1
   256    64    16     4     1
   625   125    25     5     1

希尔伯特矩阵

>> 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     

伴随矩阵

例如:生成多项式x^{3}-2x^{2}-5x+6的伴随矩阵。

>> p = [1,-2,-5,6];
>> A = compan(p)

A =

       2              5             -6       
       1              0              0       
       0              1              0       

 帕斯卡矩阵

>> n = 5;
>> pascal(n)

ans =

       1              1              1              1              1       
       1              2              3              4              5       
       1              3              6             10             15       
       1              4             10             20             35       
       1              5             15             35             70       

二、矩阵变换

1、对角阵

 提取矩阵的对角线元素(diag 函数的对象是一个矩阵)

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

构造对角矩阵(diag 函数的对象是一个向量)

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

2、三角阵

 上三角阵

tri(A):提取矩阵A的主对角线及以上的元素。
triu(A,k):提取矩阵A的第k条对角线及以上的元素。

下三角阵(用法同上)

tril(A):

tril(A,k):

3、矩阵的转置

 转置运算符即小数点后接单引号 (.')

共轭转置,其运算符是单引号(‘),它在转置的基础上还要取每个数的复共轭。

>> A = [1-2i,3+4i;5+4i,6-9i]

A =

   1.0000 - 2.0000i   3.0000 + 4.0000i
   5.0000 + 4.0000i   6.0000 - 9.0000i

>> A'

ans =

   1.0000 + 2.0000i   5.0000 - 4.0000i
   3.0000 - 4.0000i   6.0000 + 9.0000i

>> A.'

ans =

   1.0000 - 2.0000i   5.0000 + 4.0000i
   3.0000 + 4.0000i   6.0000 - 9.0000i

4、矩阵的旋转

 矩阵旋转函数:rot(A)

>> A = [1,3,2;-3,2,1;4,1,2]

A =

     1     3     2
    -3     2     1
     4     1     2

>> rot90(A) % 矩阵逆时针旋转90度 %

ans =

     2     1     2
     3     2     1
     1    -3     4

>> rot90(A,2) % 矩阵逆时针旋转180度 %

ans =

     2     1     4
     1     2    -3
     2     3     1

5、矩阵翻转(第一列和最后一列调换,第二列和倒数第二列调换。以此类推)

 fliplr(A):对矩阵A实施左右翻转。

 flipud(A):对矩阵A实施上下翻转。(行与行之间的调换)

6、去矩阵的逆矩阵

 对于一个方阵A,如果存在一个与其相同的矩阵B,使得AB=BA=I(I为单位矩阵),则称B为A的逆矩阵,当然,A也是B的逆矩阵。

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

三、矩阵求值

1、矩阵的行列式值( det(A) 即:求矩阵A的行列式值 )

 把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就成为方阵对应的行列式的值。

A =

     1     3     2
    -3     2     1
     4     1     2

>> format rat
>> det(inv(A)) == 1/det(A)

ans =

  logical

   1

2、矩阵的秩( rank(A)即:求矩阵A的秩 )

 矩阵线性无关的行数或列数成为矩阵的秩。

例程:

% 求3-20阶魔方阵的秩 %
for n = 3:20
    r(n)=rank(magic(n));
end
bar(r)
grid on
axis([2,21,0,20])

3、矩阵的迹( trace(A):求矩阵A的迹 )


A =

       1              1              1              1       
       1              1              1              1       
       1              1              1              1       
       1              1              1              1       

>> sum(diag(A)) == trace(A)

ans =

  logical

   1

4、矩阵和向量的范数

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

5、矩阵的条件数(用于描述矩阵性能的一个参数)

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

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

cond(A,l):计算A的1一范数下的条件数。
cond(A) 或 cond(A,2):计算A的2一范数下的条件数。
cond(A, inf):计算A的一范数下的条件数。

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

 设A是n阶方阵,如果存在常数了λ和n维非零列向量x,使得等式Ax=λx成立,则称λ为A的特征值,x是对应特征值啊λ的特征向量。

 

函数调用格式有两种:
1、E=eig(A):求矩阵A的全部特征值,构成向量E。
2、[X,D]=eig(A):求矩阵A的全部特征值,构成对角阵D;井产生矩阵X,X各列是相应的特征向量。

   

五、稀疏矩阵(零元素的个数远远多于非零元素的个数矩阵)

稀疏矩阵有大量的零元素,在存储时,若将零元素也存储起来显然会造成大量的让费。

1、矩阵的存储方式

完全存储方式(即:将矩阵的元素按列存储)

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

2、稀疏存储方式的产生

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

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

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

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

sparse 函数的其他调用格式:

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

 sparse(u,v,S):其中u、v、S是3个等长的向量。S是要建立的稀疏存储矩阵的非零元素,u(i)、v(i)分别是S(i)的行和列下标。

spconvert(A):

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

稀疏矩阵有两种基本类型:无规则机构的稀疏矩阵 与有规则结构的稀疏矩阵。

带状稀疏矩阵是指所有非零元素都集中在对角线上的矩阵。

[B,d]= spdiags(A):从带状稀疏矩阵A中提取全部非零对角线元素给矩阵B及其这些非零对角线的位置向量d.
A= spdiags(B,d,m,n):产生带状稀疏矩阵的稀疏存储矩阵A,其中m、n为原帯状稀疏矩阵的行数与列数,矩阵B的第i列即为原带状稀疏矩阵的第条非零对角线,向量d为原带状稀疏矩阵所有非零对角线的位置。

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

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

3、稀疏矩阵的应用实例

kf1 = [1;1;2;1;0];
k0 = [2;4;6;6;1];
k1 = [0;3;1;4;2];
B = [kf1,k0,k1];
d = [-1;0;1];
A = spdiags(B,d,5,5)

B = full(A)
% 命令行输出结果 %
A =

   (1,1)        2
   (2,1)        1
   (1,2)        3
   (2,2)        4
   (3,2)        1
   (2,3)        1
   (3,3)        6
   (4,3)        2
   (3,4)        4
   (4,4)        6
   (5,4)        1
   (4,5)        2
   (5,5)        1


B =

     2     3     0     0     0
     1     4     1     0     0
     0     1     6     4     0
     0     0     2     6     2
     0     0     0     1     1

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值