基于MATLAB的矩阵基础(附例题与代码)

目录

一. 特殊矩阵的输入

1.1 数值矩阵的输入

1.2 随机元素矩阵

1.3 对角元素矩阵

例题1

(1)由行向量生成对角矩阵

(2)由列向量通过转置变成行向量

(3)主对角线上面第k条对角线为向量C的矩阵

例题2

二. Hilbert矩阵及逆Hilbert矩阵

三. Hankel(汉克)矩阵

四. Vandermonde(范德蒙)矩阵

五. 伴随矩阵

 例题3

六. 符号矩阵的输入


一. 特殊矩阵的输入

1.1 数值矩阵的输入

生成m✖️n零矩阵单位矩阵以及幺模矩阵,MATLAB格式如下:

A=zeros(m,n);

B=ones(m,n);

C=eye(m,n);

生成和矩阵D同样位数的零矩阵,MATLAB格式如下:

E=zeros(size(D));

备注:幺模矩阵的行列式|det(U)|=1

1.2 随机元素矩阵

如果矩阵中的元素满足[0,1]区间上的均匀分布,可利用此生成n✖️m阶均匀分布的伪随机数矩阵,MATLAB格式如下:

A=rand(n,m);

1.3 对角元素矩阵

已知向量生成对角矩阵的MATLAB格式,如下:

A=diag(V);

数学形式的解释如下:

逆过来,已知矩阵提取对角元素列向量,方法一样:

V=diag(A);

还有一种特殊形式,可以生成主对角线上面第k条对角线为V的矩阵,MATLAB格式:

A=diag(V,k);

例题1

此例题主要研究diag()函数不同的调用格式。

(1)由行向量生成对角矩阵

代码:

C=[1,2,3];
V=diag(C)

运行结果:

V =

     1     0     0
     0     2     0
     0     0     3

(2)由列向量通过转置变成行向量

代码:

C=[1,2,3];
V=diag(C);
V1=diag(V)' %此处的V为对角矩阵,也可以看成列向量

运行结果:

V1 =

     1     2     3

(3)主对角线上面第k条对角线为向量C的矩阵

代码:

C=[1,2,3];
V=diag(C,2)

运行结果:

V =

     0     0     1     0     0
     0     0     0     2     0
     0     0     0     0     3
     0     0     0     0     0
     0     0     0     0     0

分析如下:

例题2

利用diag()函数生成三对角矩阵,如下:

V=\begin{bmatrix} 1\;2\;0\;0\\ 5\;2\;3\;0\\ 0\;4\;3\;4\\ 0\;0\;3\;4 \end{}

解:

MATLAB代码如下:

V=diag([1 2 3 4])+diag([2 3 4],1)+diag([5 4 3],-1)
%主对角线上一行与下一行

 运行结果:

V =

     1     2     0     0
     5     2     3     0
     0     4     3     4
     0     0     3     4

二. Hilbert矩阵及逆Hilbert矩阵

Hilbert矩阵一定是一个方阵,数学表达形式如下:

H=\begin{bmatrix}1&\frac{1}{2}&\frac{1}{3}&\cdots&\frac{1}{n}\\ \frac{1}{2}&\frac{1}{3}&\frac{1}{4}&\cdots&\frac{1}{n+1}\\ \vdots&\vdots&\vdots&\ddots&\vdots&\\ \frac{1}{n}&\frac{1}{n+1}&\frac{1}{n+2}&\cdots&\frac{1}{2n-1} \\\end{}

矩阵中第(i,j)个元素的值可用如下形式表示:

h_{i,j}=\frac{1}{i+j-1}

生成n阶的Hilbert矩阵,MATLAB格式如下:

A=hilb(n)

求它对应的逆Hilbert矩阵,MATLAB格式如下:

B=invhilb(n)

三. Hankel(汉克)矩阵

Hankel矩阵的数学形式,如下:

H=\begin{bmatrix}c_1&c_2&\cdots&c_m\\ c_2&c_3&\cdots&c_{m+1}\\ \vdots&\vdots&\ddots&\vdots&\\ c_n&c_{n+1}&\cdots&c_{n+m-1} \end{}

经过观察发现,第一列和最后一行的数据就可以代表整个矩阵中的所有元素。MATLAB格式如下:

%提前给定两个向量C和R
H=hankel(C,R)

观察可发现,第一列的各个元素为C向量,最后一行各个元素定义为R。很明显H为一个对称矩阵

如果只给定一个向量,如下格式:

H1=hankel(C)

则此Hankel矩阵反对角线上元素相等,且反对角线下元素均为零

MATLAB代码:

clc;clear;
C=[1 2 3 4 5];
H1=hankel(C)

运行结果:

H1 =

     1     2     3     4     5
     2     3     4     5     0
     3     4     5     0     0
     4     5     0     0     0
     5     0     0     0     0

分析:

四. Vandermonde(范德蒙)矩阵

范德蒙矩阵的数学形式如下:

矩阵中的第(i,j)个元素满足如下等式:

v_{i,j}=c_i^{n-j},\quad i,j=1,2,\ldots,n

MATLAB格式:

V=vander(C)

五. 伴随矩阵

P(s)为首项系数为1的多项式,表达式如下:

P(s)=s^n+a_1s^{n-1}+a_2s^{n-2}+\ldots+a_{n-1}s+a_n

由多项式得到的伴随矩阵,如下:

MATLAB调用格式,如下:

B=compan(P)

 例题3

考虑一个多项式2x^4+4x^2+5x+6,利用MATLAB求出该多项式的伴随矩阵。

解:

MATLAB代码如下:

clc;clear;
P=[2 0 4 5 6];%由高次到低次的系数
A=compan(P)

运行结果:

A =

         0   -2.0000   -2.5000   -3.0000
    1.0000         0         0         0
         0    1.0000         0         0
         0         0    1.0000         0

六. 符号矩阵的输入

可以由数值矩阵转换为符号矩阵,MATLAB格式如下:

B=sym(A)

举例MATLAB代码:

clc;clear;
A=hilb(3) %A为Hilbert矩阵
B=sym(A) %分数形式

运行结果:

A =

    1.0000    0.5000    0.3333
    0.5000    0.3333    0.2500
    0.3333    0.2500    0.2000

 
B =
[   1, 1/2, 1/3]
[ 1/2, 1/3, 1/4]
[ 1/3, 1/4, 1/5]

  • 10
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唠嗑!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值