5.3 矩阵特征值和矩阵函数
5.3.1 特征值和特征向量的求取
【例 5.3.1 -1 】简单实阵的特征值问题。
A=[1,-3;2,2/3];[V,D]=eig(A)
V =
-0.7728 + 0.0527i -0.7728 - 0.0527i
0 + 0.6325i 0 - 0.6325i
D =
0.8333 + 2.4438i 0
0 0.8333 - 2.4438i
【 * 例 5.3.1 -2 】本例演示:如矩阵中有元素与截断误差相当时的特性值问题。
A=[3 -2 -0.9 2*eps
-2 4 -1 -eps
-eps/4 eps/2 -1 0
-0.5 -0.5 0.1 1 ];
[V1,D1]=eig(A);ER1=A*V1-V1*D1
[V2,D2]=eig(A,'nobalance');ER2=A*V2-V2*D2
ER1 =
0 -0.0000 -0.0000 0.0000
0.0000 -0.0000 0.0000 0.0000
0.0000 0.0000 -0.0000 0.0000
-0.0000 0.0000 0.0000 1.1227
ER2 =
1.0e-015 *
0.4441 -0.2220 0.1471 -0.2220
0 0.0555 -0.3629 0.2776
-0.0172 -0.0015 0.0066 0
0 -0.2220 -0.1110 0.1388
【 * 例 5.3.1 -3 】指令 eig 与 eigs 的比较。
rand('state',1),A=rand(100,100)-0.5;
t0=clock;[V,D]=eig(A);T_full=etime(clock,t0)% 指令 eig 的运作时间。
options.tol=1e-8; % 为 eigs 设定计算精度。
options.disp=0; % 使中间迭代结果不显示。
t0=clock;[v,d]=eigs(A,1,'lr',options);% 计算最大实部特征值和特征向量。
T_part=etime(clock,t0) % 指令 eigs 的运作时间。
[Dmr,k]=max(real(diag(D))); % 在 eig 求得的全部特征值中找最大实部的那个。
d,D(1,1)
T_full =
2.8000
T_part =
19.5500
d =
3.0140 - 0.2555i
ans =
3.0140 + 0.2555i
vk1=V(:,k+1); % 与 d 相同的特征向量应
V 的第 k+1 列。
vk1=vk1/norm(vk1);v=v/norm(v); % 向量
度归一。
V_err=acos(norm(vk1'*v))*180/pi % 求复数向量之间的夹角(度)。
D_err=abs(D(k+1,k+1)-d)/abs(d) % 求两个特征值间的相对误差。
V_err =
8.5377e-007
D_err =
7098e-010
5.3.2 特征值问题的条件数
【例 5.3.2 -1 】矩阵的代数方程条件数和特征值条件数。
B=eye(4,4);B(3,4)=1;B
format short e,c_equ=cond(B),c_eig=condeig(B)
B =
1 0 0 0
0 1 0 0
0 0 1 1
0 0 0 1
c_equ =
2.6180e+000
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.500000e-018.
> In E:\MAT53\toolbox\matlab\matfun\condeig.m at line 30
c_eig =
1.0000e+000
1.0000e+000
3.3333e+017
3.3333e+017
【 * 例 5.3.2 -2 】对亏损矩阵进行 Jordan 分解。
A=gallery(5) %MATLAB 设置的特殊矩阵,它具有五重特征值。
[VJ,DJ]=jordan(A); % 求出准确的特征值,使 A*VJ=VJ*D 成立。
[V,D,c_eig]=condeig(A);c_equ=cond(A);
DJ,D,c_eig,c_equ
A =
-9 11 -21 63 -252
70 -69 141 -421 1684
-575 575 -1149 3451 -13801
3891 -3891 7782 -23345 93365
1024 -1024 2048 -6144 24572
DJ =
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
0 0 0 0 0
D =
Columns 1 through 4
-0.0328 + 0.0243i 0 0 0
0 -0.0328 - 0.0243i 0 0
0 0 0.0130 + 0.0379i 0
0 0 0 0.0130 - 0.0379i
0 0 0 0
Column 5
0
0
0
0
0.0396
c_eig =
1.0e+010 *
2.1016
2.1016
2.0251
2.0251
1.9796
c_equ =
5.2133e+017
5.3.3 复数特征值对角阵与实数块特征值对角阵的转化
【 * 例 5.3.3 -1 】把例 5.3.1-1 中的复数特征值对角阵 D 转换成实数块对角阵,使 VR*DR/VR=A 。
[VR,DR]=cdf2rdf(V,D)
VR =
-0.7728 0.0527
0 0.6325
DR =
0.8333 2.4438
-2.4438 0.8333
5.3.4 矩阵的谱分解和矩阵函数
【 * 例 5.3.4 -1 】数组乘方与矩阵乘方的比较。
clear,A=[1 2 3;4 5 6;7 8 9];
A_Ap=A.^0.3 % 数组乘方
A_Mp=A^0.3 % 矩阵乘方
A_Ap =
1.0000 1.2311 1.3904
1.5157 1.6207 1.7118
1.7928 1.8661 1.9332
A_Mp =
0.6962 + 0.6032i 0.4358 + 0.1636i 0.1755 - 0.2759i
0.6325 + 0.0666i 0.7309 + 0.0181i 0.8292 - 0.0305i
0.5688 - 0.4700i 1.0259 - 0.1275i 1.4830 + 0.2150i
【 * 例 5.3.4 - 2 】标量的数组乘方和矩阵乘方的比较。( A 取自例 5.3.4-1 )
pA_A=(0.3).^A % 标量的数组乘方
pA_M=(0.3)^A % 标量的矩阵乘方
pA_A =
0.3000 0.0900 0.0270
0.0081 0.0024 0.0007
0.0002 0.0001 0.0000
pA_M =
2.9342 0.4175 -1.0993
-0.0278 0.7495 -0.4731
-1.9898 -0.9184 1.1531
【 * 例 5.3.4 -3 】 sin 的数组运算和矩阵运算比较。( A 取自例 5.3.4-1 )
A_sinA=sin(A) % 数组运算
A_sinM=funm(A,'sin') % 矩阵运算
A_sinA =
0.8415 0.9093 0.1411
-0.7568 -0.9589 -0.2794
0.6570 0.9894 0.4121
A_sinM =
-0.6928 -0.2306 0.2316
-0.1724 -0.1434 -0.1143
0.3479 -0.0561 -0.4602

[摘要]针对级进模排样的特点以及人...

您知道全球最小的机器人到底有多小呢。这么小的机器人到底有什么样的法宝呢。中国台湾...

前言 线切割加工通过电极丝与导电工件之间放电腐蚀成型来完成工件加工,由于是非接触加...

冶金装备是技术密集型和资金密集型企业,这些年来,中国冶金装备业快速发展,正是得益...

据测算,“十一五”期间及2020年前中国机械工业年均增速仍将达12%~15%,但机械工业各...