4.1 特殊矩阵的输入外文翻译资料
2023-03-30 15:57:41
英语原文共 21 页,剩余内容已隐藏,支付完成后下载完整资料
《SOLVING APPLIED MATHEMATICAL PROBLEMS WITH MATLAB》部分翻译
- 线性代数问题
4.1特殊矩阵的输入
4.1.1数值矩阵输入
尽管所有的矩阵都可以使用之前讨论的低等级的语句进入到MATLAB工作空间,但对于一些具有特殊结构的矩阵来说可能是复杂的。例如,如果要输入单位矩阵,就应该使用现有函数eye()。本章将介绍一些特殊矩阵的具体要求。
零矩阵、全1矩阵和单位矩阵
在矩阵理论中,所有矩阵元素都为0的矩阵叫做零矩阵;而所有元素都为1的矩阵叫做全1矩阵。如果对角元素为1其余元素为0,则称该矩阵为单位矩阵。这个概念可以延伸到mtimes;n矩阵。零矩阵、全1矩阵和单位矩阵可以用下列语句输入到MATLAB中:
A=zeros(n), B=ones(n), C=eye(n) % n times;n阶方阵
A=zeros(m, n); B=ones(m, n); C=eye(m, n) % mtimes;n 阶矩阵
A=zeros(size(B)) % 创建与B维数相同的全0矩阵
例4.1:一个3times;8的零矩阵A和与A维数相同的扩展单位矩阵B可以用下列语句进入MATLAB环境:
gt;gt; A=zeros(3,8),B=eye(size(A))
这两个矩阵可以在MATLAB工作空间中被建立,如下:
A =
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
B =
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
函数zeros()和ones()也可以被用来定义多维数组。例如,zeros(3,4,5)可以用来定义 一个3times;4times;5的零数组。
随机元素矩阵
如果一个矩阵中所有元素在[0,1]区间内满足均匀分布,则可以用MATLAB中的函数rand()来定义。这个函数的语法如下:
A=rand(n)%在[0,1]区间内创建一个ntimes;n均匀分布的随机矩阵
A=rand(m,n)%在[0,1]区间内创建一个mtimes;n均匀分布的随机矩阵
函数rand()也可以用来定义多维随机数组,同时存在另一个函数randn()可以用来定义标准的正态分布随机矩阵,语句rand(size(A))则可以表示在[0,1]区间内创建一个与A维数相同的均匀分布的随机矩阵。
这里的随机数值实际上是伪随机数,是可以用数学的方法生成的,伪随机数的优点包括很容易生成满足某些预定义分布的随机数且可以重复生成。
如果想要获得在(a,b)区间上的均匀分布随机数,可以先生成(0,1)区间上的均匀分布伪随机矩阵V=rand(n,m),然后就可以通过V1=a (b-a)*V的命令生成期望矩阵。
对角矩阵
对角矩阵的数学描述是
其中所有的非对角元素都是0.利用MATLAB中的函数diag()可以解决与对角矩阵相关的问题。语法如下:
A=diag(V)%使V为所得矩阵主对角线上的元素向量
V=diag(A)%从给定矩阵中提取主对角元素作为向量V的元素
A=diag(V,k)%使V为所得矩阵第k条对角线上的元素向量
例4.2:MATLAB函数中,diag()是一个很有趣的函数,面对不同的任务,可以使用不同的语法,例如,下面的语句就可以用来定义不同的矩阵:
gt;gt; C=[1 2 3];V=diag(C)
V =
1 0 0
0 2 0
0 0 3
gt;gt; V1=diag(V)
V1 =
1
2
3
gt;gt; C=[1 2 3];V2=diag(C,2)
V2 =
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
gt;gt; C=[1 2 3];V3=diag(C,-1)
V3 =
0 0 0 0
1 0 0 0
0 2 0 0
0 0 3 0
在k被赋值为负整数的时候,表示抽取下方第k条对角线上的元素。利用这些属性,可以进行如下操作:
gt;gt; V=diag([1 2 3 4]) diag([2 3 4],1) diag([5 4 3],-1)
那么就可以建立如下一个三角矩阵V,
V =
1 2 0 0
5 2 3 0
0 4 3 4
0 0 3 4
假设存在如下矩阵A1,A2,hellip;,An,那么可以用MATLAB函数中的diagm()构造块对角矩阵:
function A=diagm(varargin)
A=[];
for i=1:length(varargin),
A1=varargin{i}; [n,m]=size(A); [n1,m1]=size(A1);
A(n 1:n n1,m 1:m m1)=A1;
end.
例如:
汉克尔(Hankel)矩阵
汉克尔矩阵每个反对角线上的所有元素都相同,它的一般形式如下:
在MATLAB中,汉克尔矩阵可以基于两个给定的向量c和r,通过使用H=hankel(c,r)来构造,第一列可以分配给向量c,最后一行分配给向量r,因此,使用汉克尔矩阵的性质,满汉克尔矩阵就可以被建立。
如果只指定了一个向量c,则可以使用命令H=hankel(c)构造一个上三角hankel矩阵。
例4.3:使用MATLAB语句建立下列Hankel矩阵。
方法:为了构造上述Hankel矩阵,c和r向量应该赋值为c=[1,2,3],r=[3 4 5 6 7 8 9],然后可以用下列语句构造Hankel矩阵。
gt;gt; c=[1 2 3]; r=[3 4 5 6 7 8 9];
H1=hankel(c,r), H2=hankel(c)
希尔伯特(Hilbert)矩阵及其逆矩阵
希尔伯特矩阵是一个特殊的矩阵,它的第(i,j)个元素被定义为hi,j = 1/(i j minus; 1),一个n阶方形希尔伯特矩阵可以写成:
生成希尔伯特矩阵的语法是A=hilb(n).
维数大的希尔伯特矩阵是坏条件矩阵,在求逆矩阵时经常会发生溢出,因此,可以使用函数B=invhilb(n)直接得到一个它的逆矩阵。
由于希尔伯特矩阵特别接近奇异矩阵,所以在处理这种矩阵时必须非常小心,本文建议采用符号计算,如果使用数值方法,则必须验证结果。
范德蒙(Vandermonde)矩阵
对于给定的序列c = {c1, c2, · · · , cn},可以建立一个范德蒙矩阵,将第(i,j)个元素定义为 = , i, j = 1, 2, · · · , n
对于给定的向量c,在MATLAB中,可以用函数V=vander(c)来建立范德蒙矩阵。
例4.4:建立一个范德蒙矩阵
方法:对这样的矩阵,可以选择令c=[1 2 3 4 5],然后用下边的语句就可以构造相应的范德蒙矩阵。
gt;gt; c=[1, 2, 3, 4, 5]; V=vander(c)
伴随矩阵
假设存在一个一元多项式(系数最高次项为1),形式如下:
那么就可以建立一个伴随矩阵,
使用函数B=compan(p)就可以建立一个伴随矩阵,其中p是一个多项式系数向量。
例4.5:假设一个多项式P(s)=2s4 4s2 5s 6,写出它的伴随矩阵。
方法:首先输入特征多项式,然后用下列语句可以建立对应矩阵A。
gt;gt; p=[2 0 4 5 6];
gt;gt; 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
4.1.2定义符号矩阵
对于给定的数值矩阵A,通过B=sym(A)可以将其转换为符号矩阵。也就是说,所有的数值矩阵都可以转换为符号矩阵,从而使计算达到更高的精度。在一些情况下,甚至可以去找到解析的方法。
对于一些特殊的矩阵,例如范德蒙矩阵、Hankel矩阵和伴随矩阵,它们的函数不支持转换为符号矩阵,我们可以写出如下的特殊目的函数,从给定的向量来建立这样的矩阵,这些函数应该放在@sym目录下。
例如,符号伴随矩阵可以由以下函数建立:
function A=compan(c)
if min(size(c))gt;1, error(rsquo;Input argument must be a vector.rsquo;), end
n=length(c);
if nlt;=1, A=[];
elseif n==2, A=-c(2)/c(1);
else, c=c(:).rsquo;; A=sym(diag(ones(1,n-2),-1)); A(1,:)=-c(2:n)./ c(1);
end
例4.6:根据下列多项式,建立一个伴随矩阵
方法:通过上面给出的扩展函数compan(),可以使用下列语句建立所需矩阵。
gt;gt; syms a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
gt;gt; A=compan([a1 a2 a3 a4 a5 a6 a7 a8 a9 a10])
之后就得出矩阵
A =
[-a2/a1, -a3/a1, -a4/a1, -a5/a1, -a6/a1, -a7/a1, -a8/a1, -a9/a1, -a10/a1]
[ 1, 0, 0, 0, 0, 0, 0, 0, 0]
[ 0, 1, 0, 0, 0, 0, 0, 0, 0]
[ 0, 0, 1, 0, 0, 0, 0, 0, 0]
[ 0, 0, 0, 1, 0, 0, 0, 0, 0]
[ 0, 0, 0, 0, 1, 0, 0, 0, 0]
[ 0, 0, 0, 0, 0, 1, 0, 0, 0]
[ 0, 0, 0, 0, 0, 0, 1, 0, 0]
[
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[588379],资料为PDF文档或Word文档,PDF文档可免费转换为Word