前言
本节主要讨论矩阵的基本概念和性质,结合MATLAB的基础代码,适合新手。
一. 行列式
矩阵的行列式的数学定义如下:
MATLAB调用的格式如下:
d=det(A)
例题1
求以下矩阵的行列式:
解:
MATLAB代码如下:
clc;clear;
A=[16 2 3 13;5 11 10 8;9 7 6 12;4 14 15 1];
det(A)
运行结果:
ans =
5.1337e-13
例题2
利用解析解的方法计算20✖️20的Hilbert矩阵的行列式,并分析其代码运行时间。
解:
MATLAB代码:
clc;clear;
tic, %时间的开端
A=sym(hilb(20)); %20阶的hilbert矩阵,并写成符号形式
det(A),
toc %时间的结束
运行的结果较长,如下:
ans =
1/2377454716768534509091644243427616440175419837753486493033185331234419759310644585187585766816573773440565759867265558971765638419710793303386582324149811241023554489166154717809635257797836800000000000000000000000000000000000
历时 0.246496 秒
分析:可通过此结果推断高阶的Hilbert矩阵式接近奇异的矩阵
二. 矩阵的迹
在数学中,方阵的迹定义如下:
MATLAB的格式如下:
t=trace(A)
三. 矩阵的秩
矩阵的秩可以理解为该矩阵中行列式不等于0的子式中最大的阶次。基于线性无关性质,行秩和列秩是相等的,MATLAB格式如下:
r=rank(A); %利用默认的精度求数值秩
r=rank(A); %给定精度下,求数值秩
上式子中,r可代表列秩或行秩。
例题3
求矩阵A的秩,A的表达式如下:
解:
MATLAB代码如下:
clc;clear;
A=[16 2 3 13;5 11 10 8;9 7 6 12;4 14 15 1];
rank(A)
运行结果:
ans =
3
分析:该矩阵的秩为3,小于该矩阵的阶次4,所以次矩阵为非满秩矩阵。
例题4
利用数值方法和解析方法分别求20✖️20的Hilbert矩阵的秩。
解:
MATLAB代码如下:
clc;clear;
H=hilb(20);
r1=rank(H) %数值方法
H1=sym(hilb(20));
r2=rank(H1) %解析方法
运行结果:
r1 = 13
r2 = 20
分析:两种方法运行结果不一样,原因是原矩阵为非奇异矩阵
四. 矩阵范数
首先,我们来认识下向量的范数。函数为向量的范数,需要满足如下三个基本条件:
- ,的充要条件是
- ,其中a为任意的标量
- 对任意向量x和y,都有
令代表向量的范数,从数学的观点上,范数的计算公式如下:
此式子中,
由向量的范数延伸到矩阵的范数,对于任意的非零向量x,矩阵A的范数可定义如下:
常用的三个范数计算如下:
在MATLAB中调用的格式如下:
N=norm(A) %求解默认为2的范数
N=norm(A,others) %others可填1,,2,inf等
例题5
求解以下向量a和矩阵A的范数。
a=[16 2 3 13];
解:
MATLAB代码如下:
clc;clear;
a=[16 2 3 13];
a1=[norm(a),norm(a,2),norm(a,1),norm(a,inf)]
%分别求向量 默认,2,,1,无穷大的范数
A=[16 2 3 13;5 11 10 8;9 7 6 12;0 7 3 6];
A1=[norm(A),norm(A,2),norm(A,1),norm(A,inf)]
%分别求矩阵 默认,2,,1,无穷大的范数
说明:因为符号运算工具箱未提供norm()函数,所以如果给出的是符号矩阵,则需要先用double()函数转换成双精度数值矩阵,再调用norm()函数即可。
五. 特征多项式
矩阵A的特征多项式,定义如下:
MATLAB调用的格式,如下:
C=poly(A)
例题6
求矩阵A的特征多项式。
解:
MATLAB代码如下:
clc;clear;
A1=[16 2 3 13;5 11 10 8;9 7 6 12;4 14 15 1];
C1=poly(A1) %直接求解
A2=sym(A1);
C2=charpoly(A2) %运用符号工具箱求解
运行结果:
C1 =
1.0e+03 *
0.0010 -0.0340 -0.0800 2.7200 0.0000
C2 =
[ 1, -34, -80, 2720, 0]
分析:两个结果一致
六. 矩阵多项式
矩阵多项式的数学形式如下:
MATLAB调用的格式,如下:
B=polyvalm(a,A)
如果是点运算,则定义如下形式:
MATLAB调用格式,如下:
C=polyval(a,x)
可以将多项式P中的自变量s替换为x,MATLAB格式如下:
C=subs(p,s,x)
例题7
(1)求向量与矩阵间的矩阵多项式
,
(2)求向量与向量间的矩阵多项式
,
解:
MATLAB代码如下:
clc;clear;
a=[1 2 3 4];
A=[5 6;7 8];
x=[7 8 9];
C1=polyvalm(a,A)
C2=polyval(a,x)
运行结果:
C1 =
1034 1200
1400 1634
C2 =文章来源:https://www.toymoban.com/news/detail-447001.html
466 668 922文章来源地址https://www.toymoban.com/news/detail-447001.html
到了这里,关于基于MATLAB的矩阵性质:行列式,秩,迹,范数,特征多项式与矩阵多项式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!