MATLAB特殊矩阵

目录

通用的特殊矩阵

用于专门学科的特殊矩阵

1、魔方矩阵

2、范德蒙德(Vandermonde)矩阵

3、希尔伯特(Hilbert)矩阵

4、托普利兹(Toeplitz)矩阵

5、伴随矩阵

6、帕斯卡(Pascal)矩阵


MATLAB是由早期专门用于矩阵运算的科学计算软件发展而来的。

有一类具有特殊形式的矩阵被称为特殊矩阵,这些特殊矩阵在应用中具有通用性,还有一类在专门学科中得到应用。

通用的特殊矩阵

产生通用特殊矩阵的函数有以下几个。

(1) zeros:产生全0矩阵,也就是零矩阵

(2) ones:产生全1矩阵,也就是幺矩阵

(3) eye:产生单位矩阵

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

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

这几个函数的调用格式相似,例:

zeros(m) 产生m\timesm大小的零矩阵

zeros(m,n) 产生m\timesn大小的零矩阵

zeros(size(A)) 产生和A矩阵相同大小的零矩阵

zeros

ans =

     0

ones

ans =

     1

eye

ans =

     1

rand

ans =

    0.6324

randn

ans =

   -1.3077
 
zeros(3)

ans =

     0     0     0
     0     0     0
     0     0     0

zeros(3,2)

ans =

     0     0
     0     0
     0     0

A=[1,1,1,1;1,1,1,1;1,1,1,1;1,1,1,1];
 
zeros(size(A))

ans =

     0     0     0     0
     0     0     0     0
     0     0     0     0
     0     0     0     0

用于专门学科的特殊矩阵

1、魔方矩阵

magic(n) 生成一个n阶的魔方矩阵

 魔方矩阵的一个有趣性质——对于n阶魔方矩阵,其元素由1、2、3、...、n^2n^2个整数组成,并且每行、每列以及两条对角线上的元素和都等于\frac{n(n^2+1)}{2}

magic(3)

ans =

     8     1     6
     3     5     7
     4     9     2

magic(5)

ans =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

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

2、范德蒙德(Vandermonde)矩阵

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

>> vander([1,2,3,4])

ans =

     1     1     1     1
     8     4     2     1
    27     9     3     1
    64    16     4     1

3、希尔伯特(Hilbert)矩阵

生成希尔伯特矩阵的函数是 hilb(n)

有一个专门求n阶希尔伯特矩阵的逆矩阵的函数 invhilb(n) 

希尔伯特矩阵是一种数学变换矩阵,他的每个元素是

h_{ij}=\frac{1}{i+j-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     

H=invhilb(4)

H =

      16           -120            240           -140       
    -120           1200          -2700           1680       
     240          -2700           6480          -4200       
    -140           1680          -4200           2800       

format  %恢复默认输出格式

4、托普利兹(Toeplitz)矩阵

生成托普利兹矩阵的函数是 toeplitz(x,y),它生成一个以x为第一列,y为第一行的托普利兹矩阵。如果x和y等长,可以用toeplitz(x)生成一个对称的托普利兹矩阵。

toeplitz((1:6),(1:5))

ans =

     1     2     3     4     5
     2     1     2     3     4
     3     2     1     2     3
     4     3     2     1     2
     5     4     3     2     1
     6     5     4     3     2

toeplitz(1:6)

ans =

     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

5、伴随矩阵

注意此处的伴随矩阵不是线性代数里的伴随矩阵,他是伴随着一个多项式的矩阵,这个多项式称为是这个伴随矩阵的特征多项式,多项式的根就是这个伴随矩阵的特征值。

生成一个多项式p(x)的伴随矩阵的函数是compan(p)

p=[1,0,-7,6];

A=compan(p)

A =

     0     7    -6
     1     0     0
     0     1     0

>> eig(A)

ans =

   -3.0000
    2.0000
    1.0000

roots(p)

ans =

   -3.0000
    2.0000
    1.0000

6、帕斯卡(Pascal)矩阵

帕斯卡矩阵可用于求二项式展开的系数。我们知道(x+y)^n展开的系数随着n的增大组成一个三角形表,也就是杨辉三角。帕斯卡矩阵的第一行和第一列元素都是1,其余位置的元素是该元素的左边元素和上一行的对应位置元素相加,也就是

A(i,j)=A(i-1,j)+A(i,j-1)

 函数pascal(n)生成一个n阶的帕斯卡矩阵

注意了,如果要求(x+y)^n的二项式展开系数那么应该用pascal(n+1), 然后依次取副对角线的元素就是所要的系数

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

posted @   morphism  阅读(211)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示