MATLAB特殊矩阵

文章介绍了MATLAB中用于创建特殊矩阵的函数,包括零矩阵、幺矩阵、单位矩阵、随机矩阵和标准正态分布随机矩阵的生成方法。此外,还详细阐述了幻方矩阵、范德蒙矩阵、希尔伯特矩阵、伴随矩阵和帕斯卡矩阵的定义、特点及MATLAB生成这些矩阵的函数用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.特殊矩阵


1.1什么是特殊矩阵

特殊矩阵是假若值相同的元素或者零元素在矩阵中的分布有一定规律,则我们称此类矩阵为特殊矩阵。


2.两类特殊矩阵

2.1通用性的特殊矩阵

        分别有零矩阵幺矩阵单位矩阵随机矩阵标准正太分布随机矩阵,相应的MATLAB有创建上述矩阵的函数,如下表所示:

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

  调用演示如下:

(1)zeros函数

<1>zeors(m):产生m x m零矩阵


<2>zeors(m,n)产生mxn零矩阵


<3>zeors(size(A)):产生与矩阵A同等大小的零矩阵

 


(2)ones函数

<1>x =ones 返回标量1


<2>ones(n):产生n x n的全1矩阵


<3>ones(m,n):产生mxn的全1矩阵


 <4>ones(size(A)):产生和矩阵A同等大小的全1矩阵


(3)eye函数

<1>x =eye :返回标量1


<2>eye(n):产生一个主对角线元素为 1 且其他位置元素为 0 的n x n单位矩阵


<3>eye(m,n):产生一个主对角线元素为 1 且其他位置元素为 0 的m x n单位矩阵


<4>eye(size(A)):产生一个主对角线元素为 1 且其他位置元素为 0 和矩阵A一样大小的单位矩阵


(4)rand函数

<1>x =rand:返回从区间 (0,1) 的均匀分布中得到的随机标量


<2>rand(n):产生一个由均匀分布的随机数组成的 n×n 矩阵


<3>rand(m,n): 产生一个由均匀分布的随机数组成的 m×n 矩阵


<4>rand(size(A)) : 产生一个由均匀分布的随机数组成的和矩阵A同样大小的矩阵


(5)randn函数

<1> x =randn:返回一个从标准正态分布中得到的随机标量


<2>randn(n): 产生一个由正太分布的随机数组成的 n×n 矩阵


<3>randn(m,n):产生一个由正太分布的随机数组成的 m×n 矩阵


<4>randn(size(A)):产生一个由正太分布的随机数组成的和矩阵A一样大小的矩阵


2.2用于专门学科的特殊矩阵

        分别有幻方矩阵范德蒙矩阵希尔伯特矩阵伴随矩阵帕斯卡矩阵,MATLAB相应创建上述矩阵的函数如下表:

函数名作用
magic生成幻方矩阵
vander生成范德蒙矩阵
hilb生成希尔伯特矩阵
compan生成伴随矩阵
pascal生成帕斯卡矩阵

2.2.1魔方矩阵

定义:

        魔方矩阵又称幻方,是有相同的行数和列数,并在每行每列、对角线上的和都相等的矩阵。魔方矩阵中的每个元素不能相同。你能构造任何大小(除了2x2)的魔方矩阵。

特点:

  1. n阶魔方阵由1,2,3,......,n^2,共n^2个整数组成,且每行、每列以及主、副对角线上各n个元素之和都相等
  2. n阶魔方阵每行每列元素的和为(1+2+3+.......+n^2)/n = (n+n^3)/2
  3. n>2时有很多不同的魔方阵,MATLAB函数magic(n)产生一个特定的魔方矩阵。

语法: 

M = magic( n ):返回由 1 到 n2 的整数构成并且总行数和总列数相等的 n×n 矩阵。n 的阶数必须是大于或等于 3 的标量才能创建有效的幻方矩阵。

演示:


2.2.2范德蒙矩阵

定义:

语法:

A = vander(v):返回 Vandermonde 矩阵 以使其列是向量 v 的幂。

演示:


2.2.3希伯特矩阵

定义:

希尔伯特矩阵(Hilbert matrix)是一种数学变换矩阵,正定,且高度病态(即,任何一个元素发生一点变动,整个矩阵的值和逆矩阵都会发生巨大变化),病态程度和阶数相关。

语法:

H = hilb(n): 返回阶数为 n 的 Hilbert 矩阵,Hilbert 矩阵的元素由 H(i,j) = 1/(i + j – 1) 指定。

演示:


2.2.4伴随矩阵

定义:


语法:

A = compan(u) 返回第一行为 -u(2:n)/u(1) 的对应伴随矩阵,其中 u 是多项式系数向量。compan(u) 的特征值是多项式的根。

演示:



2.2.5帕斯卡矩阵

定义:

特点:

语法:

演示:

### 特殊矩阵的创建 在 MATLAB 中,可以通过多种方式创建特殊类型的矩阵。对于不同种类的特殊矩阵MATLAB 提供了专门的函数来进行构建。 #### 使用内置函数创建特殊矩阵 为了生成零矩阵或全一矩阵,可分别调用 `zeros` 或者 `ones` 函数[^4]: ```matlab % 创建一个3×2的零矩阵 A = zeros(3, 2); % 创建一个2×3的全一矩阵 B = ones(2, 3); ``` 单位矩阵可通过 `eye()` 来实现其创建过程[^5]: ```matlab % 构建一个4阶单位方阵 C = eye(4); % 构造一个非方形的3行8列单位矩阵 D = eye(3, 8); ``` 针对某些特殊的数学研究领域内常用的矩阵,比如幻方矩阵、范德蒙矩阵等,则可以直接借助于对应的专用命令完成初始化工作[^2]: ```matlab % 幻方矩阵 E = magic(5); % 范德蒙矩阵 F = vander([1; 2; 3]); % 希尔伯特矩阵 G = hilb(6); % 伴随矩阵 H = compan(poly([1 -2])); % 帕斯卡矩阵 I = pascal(7); ``` 除了上述提到的基础型特殊矩阵之外,还有其他更多样化的矩阵形式等待探索与应用,例如通过指定范围内的线性间隔数值构成向量并进一步形成网格数据结构的方法来建立序列化矩阵[^1]: ```matlab % 利用冒号运算符生成从0到9每隔2递增的一维数组 J = 0:2:9; % 应用linspace函数得到两端分别为1和10之间均匀分布着五个点组成的矢量 K = linspace(1, 10, 5); % 结合meshgrid绘制二维空间上的坐标系 [L, M] = meshgrid(-2:.2:2,-1:.15:1); ``` 以上展示了部分常见以及较为特别的矩阵构造技巧,在实际编程过程中可以根据具体需求灵活选用合适的工具进行开发设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值