温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MATLAB如何实现矩阵运算

发布时间:2021-12-30 17:18:39 来源:亿速云 阅读:209 作者:小新 栏目:开发技术

这篇文章主要为大家展示了“MATLAB如何实现矩阵运算”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MATLAB如何实现矩阵运算”这篇文章吧。

###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实部Round4舍5入到整数
imag虚部Fix向最接近0取整
conj复数共轭Floor向最接近-∞取整
sin正弦Ceil向最接近+∞取整
cos余弦Sign符号函数
tan正切Rem求余数留数
asin反正弦Exp自然指数
acos反余弦Log自然对数
atan反正切log10以10为底的对数
atan2第四象限反正切pow22的幂
sinh双曲正弦Bessel贝赛尔函数
cosh双曲余弦Gamma伽吗函数
tanh双曲正切

【例3.18】数组算术运算函数的使用。
首先在MATLAB工作空间创建以下的数组B:
 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命令行窗口中输入以下命令,不同数组算术运算函数的运算结果:
 y1=sin(B) %求取数组的正弦
 y2=sqrt(y1) %求取数组的方根
 y3=imag(y2) %求取数组的虚部

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

以上是“MATLAB如何实现矩阵运算”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI