求实对称三对角矩阵的特征值和特征向量
- 格式:doc
- 大小:786.00 KB
- 文档页数:23
求实对称三对角矩阵的特征值和特征向量要求求解一个实对称三对角矩阵的特征值和特征向量。
在介绍如何求解之前,首先我们来了解一下实对称三对角矩阵的定义。
实对称三对角矩阵是指矩阵的非零元素主对角线上的元素为a,副对角线上的元素为b,而其他元素均为0。
可以表示为如下形式:[a1b100...0][b1a2b20...0][0b2a3b3...0][00b3a4...0][..................][ 0 0 0 ... bn-1 an ]下面我们将介绍如何求解实对称三对角矩阵的特征值和特征向量。
求解实对称三对角矩阵的特征值和特征向量有多种方法,其中一种常用的方法是通过迭代法,特别是Householder迭代法。
下面我们将介绍这种方法的主要步骤。
1. 首先,将实对称三对角矩阵转化为对称上Hessenberg矩阵。
对称上Hessenberg矩阵是一个具有类似三对角矩阵结构的对称矩阵。
2. 在转化得到的对称上Hessenberg矩阵上应用QR迭代,不断迭代直到矩阵的对角线元素基本上收敛于特征值。
3. 在每次QR迭代中,我们通过施密特正交化方法(Gram-Schmidt orthogonalization)来构建Q矩阵,然后计算出新的矩阵R,并将其与Q相乘,得到下一次迭代的矩阵。
4.在QR迭代的最后一步,我们得到了一个上三角矩阵,其对角线上的元素即为所求的特征值。
5. 然后,我们可以通过反复应用幂迭代法(power iteration method)来求解对应于这些特征值的特征向量。
幂迭代法是一种求解线性代数特征向量的数值方法。
通过上述方法,我们可以求解实对称三对角矩阵的特征值和特征向量。
这种方法具有较高的数值稳定性和计算效率,因此在实际求解中被广泛采用。
需要注意的是,在特征值和特征向量的计算过程中,可能会出现一些特殊情况。
比如矩阵中的主对角线元素不是严格递增或递减的时候,对于这种情况,我们需要进行一些额外的处理。
西京学院数学软件实验任务书课程名称数学软件实验班级数0901 学号0912020107 姓名李亚强实验课题对称三对角矩阵特征值的二分法实验目的熟悉对称三对角矩阵特征值的二分法运用Matlab/C/C++/Java/Maple/Mathematica等其中实验要求一种语言完成实验内容对称三对角矩阵特征值的二分法成绩教师实验十四实验报告一、实验名称:对称三对角矩阵特征值的二分法。
二、实验目的:熟悉对称三对角矩阵特征值的二分法。
三、实验要求:运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成程序设计。
四、实验内容:%对称三对角矩阵特征值的二分法program ex0001integer nreal x1,x2,x,f1,f2,fx,epsreal,allocatable::d(,e(write(*,*) "Please enter n:"read(*,*) nallocate(d(n),e(n-1))eps=1.0E-6fx=1.0do j=1,nd(j)=-2end dodo j=1,n-1e(j)=1end do!write(*,*) "Please enter array d and e:"!read(*,*) d,ea1=d(1)-e(1)a2=d(1)-2*e(1)a3=d(1)+e(1)a4=d(1)+2*e(2)y1=min(a1,a2)y2=max(a4,a3)y=(y2-y1)/nx1=y1x2=y1+ywrite(*,*)"矩阵的特征值为:" do m=1,ntemp=x210 if(abs(fx)>eps) thenx=(x1+x2)/2f1=MValue(x1,n,d,e)f2=MValue(x2,n,d,e)fx=MValue(x,n,d,e)if (fx*f1>0) thenx1=xelsex2=xend ifgo to 10end ifprint*,"--------------------"write(*,*) xx1=tempx2=temp+yz=(x1+x2)/2fx=MValue(z,n,d,e)end doprint*,"--------------------" containsreal function mValue(x,n,d,e) Integer n,ireal xreal d(n),e(n-1),s(n)S(1)=x-d(1)S(2)=(x-d(1))*(x-d(2))-e(1)**2Do i=3,nS(i)=(x-d(i))*s(i-1)-e(i-1)**2*s(i-2) End domValue=s(n)returnEnd function mValueend。
三阶对称矩阵求特征值例题下面是一个求解三阶对称矩阵的特征值的例题:例题:已知对称矩阵A = [1 2 3][2 4 5][3 5 6]求矩阵A的特征值和特征向量。
解答:首先,我们需要求解特征值。
设A的特征值为λ,特征向量为x。
根据特征值的定义,有Ax = λx。
根据矩阵乘法的定义,我们可以将上式改写为 (A - λI)x = 0,其中I是单位矩阵。
解这个齐次线性方程组可以得到特征向量。
对于一个3阶矩阵,我们需要求解一个3阶的特征多项式来得到特征值。
特征多项式的形式为 det(A - λI) = 0,即行列式等于零。
对于矩阵A,我们可以写出它的特征多项式:det(A - λI) = det([1-λ 2 3][2 4-λ 5][3 5 6-λ])根据行列式的计算,我们可以将其展开为λ的三次方程式,即:(1-λ)((4-λ)(6-λ)-(5)(5)) - (2)((2)(6-λ)-(5)(3)) + (3)((2)(5)-(4-λ)(3))= 0化简上式,我们得到特征多项式为:λ^3 - 11λ^2 + 21λ - 9 = 0由此可得特征方程的根,即特征值λ为1,2,3。
接下来,我们需要求解每个特征值对应的特征向量。
对于每一个特征值,我们将其代入方程(A - λI)x = 0,并解这个齐次线性方程组。
1. 对于特征值λ=1,我们有方程组(A - λI)x = (0 0 0):[1-1 2 3] [x₁] [0][2 4-1 5] [x₂] = [0][3 5 6-1][x₃] [0]化简方程组,我们得到:[0 2 3] [x₁] [0][3 5 5] [x₃] [0]通过高斯消元法或其他方法,我们可以解得x₁= 1,x₂= -1,x₃ = 1。
所以,当λ=1时,特征向量x = [1 -1 1]。
2. 对于特征值λ=2,我们有方程组(A - λI)x = (0 0 0):[1-2 2 3] [x₁] [0][2 4-2 5] [x₂] = [0][3 5 6-2][x₃] [0]化简方程组,我们得到:[-1 2 3] [x₁] [0][2 2 5] [x₂] = [0][3 5 4] [x₃] [0]通过高斯消元法或其他方法,我们可以解得x₁= 1,x₂= -3,x₃ = 2。
求解实对称三对角矩阵特征值的二分法
成礼智;童丽
【期刊名称】《应用数学》
【年(卷),期】1997(10)3
【摘要】本文利用2×2阶实对称矩阵特征值的计算,并以秩—1修正为基础,通过建立一种二分模式,得到了计算n除实对称三对角矩阵所有特征值的新方法.结果表明,当要求所有特征值时,本文方法优于QR方法。
由于算法过程中数据的不相关性,本文方法具有很好的并行性,尤其适合于MIMD并行实现。
【总页数】4页(P15-18)
【关键词】特征值;二分法;并行算法;实对称矩阵;三对角矩阵
【作者】成礼智;童丽
【作者单位】国防科技大学
【正文语种】中文
【中图分类】O241.6
【相关文献】
1.对求解对称三对角矩阵特征值区间分半法的探讨 [J], 韦增欣;覃炜达;杨志梅
2.求解对称三对角矩阵特征值问题的一种新算法 [J], 罗晓广;李晓梅
3.对求解对称三对角矩阵特征值区间分半法的探讨 [J], 韦增欣;覃炜达;杨志梅
4.解大规模对称三对角矩阵特征值问题的并行二分法 [J], 罗晓广;李晓梅
5.实对称阵的三对角化与二分法求特征值的结构优化算法 [J], 张乃敏
因版权原因,仅展示原文概要,查看原文内容请购买。
Householder QR法求实对称矩阵特征值和特Householder+QR法求实对称矩阵特征值和特征向量(C程序代码)2010-12-01 10:29嗯,上一个雅可比法求n xn实对称矩阵的特征值和特征向量,是很有限制的。
虽然这个方法可靠,精度好,但是对于高于十几阶的矩阵,它就显得力不从心了,因为收敛速度比较慢。
所以对于高阶的实对称阵的特征值和特征向量的求解,目前用得比较多的还是先Householder法把对称阵变成"三对角阵",再用QR法求取特征值。
因为赶工的原因,这两个程序我没有亲自动手写(众:怎么每次都这么多理由捏)。
这里就顺便推荐一本书:《常用算法程序集(C语言描述)》,清华大学出版社出版。
这本书的内容比较广,虽然原理上讲得不详细,但是对于赶工的程序员来说那是一条不错的捷径。
有点可惜的是此书的代码写得比较凌乱,可读性极其糟糕,有空的话(又要等"有空")某U很想把里面的代码再改写封装一下…因为实在是太实用了…为了表示对作者的尊敬,这里贴出来的代码除了函数名之外,对内容就不作修改了。
#include stdlib.h#include math.h typedef double mydouble;int qr(int n,mydouble*b,mydouble*c,mydouble*q,mydouble eps,int l){int i,j,k,m,it,u,v;mydouble d,f,h,g,p,r,e,s;c[n-1]=0.0;d=0.0;f=0.0;for(j=0;j=n-1;j++){it=0;h=eps*(fabs(b[j])+fabs(c[j]));if(h d)d=h;m=j;while((m=n-1)&&(fabs(c[m])d))m++;if(m!=j){do{if(it==l)return 1;it=it+1;g=b[j];p=(b[j+1]-g)/(2.0*c[j]);r=sqrt(p*p+1.0);if(p=0.0)b[j]=c[j]/(p+r);else b[j]=c[j]/(p-r);h=g-b[j];for(i=j+1;i=n-1;i++)b[i]=b[i]-h;f=f+h;p=b[m];e=1.0;s=0.0;for(i=m-1;i=j;i--){g=e*c[i];h=e*p;if(fabs(p)=fabs(c[i])){e=c[i]/p;r=sqrt(e*e+1.0);c[i+1]=s*p*r;s=e/r;e=1.0/r;}else{e=p/c[i];r=sqrt(e*e+1.0);c[i+1]=s*c[i]*r;s=1.0/r;e=e/r;}p=e*b[i]-s*g;b[i+1]=h+s*(e*g+s*b[i]);for(k=0;k=n-1;k++){u=k*n+i+1;v=u-1;h=q[u];q[u]=s*q[v]+e*h;q[v]=e*q[v]-s*h;}}c[j]=s*p;b[j]=e*p;}while(fabs(c[j])d);}b[j]=b[j]+f;}for(i=0;i=n-1;i++){k=i;p=b[i];if(i+1=n-1){j=i+1;while((j=n-1)&&(b[j]=p)){ k=j;p=b[j];j=j+1;}}if(k!=i){b[k]=b[i];b[i]=p;for(j=0;j=n-1;j++){u=j*n+i;v=j*n+k;p=q[u];q[u]=q[v];q[v]=p;}}}return 0;}void householder(mydouble*a,int n,mydouble*q,mydouble*b,mydouble*c){int i,j,k,u;mydouble h,f,g,h2;for(i=0;i=n-1;i++){for(j=0;j=n-1;j++){u=i*n+j;q[u]=a[u];}}for(i=n-1;i=1;i--){h=0.0;if(i 1){for(k=0;k=i-1;k++){u=i*n+k;h=h+q[u]*q[u];}}if(h+1.0==1.0){c[i]=0.0;if(i==1)c[i]=q[i*n+i-1];b[i]=0.0;}else{c[i]=sqrt(h);u=i*n+i-1;if(q[u]0.0)c[i]=-c[i];h=h-q[u]*c[i];q[u]=q[u]-c[i];f=0.0;for(j=0;j=i-1;j++){q[j*n+i]=q[i*n+j]/h;g=0.0;for(k=0;k=j;k++)g=g+q[j*n+k]*q[i*n+k];if(j+1=i-1){for(k=j+1;k=i-1;k++)g=g+q[k*n+j]*q[i*n+k];}c[j]=g/h;f=f+g*q[j*n+i];}h2=f/(h+h);for(j=0;j=i-1;j++){f=q[i*n+j];g=c[j]-h2*f;c[j]=g;for(k=0;k=j;k++){u=j*n+k;q[u]=q[u]-f*c[k]-g*q[i*n+k];}}b[i]=h;}}for(i=0;i=n-2;i++)c[i]=c[i+1];c[n-1]=0.0;b[0]=0.0;for(i=0;i=n-1;i++){if((b[i]!=0.0)&&(i-1=0)){for(j=0;j=i-1;j++){g=0.0;for(k=0;k=i-1;k++)g=g+q[i*n+k]*q[k*n+j];for(k=0;k=i-1;k++){u=k*n+j;q[u]=q[u]-g*q[k*n+i];}}}u=i*n+i;b[i]=q[u];q[u]=1.0;if(i-1=0){for(j=0;j=i-1;j++){q[i*n+j]=0.0;q[j*n+i]=0.0;}}}}参数说明:void householder(mydouble*a,intn,mydouble*q,mydouble*b,mydouble*c);a-n xn实对称矩阵,用线性的方法存储(嗯,其实静态数组就是这样的)。
矩阵特征值及特征向量计算例程1.1.1 乘幂法例程该程序是用乘幂法计算实矩阵按模最大实特征值的C语言程序。
运行该程序时可根据提示按行输入(阶数小于等于100的)实矩阵,程序输出矩阵按模最大实特征值及特征向量。
1. 说明:(1)该程序计算阶数小于等于100的实矩阵的按模最大特征值及特征向量。
(2)当矩阵阶数大于100时(如120),则只要修改程序行:double m,lm,mk,e,A[101][101], x[101] ,y[101];中101为121既可。
(3)只有当矩阵的按模最大特征值为实数时,程序有效。
(4)在按模最大特征值为实数的情况下,如果程序失败,则应适当调整误差限或最大迭代次数。
2. 乘幂法例程源代码#include <stdio.h>#include <math.h>void main(){float s,m,lm,mk,e,A[101][101], x[101] ,y[101];int n, i,j,k ,nn;printf("请输入矩阵的阶数(小于等于100)n:\n");scanf("%d",&n);for(i=1;i<=n;i++){printf("请输入矩阵的第%d行:\n",i);for(j=1;j<=n;j++)scanf("%f",&A[i][j]);}printf("请输入最大迭代次数nn:\n");scanf("%d",&nn);printf("请输入误差限e:\n");scanf("%f",&e);printf("请输入初始向量x[i]:\n");for(i=1;i<=n;i++)scanf("%f",&x[i]);printf("正在进行计算,请等待\n");k=0; mk=0;do{k=k+1;lm=mk;mk=0;for(i=1;i<=n;i++)if (fabs(x[i]>mk))mk=x[i];for(i=1;i<=n;i++){s=0;for(j=1;j<=n;j++)s=s+A[i][j]*x[j];y[i]=s;}for(i=1;i<=n;i++){s=0;for(j=1;j<=n;j++)s=s+A[i][j]*y[j];x[i]=s/mk;}}while ((fabs(lm-mk)>e)&&(k<nn));if (k>=nn){printf("超出最大迭代次数仍不满足误差要求,计算失败!\n"); return;}else{m=0;lm=0;for(i=1;i<=n;i++){if (fabs(y[i]>m))m=y[i];if (fabs(x[i]>lm))lm=x[i];}s=m/fabs(m)*sqrt(lm);printf("按模最大特征值为:%f\n",s);printf("对应的特征向量为:\n");for(i=1;i<=n;i++){x[i]=(y[i]/(s*s*s)+x[i]/(s*s))/2;printf("%f\n",x[i]);}}}1.1.2 化实对称矩阵为三对角矩阵例程该程序是用Househoulder变换将对称矩阵化为对称三对角矩阵的C语言程序。
求实对称三对角矩阵的特征值和特征向量(一)摘要在特征值计算问题上,QR方法具有里程碑意义。
QR 方法是一种变换方法,是计算一般矩阵(中小型矩阵)全部特征值问题的最有效方法之一。
QR方法具有收敛快,算法稳定等特点.由于特征值和特征向量能从本质上揭露矩阵的某些重要性质,因而得到它们的精确解十分重要,但其计算一直是很繁琐的数学问题。
特别是当矩阵的阶数较高时,计算量非常大,且不易求其精确解。
关键词:特征值;特征向量;QR分解Solve Real Symmetry Three Diagonal Matrix Eigenvalue AndEigenvectorABSTRACTValues in the feature, the QR method has milepost sense. QR method is a transformation method, is the calculation of the general matrix ( small and medium-sized matrix ) one of the most effective methods of eigenvalue problems. The QR method has fast convergence, algorithm stability. Because the eigenvalues and eigenvectors can reveal some important properties of matrix from the nature, and thus obtain their exact solutions is very important, but the calculation is very complicated mathematical problems. Especially when the high rank of matrix, the calculation is very large, and is not easy to find the exact solution.Key words:eigenvalue; eigenvector; QR decomposition目录1 绪论 (1)1.1 问题重述 (1)1.2研究方法 (1)2 QR方法 (3)2.1 QR分解的概念 (3)2.2 Givens方法 (3)2.3豪斯霍尔德方法(镜像变换) (5)2.2.1 Householder 矩阵和Householder变换 (5)2.2.2QR算法 (6)3 QR算法C实现过程 (8)3.1主要参数 (8)3.2组成模块 (8)3.3程序改错 (8)4 测试运行 (11)参考文献……………………………………………………………………………….…….. 附录…………………………………………………………………………….……………..1 绪论1.1 问题重述(1)用你所熟悉的计算机语言编制利用QR 方法求实对称三对角矩阵全部特征值和特征向量的通用子程序。
对称三对角矩阵特征值下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help yousolve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts,other materials and so on, want to know different data formats and writing methods, please pay attention!对称三对角矩阵是一种特殊的矩阵形式,具有许多独特的性质和特征。
用割线法迭代求解对称三对角矩阵特征值问题割线法是一种用于求解对称三对角矩阵特征值问题的迭代方法,它有效利用矩阵的对称性,以及三对角结构,大大减少了计算量。
割线法的原理是将对称三对角矩阵A按照行(或列)分解为无关子矩阵,通过改变矩阵A中的某些元素使之满足一定条件,然后再将矩阵A求解。
割线法的关键在于如何改变矩阵A中的元素。
割线法的思想是用一条割线将三对角矩阵A分割为上下两部分,并将矩阵A中的元素分别改变。
改变的方式是在矩阵A的上半部分中,将每一行中的元素加上割线处元素的值;在矩阵A的下半部分中,将每一行中的元素减去割线处元素的值,这样矩阵A就满足了一定的条件。
割线法的步骤是:1、将原来的对称三对角矩阵A分割为上下两部分,并将矩阵A中的元素分别改变;2、在矩阵A的上半部分中,将每一行中的元素加上割线处元素的值;3、在矩阵A的下半部分中,将每一行中的元素减去割线处元素的值;4、用新生成的矩阵替换原来的矩阵,计算新矩阵的特征值;5、如果计算出来的特征值满足要求,则停止求解;如果不满足要求,则重复步骤1-4,直到求得满足要求的特征值为止。
以上是割线法迭代求解对称三对角矩阵特征值问题的基本步骤,但如何选择割线位置,以及如何改变矩阵A中的元素才能使矩阵A满足一定的条件,就是割线法的关键问题了。
一般而言,割线位置的选择应该尽可能在矩阵A的主对角线上,这样可以简化计算量,提高计算效率。
而在改变矩阵A中的元素时,应注意保持矩阵A的对称性,以及尽可能使主对角线上的元素不变。
割线法迭代求解对称三对角矩阵特征值问题,其优点在于:一是它有效利用了矩阵的对称性,以及三对角结构,大大减少了计算量;二是它可以在每一次迭代后返回一个新的特征值,从而可以更快地收敛。
但割线法也有缺点,如:一是即使矩阵A在每一次迭代后都满足割线法的要求,也不能保证从这个新矩阵中求出的特征值是最精确的,这可能会导致最终求出的特征值和实际的特征值存在一定的差距;二是由于割线法需要迭代,当矩阵A较大时,可能会耗费较多时间。
西安理工大学学报JOURNAL OF XI'AN UNIVERSITY OFTECHNOLOGY1999年第15卷第3期Vol.15No.31999三阶实对称矩阵特征值与特征向量的计算机实现郭俊杰田世杰封定廖勇摘要:提出一种通用的关于求解一般三阶实对称矩阵特征值与特征向量的快速直接计算方法。
首先使用高精度缩根法求出所给矩阵的特征方程,得到了3个特征根(包括重根)。
其次运用选主元与最小二乘法相结合的思想,获得了实际运用中较为理想的每个特征根所对应的全部特征向量。
关键词:特征值;特征向量;主元;最小二乘法中图分类号:TB931O241.6文献标识码:AThe Computer Method of Eigenvalues and Eigenvectorsof 3×3 Real Symmetric MatricesGUO Jun-jie,TIAN Shi-jie,FENG Ding, LIAO Yong(Xi’an University of Technology, Xi’an 710048, China)Abstract:This paper suggests a common computation method, i.e. the solution eignvalues and eigenvectors of 3×3 real symmetric matrices. First, the characteristic equation of the matrix are obtained by using the method of highly accurate reduced root so as to achieve three eigenvalues (including heavy root). Second, all the eigenvectors of each eigenvalue which are more ideal for the purpose of accurate scientific computation are obtained by using the thought of combining of the pivote with the method of minimum squares. Key words: eigenvalue; eigenvector; pivot; method of minimum squares矩阵的特征值与特征向量是十分重要的概念。
求实对称三对角矩阵的特征值和特征向量(一)摘要在特征值计算问题上,QR方法具有里程碑意义。
QR 方法是一种变换方法,是计算一般矩阵(中小型矩阵)全部特征值问题的最有效方法之一。
QR方法具有收敛快,算法稳定等特点.由于特征值和特征向量能从本质上揭露矩阵的某些重要性质,因而得到它们的精确解十分重要,但其计算一直是很繁琐的数学问题。
特别是当矩阵的阶数较高时,计算量非常大,且不易求其精确解。
关键词:特征值;特征向量;QR分解Solve Real Symmetry Three Diagonal Matrix Eigenvalue AndEigenvectorABSTRACTValues in the feature, the QR method has milepost sense. QR method is a transformation method, is the calculation of the general matrix ( small and medium-sized matrix ) one of the most effective methods of eigenvalue problems. The QR method has fast convergence, algorithm stability. Because the eigenvalues and eigenvectors can reveal some important properties of matrix from the nature, and thus obtain their exact solutions is very important, but the calculation is very complicated mathematical problems. Especially when the high rank of matrix, the calculation is very large, and is not easy to find the exact solution.Key words:eigenvalue; eigenvector; QR decomposition目录1 绪论 (1)1.1 问题重述 (1)1.2研究方法 (1)2 QR方法 (3)2.1 QR分解的概念 (3)2.2 Givens方法 (3)2.3豪斯霍尔德方法(镜像变换) (5)2.2.1 Householder 矩阵和Householder变换 (5)2.2.2QR算法 (6)3 QR算法C实现过程 (8)3.1主要参数 (8)3.2组成模块 (8)3.3程序改错 (8)4 测试运行 (11)参考文献……………………………………………………………………………….…….. 附录…………………………………………………………………………….……………..1 绪论1.1 问题重述(1)用你所熟悉的计算机语言编制利用QR 方法求实对称三对角矩阵全部特征值和特征向量的通用子程序。
(2)利用你所编制的子程序求如下矩阵(从70到80阶)⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=4114114114 A (1.1) 的全部特征值和特征向量。
1.2研究方法在特征值计算问题上,QR 方法具有里程碑意义。
在1955年的时候,人们还觉得特征值的计算是十分困扰的问题,到1965年它的计算——基于QR 方法的程序已经完全成熟。
直到今天QR 方法仍然是特征值计算的有效方法之一。
设A 是n n ⨯阶矩阵,如果数λ和n 维非零向量x 满足x Ax λ= (1.2)则λ称为矩阵A 的一个特征值,x 称为矩阵A 的属于λ的特征向量。
由于特征值和特征向量能从本质上揭露矩阵的某些重要性质,因而得到它们的精确解十分重要,但其计算一直是很繁琐的数学问题。
特别是当矩阵的阶数较高时,计算量非常大,且不易求其精确解。
故在工程技术上,计算矩阵的特征值和特征向量主要使用数值解法,得到其在某一精度水平上的近似解。
常用的算法有:幂法、反幂法、Jacobi 方法和QR 方法。
通过这次课程设计实现用QR 方法求解实对称三对角矩阵的全部特征值和特征向量。
QR 方法是一种变换方法,是计算一般矩阵(中小型矩阵)全部特征值问题的最有效方法之一。
QR 方法具有收敛快,算法稳定等特点.对矩阵A 进行拟上三角化得到)1(-n A 后,使用带双步位移的QR 方法的迭代公式为:k k T k k k k k k k k k n Q A Q A QR M R Q M tIsA A M A A ==+-==+-12)1(1)( 分解作对 (1.3)2 QR 算法应用2.1 QR 分解的概念定理1.1[1]如果实(复)非奇异矩阵A 能化成正交矩阵Q 与实非奇异上三角矩阵R 的乘积, 即=QR A (2.1) 则称式(2.1)是A 的QR 分解。
引理1.1 任何实的非奇异n 阶矩阵A 可以分解成正交矩阵Q 和上三角矩阵R 的乘积,且除去相差一个对角线元素之绝对值全等于1的对角矩阵因子D 外,分解式(2.1)是唯一的。
定理1.2[1]设A 为m n ⨯复矩阵(m n ≥),且n 个列向量线性无关,则A 具有分解R U A = (2.2)其中U 是m n ⨯复矩阵,且满足H U U =I ,R 是n 阶复非奇异上三角矩阵,且除去相差一个对角元素的模全为1的对角矩阵因子外,分解式(2.2)唯一的。
2.2 Givens 方法我们知初等旋转变换的性质,即用ij R 在乘矩阵A 时,仅影响A 的第i 行和第j 行,且选适当的ij R ,就可以消去A 的一个非零元素。
一般地说,作一次旋转可以消去一个非零元素。
如果在作下一次旋转时不会影响前面已化为零的元素,即不会重新又变成非零,那么,借助于初等旋转矩阵将A 约化成上三角矩阵就有希望。
在平面解析几何中,将向量x 沿顺时针旋转角度θ后变为向量y 时的旋转变换为cos sin sin cos y x Tx θθθθ⎛⎫== ⎪-⎝⎭ (2.3)由于旋转变换不改变向量的模,即2222Tx x =, (2.4)此即,,Tx Tx x x <>=<>,所以T 是正交变换,从而T 是正交矩阵,且det 1T =-。
(2.5)一般地说,在n 维欧氏空间nR 中引入旋转变换如下。
定义1.2[2] 设实数c 与s 满足221c s += ,称 11111ij c s T s c ⎛⎫ ⎪ ⎪ ⎪ ⎪⎪ ⎪= ⎪- ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭()i j < (2.4)为Givens 矩阵(或初等旋转矩阵(Elementary Rotation Matrix )),有时也记为(,)ij ij T T c s =,由Givens 矩阵所确定的线性变换称为Givens 变换(或初等旋转变换(Elementary Rotation Transformation )).当221c s +=时,必有角度θ,使得cos ,sin c s θθ==性质1.2.1[2] Givens 矩阵是正交矩阵且有1[(,)][(,)](,)T ij ij ij T c s T c s T c s -==- (2.5) det[(,)]1ij T c s = (2.6)性质1.2.2[2] 设1212(,,...,),(,,...,)T Tn ij n x y T x εεεηηη=== 则有(,)i i j j j k k c s s c k i j ηεεηεεηε=+⎧⎪=-+⎨⎪=≠⎩ (2.7)式(2.7)表明,当220i j εε+≠ 时,选取第i 行 第j 行2222ii j i j c s εεεεε==++ (2.8)就可使220,0i i j j ηεεη=+>=。
(2.9)定理1.3[2] 设12(,,...,)0T n x εεε=≠,则存在有限多个Givens 矩阵的乘积,记为T ,使得12Tx x e =,其中1(1,0,...,0)T e 。
(2.10) 推论1[2].设非零向量n x R ∈及单位列向量n z R ∈ ,则存在有限多个Givens 矩阵的乘积,记为T ,使得 2Tx x z =。
(2.11)2.3豪斯霍尔德方法 (镜像变换)2.3.1 Householder 矩阵 和Householder 变换定义3.1[2] 设n u R ∈,且21u = 称2T I uu H =- (2.12)为Householder 矩阵(或初等反射矩阵(Elementary Reflection Matrix )),由Householder 矩阵所确定的初等变换称为Householder 变换(或初等反射变换((Elementary Reflection Transformation )).Householder 矩阵具有如下性质:(1)T H =H (对称矩阵);(2)T I H H = (正交矩阵);(3)2I H = (对合矩阵);(4)1-H =H (自逆矩阵);(5)det 1H =-使用式(2.12)可直接验证性质(1)到性质(4)设3u R ∈ 为一个单位列向量,s 是过原点且与u 垂直的平面,312,R νννν∀∈=+,其中12,s s νν∈⊥ ,则11112T uu ννννH =-=,(因为u s ⊥ ,而1s ν∈ ,故1u ν⊥ ,从而10T u ν=) 2222222222()2()2T T T uu uu ku ku u u ννννννννH =-=-=-=-=-(因为u s ⊥,故u s ⊥∈ ,而2s ν⊥∈,故2ν与u 平行,从而2ku ν=)。
这样ν经变换后的镜像νH 是ν关于s 对称向量1212νννννH =H +H =- 。
(6)nx R ∀∈ ,记y x =H ,则有 2()2()T T y x x uu x x u x u =H =-=- (2.13) T T T T y y x x x x =H H = (2.14)式(2.13)第二个等号成立的理由是矩阵乘法满足结合律,而T u x 为实数。
式(2.14)表明222y x x =H = 。
定理1.4[2] 设n x R ∈为非零列向量 ,n z R ∈ 为单位列向量,则存在Householder 矩阵H ,使得2x x zH = 。
2.3.2 QR 算法假设A 为非奇异矩阵,则由定理1.1知A 有QR 分解,先说QR A =令1A =A ,对1A 作QR 分解,得交换1Q 与1R 的次序 ,得211Q R A =再将2A 作QR 分解 ,得222Q R A =又交换2Q 与2R 的次序 ,得111Q R A =322R Q A =如此反复作下去,得迭代序列{}k A 如下11Q R (1,2,...)Q k k k k k k k R +A =A ⎧⎪A ==⎨⎪A =⎩ (2.15)称式(2.15)为矩阵A 的QR 算法(Algorithm ) 由式(2.15)易知 ,1Q k k k R -=A ,故11Q Q k k k k -+A =A ,这表明矩阵序列{}k A 中任何两个相邻矩阵都是相似的,从而每个k A 都与矩阵A 相似。