MATLAB编程与应用系列-第3章 矩阵运算(2)

本系列教程来源于出版设计《基于MATLAB编程基础与典型应用书籍》,如涉及版权问题,请联系:[email protected]。 出版社:人民邮电出版社, 页数:525。

本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected]

###3.1.5 矩阵函数
MATLAB提供了丰富的函数来实现对矩阵的各种运算,下面将逐步介绍。因篇幅关系,将不作数学方面的解释。表3.1所示为常用的矩阵运算函数以及函数相对应的功能描述。
表3.1 常用矩阵运算函数
函数名 功能
det(X) 计算方阵行列式
rank(X) 求矩阵的秩,得出的行列式不为零的最大方阵边长。
trace(X) 矩阵A的迹b,即A的对角线元素之和
expm(A) 使用Pade近似算法计算eA,这是一个内部函数,A为方阵
expm1(A) 使用一个M文件和内部函数相同的算法计算e^A
expm2(A) 使用泰勒级数计算e^A
expm3(A) 使用特征值和特征向量计算e^A
logm(X) 计算矩阵X的对数,它是expm(X)的反函数
funm(X, fun) 指定的函数fun计算方阵X的函数矩阵
sqrtm(X) 计算矩阵A的平方根A1/2,相当于X*X=A,求X
polyvalm(P, X) 按照矩阵运算规则计算多项式的值。其中,P为多项式系数向量,方阵X为多项式变量,返回值为多项式值
inv(X) 求矩阵的逆阵,当方阵X的det(X)不等于零,逆阵X-1才存在。X 与X-1相乘为单位矩阵。
pinv(X) 求解矩阵X的伪逆B
norm(X , ref) 求解矩阵或者向量的不同范数, ref指定了求解范数的类型
cond(X, p) 返回矩阵X的p-范数的条件数。如果p=2对应为2范数
[v,d]=eig(X) 计算矩阵特征值和特征向量。如果方程Xv=vd存在非零解,则v为特征向量,d为特征值。
diag(X) 产生X矩阵的对角阵
[l,u]=lu(X) 方阵分解为一个准下三角方阵和一个上三角方阵的乘积。l为准下三角阵,必须交换两行才能成为真的下三角阵。
[q,r]=qr(X) m×n阶矩阵X分解为一个正交方阵q和一个与X同阶的上三角矩阵r的乘积。方阵q的边长为矩阵X的n和m中较小者,且其行列式的值为1。
[u,s,v]=svd(X) m×n阶矩阵X分解为三个矩阵的乘积,其中u,v为n×n阶和m×m阶正交方阵,s为m×n阶的对角阵,对角线上的元素就是矩阵X的奇异值,其长度为n和m中的较小者。

注意:1. 当矩阵为长方阵时,方程AX=I和XA=I至少有一个无解,这时A的伪逆能在某种程度上代表矩阵的逆,若A为非奇异矩阵,则pinv(A)=inv(A)。

  1. 在上表中det(a)=0或det(a)虽不等于零但数值很小接近于零,则计算inv(a)时,其解的精度比较低, 用条件数(求条件数的函数为cond)来表示,条件数越大,解的精度越低,MATLAB会提出警告:“条件数太大,结果可能不准确”。

###3.1.6 矩阵转置
矩阵转置的运算符为“‘”,“A‘”表示矩阵A的转置,若矩阵A的元素为实数,则与线性代数中矩阵的转置相同。若A为复数矩阵,则A转置后的元素由A对应元素的共轭复数构成。

“A.‘”表示数组A的转置,如果数组A为复数数组,则仅表示复数矩阵数组的转置,而不进行矩阵或者数组的共轭操作。

【例3.17】矩阵和数组转置运算。
在命令窗口输入以下内容,生成矩阵AA和矩阵A1:
>> AA=magic(3); %生成3阶的魔方阵
>> A1=eye(3); %生成3阶的单位对角阵
由A和A1组成复数矩阵,在命令窗口输入:
>> x3=AA+A1*i % 由AA和A1组成复数矩阵
生成以下复数矩阵x3:
x3 =<br/>8.0000 + 1.0000i 1.0000 6.0000<br/>3.0000 5.0000 + 1.0000i 7.0000<br/>4.0000 9.0000 2.0000 + 1.0000i
①若矩阵AA进行转置运算,可在命令窗口中输入:
&gt;&gt; AA‘ %对实数矩阵进行转置运算
矩阵AA转置后如下:
ans =<br/>8 3 4<br/>1 5 9<br/>6 7 2
②若对复数矩阵x3进行转置运算,可在命令窗口中输入:
&gt;&gt; x3‘ % 对复数矩阵进行转置运算
转置后的复数矩阵如下:
ans =<br/>8.0000 - 1.0000i 3.0000 4.0000<br/>1.0000 5.0000 - 1.0000i 9.0000<br/>6.0000 7.0000 2.0000 - 1.0000i
③若对复数矩阵x3进行数组转置运算,可在命令窗口中输入:
&gt;&gt; x3.‘ % 对复数矩阵进行数组转置运算
进行转置运算后如下:
ans =<br/>8.0000 + 1.0000i 3.0000 4.0000<br/>1.0000 5.0000 + 1.0000i 9.0000<br/>6.0000 7.0000 2.0000 + 1.0000i

###3.1.7 矩阵和数组的数学函数
MATLAB基本数学函数库中还有很多基本的数学函数运算可以对矩阵或数组进行计算,各函数的调用格式和功能描述详见表3.2。
表3.2 基本函数

函数名 含义 函数名 含义
abs 绝对值或者复数模 Rat 有理数近似
sqrt 平方根 Mod 模除求余
real 实部 Round 4舍5入到整数
imag 虚部 Fix 向最接近0取整
conj 复数共轭 Floor 向最接近-∞取整
sin 正弦 Ceil 向最接近+∞取整
cos 余弦 Sign 符号函数
tan 正切 Rem 求余数留数
asin 反正弦 Exp 自然指数
acos 反余弦 Log 自然对数
atan 反正切 log10 以10为底的对数
atan2 第四象限反正切 pow2 2的幂
sinh 双曲正弦 Bessel 贝赛尔函数
cosh 双曲余弦 Gamma 伽吗函数
tanh 双曲正切

【例3.18】数组算术运算函数的使用。
首先在MATLAB工作空间创建以下的数组B:
&gt;&gt; B=[5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9;4 5 6 7 8]
读者可以在MATLAB命令行窗口中输入以下命令,不同数组算术运算函数的运算结果:
&gt;&gt; y1=sin(B) %求取数组的正弦
&gt;&gt; y2=sqrt(y1) %求取数组的方根
&gt;&gt; y3=imag(y2) %求取数组的虚部

【例3.19】接上例,将数组y1进行圆整操作。
在MATLAB命令行窗口中输入以下命令,对数组B的正弦函数计算结果进行不同的圆整操作:
&gt;&gt; B1=floor(y1) % 向最接近-∞取整
&gt;&gt; B2=ceil(y1) % 向最接近+∞取整
&gt;&gt; B3=round(y1) % 4舍5入到整数
&gt;&gt; B4=fix(y1) % 向最接近0取整

作者:德特数据
联系方式:[email protected]

原文地址:http://blog.51cto.com/14047253/2310308

时间: 2024-10-08 13:48:12

MATLAB编程与应用系列-第3章 矩阵运算(2)的相关文章

MATLAB编程与应用系列-第3章 矩阵运算(1)

本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:[email protected]. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected] 本章将介绍与MATLAB矩阵运算有关相关的内容.矩阵运算是MATLAB的基础,是MATLAB强大计算功能的体现.这一章的内容可以帮助读者解决一些学习和工作中常遇到的实际问题,让读者了解

MATLAB编程与应用系列-第3章 矩阵运算(4)

本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:[email protected]. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected] ##3.2 矩阵的分解矩阵的分解是矩阵相关运算中的重要内容,MATLAB提供了用于矩阵分解运算的多种函数.本节将集中介绍MATLAB所提供的矩阵分解运算函数的功能及使用. ###3.2

MATLAB编程与应用系列-第3章 矩阵运算(3)

本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:[email protected]. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected] ###3.1.8 矩阵和数组运算比较在进行矩阵和数组运算的时候,要认识到矩阵和数组类似运算的区别,两种运算指令形式和实质内涵的异同见表3.3.其中S为标量,A.B为矩阵.表3.3 矩阵

MATLAB编程与应用系列-第1章 MATLAB概述

本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:[email protected]. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected] 在科学研究和工程计算领域经常会遇到一些非常复杂的计算问题,利用计算器或手工计算是无法胜任的,只能借助计算机编程来实现,MATLAB正是解决这样复杂计算问题的强大的科学计算软件.MATL

MATLAB编程与应用系列-第2章 数组及矩阵的创建及操作(1)

本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:[email protected]. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected] MATLAB中的数学计算部分包括数值计算和符号计算两大部分,数值计算是MATLAB的核心,在数值计算过程中,同样需要辅以适当的符号运算,目前符号运算的发展也非常完善,同样得到广泛的应用

MATLAB编程与应用系列-第2章 数组及矩阵的创建及操作(2)

本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:[email protected]. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected] 2.2 数组及矩阵的创建和操作 本节将介绍数组及矩阵的创建和操作,包括数组的输入以及数组元素的操作.由于数组和矩阵在创建和寻访的处理方式类似,因此将两者综合一起说明. ###2.2.1

MATLAB编程与应用系列-关于MATLAB编程入门教程的总体编写安排

本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:[email protected]. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected] #MATLAB基本介绍Matlab工程软件是MathWorks公司推出的一款具备强大数学运算能力的数学软件.随着工具箱的不断丰富和完善,Matlab工程软件几乎可以应用于社会各种工程领

异步编程系列第04章 编写Async方法

p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提高下英文,用我拙劣的英文翻译一些重要的部分,纯属娱乐,简单分享,保持学习,谨记谦虚. 如果你觉得这件事儿没意义翻译的又差,尽情的踩吧.如果你觉得值得鼓励,感谢留下你的赞,愿爱技术的园友们在今后每一次应该猛烈突破的时候,不选择知难而退.在每一次应该独立思考的时候,不选择随波逐流,应该全力以赴的时候,不选择尽力而

异步编程系列第03章 自己写异步代码

p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提高下英文,用我拙劣的英文翻译一些重要的部分,纯属娱乐,简单分享,保持学习,谨记谦虚. 如果你觉得这件事儿没意义翻译的又差,尽情的踩吧.如果你觉得值得鼓励,感谢留下你的赞,愿爱技术的园友们在今后每一次应该猛烈突破的时候,不选择知难而退.在每一次应该独立思考的时候,不选择随波逐流,应该全力以赴的时候,不选择尽力而