MATLAB6.0数学手册 b=[4; 1; 2]; x=a\\b 则显示:x=
-1.5000
2.0000
0.5000
如果a为非奇异矩阵,则a\\b和b/a可通过a的逆矩阵与b阵得到:
a\\b = inv(a)*b b/a = b*inv(a)
数组除法:
A./B表示A中元素与B中元素对应相除。
1.2.5 矩阵乘方
运算符:^
运算规则:
(1)当A为方阵,P为大于0的整数时,A^P表示A的P次方,即A自乘P次;P为小于0的整数时,A^P表示A-1的P次方。
p?d11(2)当A为方阵,p为非整数时,则A^P?V???????V?1其中V为A的特征向?dpnn???d11量,??????为特征值对角矩阵。如果有重根,以上指令不成立。 ?dnn??pd11??V???????1?V式中???(3)标量的矩阵乘方PA,标量的矩阵乘方定义为PA?pdnnV,D取
自特征值分解AV=AD。
?pa11?P.^A????am1p???pa1n(4)标量的数组乘方P.^A,标量的数组乘方定义为
??pamn??????数组乘方:
A.^P:表示A的每个元素的P次乘方。
1.2.6 矩阵函数
命令 方阵指数
函数 expm
格式 Y = expm(A) %使用Pade近似算法计算eA,这是一个内部函数,A为方阵。 Y=expm1(A) %使用一个M文件和内部函数相同的算法计算eA Y=expm2(A) %使用泰勒级数计算eA
Y=expm3(A) %使用特征值和特征向量计算eA
16 第1章 矩阵及其基本运算
命令 矩阵的对数
函数 logm
格式 Y = logm(X) %计算矩阵X的对数,它是expm(X)的反函数。 [Y,esterr] = logm(X) %esterr为相对残差的估计值:norm(expm(Y)-X)/norm(X)
例1-41
>> A=[1 1 0;0 0 2;0 0 -1]; >> Y=expm(A)
Y =
2.7183 1.7183 1.0862 0 1.0000 1.2642 0 0 0.3679 >> A=logm(Y)
A =
1.0000 1.0000 0.0000 0 0 2.0000 0 0 -1.0000
命令 方阵的函数
函数 funm
格式 F = funm(A,fun) %A为方阵,计算由fun指定的A的矩阵函数,fun可以
是任意基本函数,如sin、cos等等,例如:funm(A, ’exp’)=expm(A)。
[F,esterr] = funm(A,fun) %esterr为结果所产生的相对误差的估计值。 命令 矩阵的方根
函数 sqrtm
格式 X = sqrtm(A) %矩阵A的平方根A1/2,相当于X*X=A,求X。若A的特征值
有非负实部,则X是唯一的;若A的特征值有负的实部,则X
为复矩阵;若A为奇异矩阵,则X不存在。
[X,resnorm] = sqrtm(A) % resnorm为结果产生的相对误差 [X,alpha,condest] = sqrtm(A) % alpha为稳定因子,condest为结果的条件数的估
计值。
命令 矩阵A的多项式
函数 polyvalm
格式 polyvalm(P, A) %P为多项式系数向量,方阵A为多项式变量,返回多项式值。
1.2.7 矩阵转置
运算符:′
运算规则:若矩阵A的元素为实数,则与线性代数中矩阵的转置相同。
若A为复数矩阵,则A转置后的元素由A对应元素的共轭复数构成。
若仅希望转置,则用如下命令:A.′。
1.2.8 方阵的行列式
函数 det
17 MATLAB6.0数学手册 格式 d = det(X) %返回方阵X的多项式的值 例1-42
>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3 4 5 6 7 8 9 >> D=det(A)
D = 0
1.2.9 逆与伪逆
命令 逆
函数 inv
格式 Y=inv(X) %求方阵X的逆矩阵。若X为奇异阵或近似奇异阵,将给出警告信息。
?1?例1-43 求A??2?3?2243??1?的逆矩阵 3??方法一
>>A=[1 2 3; 2 2 1; 3 4 3];
>>Y=inv(A)或Y=A^(-1) 则结果显示为 Y =
1.0000 3.0000 -2.0000 -1.5000 -3.0000 2.5000 1.0000 1.0000 -1.0000
?123100???方法二:由增广矩阵B??221010?进行初等行变换
?343001???>>B=[1, 2, 3, 1, 0, 0; 2, 2, 1, 0, 1, 0; 3, 4, 3, 0, 0, 1]; >>C=rref(B) %化行最简形
>>X=C(:, 4:6) %取矩阵C中的A^(-1)部分 显示结果如下: C =
1.0000 0 0 1.0000 3.0000 -2.0000 0 1.0000 0 -1.5000 -3.0000 2.5000 0 0 1.0000 1.0000 1.0000 -1.0000 X =
1.0000 3.0000 -2.0000 -1.5000 -3.0000 2.5000 1.0000 1.0000 -1.0000
例1-44
>> A=[2 1 -1;2 1 2;1 -1 1];
>> format rat %用有理格式输出 >> D=inv(A)
D =
1/3 0 1/3 0 1/3 -2/3 -1/3 1/3 0
18 第1章 矩阵及其基本运算
命令 伪逆
函数 pinv
格式 B = pinv(A) %求矩阵A的伪逆
B = pinv(A, tol) %tol为误差:max(size(A))*norm(A)*eps
说明 当矩阵为长方阵时,方程AX=I和XA=I至少有一个无解,这时A的伪逆能在某种程度上代表矩阵的逆,若A为非奇异矩阵,则pinv(A) = inv(A)。
例1-45
>> A=magic(5); %产生5阶魔方阵。
>> A=A(:,1:4) %取5阶魔方阵的前4列元素构成矩阵A。
A =
17 24 1 8 23 5 7 14 4 6 13 20 10 12 19 21 11 18 25 2 >> X=pinv(A) %计算A的伪逆
X =
-0.0041 0.0527 -0.0222 -0.0132 0.0069 0.0437 -0.0363 0.0040 0.0033 0.0038 -0.0305 0.0027 -0.0004 0.0068 0.0355 0.0060 -0.0041 0.0314 0.0211 -0.0315
1.2.10 矩阵的迹
函数 trace
格式 b=trace (A) %返回矩阵A的迹,即A的对角线元素之和。
1.2.11 矩阵和向量的范数
命令 向量的范数 函数 norm
格式 n = norm(X) %X为向量,求欧几里德范数,即||X||2??|xk|2。
n = norm(X,inf) %求?-范数,即||X||?max(abs(X))。 n = norm(X,1) %求1-范数,即||X||1??|xk|。
kn = norm(X,-inf) %求向量X的元素的绝对值的最小值,即||X||?min(abs(X))。 n = norm(X, p) %求p-范数,即||X||p?命令 矩阵的范数
函数 norm
格式 n = norm(A) %A为矩阵,求欧几里德范数||A||2,等于A的最大奇异值。
n = norm(A,1) %求A的列范数||A||1,等于A的列向量的1-范数的最大值。 n = norm(A,2) %求A的欧几里德范数||A||2,和norm(A)相同。
n = norm(A,inf) %求行范数||A||?,等于A的行向量的1-范数的最大值
pp ?|xk|,所以norm(X,2) = norm(X)。k
19 MATLAB6.0数学手册 即:max(sum(abs(A')))。
n = norm(A, 'fro' ) %求矩阵A的Frobenius范数||A||F???|aij|2,
ij即sqrt(sum(diag(A'*A))),不能用矩阵p-范数的定义来求。
命令 范数的估计值
函数 normest
格式 nrm = normest(A) %矩阵A的2-范数(欧几里德范数)的估计值,相对误
差小于106。
nrm = normest(A,tol) %tol为指定相对误差
[nrm,count] = normest(?) %count给出计算估计值的迭代次数
1.2.12 条件数
命令 矩阵的条件数
函数 cond
格式 c = cond(X) %求X的2-范数的条件数,即X的最大奇异值和最小奇异值的商。
c = cond(X,p) %求p-范数的条件数,p的值可以是1、2、inf或者’fro’。
说明 线性方程组AX=b的条件数是一个大于或者等于1的实数,用来衡量关于数据中的扰动,也就是A/或b对解X的灵敏度。一个差条件的方程组的条件数很大。条件数的定义为:cond(A)|A||||A?1||
命令 1-范数的条件数估计
函数 condest
格式 c = condest (A) %方阵A的1-范数的条件数的下界估值。
[c,v] = condest (A) %v为向量,满足||Av||?=norm(A,1)*norm(v,1)/c。
[c,v] = condest (A,t) %求上面的c和v,同时显示出关于计算的步骤信息。如果
t=1,则计算的每步都显示出来;如果t=-1,则给出商
c/rcond(A)。
命令 矩阵可逆的条件数估值 函数 rcond
格式 c = rcond(A) %对于差条件矩阵A来说,给出一个接近于0的数;对于好条件
矩阵A,则给出一个接近于1的数。
命令 特征值的条件数 函数 condeig
格式 c = condeig(A) %返回矩阵A的特征值的条件数
[V,D,c] = condeig(A) %D为A的特征值对角阵,V为A的特征向量。
||A||?||v||,即norm(A*v,1) c1.2.13 矩阵的秩
函数 rank
格式 k = rank (A) %求矩阵A的秩
20