作业六6-1 试验目的计算特征值,实现算法试验内容:随机产生一个10 阶整数矩阵,各数均在-5 和 5 之间
(1)用 MATLAB函数“ eig”求矩阵全部特征值
(2)用幂法求 A 的主特征值及对应的特征向量
(3)用基本 QR 算法求全部特征值(可用MATLAB函数“ qr”实现矩阵的QR 分解)
原理幂法: 设矩阵 A 的特征值为12n||>||||并设 A 有完全的特征向量系12,,,n (它们线性无关 ),则对任意一个非零向量0nVR 所构造的向量序列1kkVAV有11()lim()kjkkjVV,其中()kjV表示向量的第j 个分量
为避免逐次迭代向量kV 不为零的分量变得很大(1|| 1 时)或很小(1|| 1 时),将每一步的kV 按其模最大的元素进行归一化
具体过程如下:选 择 初 始 向 量0V, 令1max(),,,1kkkkkkkVmVUVAUkm, 当 k 充 分 大 时1111,max()max()kkUV
QR 法求全部特征值:11111222111,1,2,3,kkkkkAAQRR QAQRkRQAQR由于此题的矩阵是10 阶的,上述算法计算时间过长,考虑采用改进算法——移位加速
迭代格式如下:1kkkkkkkkAq IQ RAR Qq I计算kA 右下角的二阶矩阵( )( )1,11,()(),1,kknnnnkkn nn naaaa的特征值( )( )1,kknn,当( )()1,kknn为实数时,选kq 为()()1,kknn中最接近( ),kn na的
程序A=-5+round(10*rand(10));[V,D]=eig(A)[lamda u]=lab6_2_power(A,[1;1;1;1;1;1;1;1;1;1],10^(-5),1000)d=lab6_3_qr2(A,10^(-5))function [lamda u]=la