并行计算-矩阵特征值计算 -
矩阵特征值计算

矩阵特征值计算
1 矩阵特征值计算
矩阵特征值计算是数学分析中一种重要的概念,它与矩阵的属性
密切相关。
一般情况下,矩阵特征值是指与矩阵有关的实值函数。
它
可以提供有关矩阵行列式和特征向量的有关信息。
矩阵特征值计算的定义为:设A是m×n的实矩阵,若存在一个实
数λ,使得A的每个元素都等于λ的倍数,则称λ为A的特征值(eigenvalue)。
所有不同的特征值构成A的特征值多项式,即特征
多项式的多项式,由
λ ^ n+λ ^ (n-1)+...+λ ^ 1+λ ^ 0
组成。
这里λ重复出现n次,证明A有n个线性无关的特征向量。
特征值是矩阵分析中最重要的因素。
一个矩阵的特征值有助于分
析数学问题,特别是矩阵和相对应的特征向量,以及A的分解及A的秩。
特征值及其特征向量也有助于我们解决具体问题,如求解最大值、最小值、最优解等。
计算矩阵特征值一般有两种方法:一种是近似方法,即迭代法;
另一种是精确方法,即行列式法和特征多项式法。
迭代法可以快速求
得与原矩阵几乎相等的特征值,但精确的特征值只能通过行列式法和
特征多项式法求出。
由于矩阵特征值的重要性,众多学者和研究者致力于提出更好的特征值计算方法。
而在数学和计算机科学领域,研究者更多地关注矩阵特征值,研究其计算方法和性能,以求取更好的计算效率提高计算精度。
矩阵特征值求解

矩阵特征值求解的分值算法12组1. 1矩阵计算的基本问题(1) 求解线性方程组的问题.即给定一个n 阶非奇异矩阵A 和n 维向量b ,求 一个n 维向量X,使得Ax =b (1.1.1 )(2) 线性最小二乘问题,即给定一个mx n 阶矩阵A 和m 维向量b ,求一个n 维向量使得 |A X -b | =min{ |Ay -比严 R n }(3) 矩阵的特征问题,即给定一个n 阶实(复)矩阵A ,求它的部分或全部特 征值以及对应的特征向量,也就是求解方程Ax = Z xA 的属于特征值A 的特征向量。
在工程上,矩阵的特征值具有广泛的应用,如大型桥梁或建筑物的振动问题: 机械和机件的振动问题;飞机机翼的颤振问题 ;无线电电子学及光学系统的电磁 振动问题;调节系统的自振问题以及声学和超声学系统的振动问题 .又如天文、地 震、信息系统、经济学中的一些问题都与矩阵的特征值问题密切相关。
在科学上,计算流体力学、统计计算、量子力学、化学工程和网络排队的马 尔可夫链模拟等实际问题,最后也都要归结为矩阵的特征值问题.由于特征值问 题在许多科学和工程领域中具有广泛的应用,因此对矩阵的特征值问题的求解理 论研究算法的开发软件的制作等是当今计算数学和科学与工程计算研究领域的 重大课题,国际上这方面的研究工作十分活跃。
1.2矩阵的特征值问题研究现状及算法概述对一个nxn 阶实(复)矩阵A,它的特征值问题,即求方程(I.1.3)式的非平凡 解,是数值线性代数的一个中心问题.这一问题的内在非线性给计算特征值带来 许多计算问题.为了求(1.1.3)式中的A , —个简单的想法就是显式地求解特征方 程det(A —几I) = 0除非对于个别的特殊矩阵,由于特征方程的系数不能够用稳定的数值方法由 行列式的计算来求得,既使能精确计算出特征方程的系数,在有限精度下,其特征 多项式f ") =det(A-ZJ)的根可能对多项式的系数非常敏感 能在理论上是有意义的,实际计算中对一般矩阵是不可行的 数较大,则行列式det(A -几I)的计算量将非常大;其次,根据 数大于四的多项式求根不存在一种通用的方法 ,基于上述原因,人们只能寻求其 它途径.因此,如何有效地!精确地求解矩阵特征值问题,就成为数值线性代数领 域的一个中心问题.目前,求解矩阵特征值问题的方法有两大类:一类称为变换方法,另一类称为 向X,(1.1.2 )(1.1.3 ) 一对解(4 X),其中R(C),x- R n (C n ),即A 为矩阵A 的特征值,X 为矩阵(121 ).因此,这个方法只 .首先,若矩阵A 的阶 Galois 理论,对于次量迭代方法.变换方法是直接对原矩阵进行处理,通过一系列相似变换,使之变换成一个易于求解特征值的形式,如Jacobi算法,Givens算法,QR算法等。
基于GPU的多项式矩阵特征值并行计算

基于GPU的多项式矩阵特征值并行计算
杨智诚;黄友钦;傅继阳
【期刊名称】《中国科技论文》
【年(卷),期】2016(011)008
【摘要】以多项式矩阵特征值求解问题为背景,推导任意项式特征值计算方法,阐述了基于图形处理单元(GPU)的并行计算机理并建立Matlab快速并行计算平台。
以二次特征值计算为例,分别测试基于GPU的单精度类型计算与双精度类型计算的效率与误差,同时验证公式的正确性。
数值计算表明,单精度计算与双精度计算能够大幅度降低计算时间,提高计算效率,误差对比分析也表明GPU的计算结果能够满足一定的工程计算要求。
【总页数】4页(P957-960)
【作者】杨智诚;黄友钦;傅继阳
【作者单位】广州大学工程结构抗风与结构安全国际科技合作基地,广州510006【正文语种】中文
【中图分类】TU311.1
【相关文献】
1.大型矩阵特征值问题并行计算研究概况 [J], 李晓梅;罗晓广
2.一类特殊矩阵特征值的并行计算 [J], 尹小红
3.在PVM上并行计算实对称三对角矩阵特征值 [J], 罗晓广;李晓梅
4.基于 GPU 的多项式矩阵特征值并行计算 [J], 杨智诚;黄友钦;傅继阳
5.CPU-OpenMP和GPU-CUDA并行计算技术对矩阵乘法运算的加速效果分析[J], 张岩
因版权原因,仅展示原文概要,查看原文内容请购买。
并行算法在矩阵计算中的应用研究

2并行计算机理论基础
(2)阵列处理机阵列处理机通常系由一个控制单元CU(Control Unit)、n个处理单 元PE(Processing Element)、M个存储模块M和一个互连网络1N(Intercormection Network) 所组成。CU将单一指令(单指令流)播送至各个PE,而所有活动的PE将从相应的M中 取出各自所需的数据元素(多数据流),以同步的方式执行该条指令。在阵列机中,IN也 常叫做对准(Alignmem)或置换(Permutation)网络,它用来提供各PE之间或PE与M之 间的通信连接。
studied the matrix multipHcmion parallel processing techniques in distributed
environment.We analyzed the parallei algorithm for matrix multit)lication in MIMD,
1绪论
用。主要分为三个大的部分。 第一部分:对并行处理机和并行处理技术进行了概述。介绍了并行算法的基本概念和
相关的评价指标。 第二部分:研究了矩阵乘法在分步式处理机上的并行处理技术。在原有Strassen算法
和Winograd算法的基础上,提出了对SIMD.Lc结构的并行机,可适用的按行分块的并行 处理算法,给出了算法的实现步骤,并且分析了该算法的加速比。对MIMD上的矩阵乘法 的并行算法进行了分析,进一步分析了算法的可扩展性和并行处理的效率。
2.2.1 SISD型计算机
目前所设计和建造的大多数计算机都是这类机器,它不属于并行机,而属于传统的 串行计算机。它有两种非常重要的特征:串行的和确定的。
2.2.2 SIMD型并行机
矩阵特征值分解算法的并行实现

矩阵特征值分解算法的并行实现特征值分解(Eigenvalue Decomposition)是线性代数中的一个重要概念,广泛应用于数学、物理、工程等领域。
以矩阵的特征值和特征向量为基础,可以提取出矩阵的结构信息,对于解决线性系统、优化问题、信号处理等具有重要意义。
然而,传统的特征值分解算法在处理大规模矩阵时面临计算量巨大、执行时间长的问题。
为了加速特征值分解的计算过程,研究者们逐渐引入并行计算的思想,对矩阵特征值分解算法进行并行实现。
一、并行计算的概述并行计算是指将一个复杂的计算任务划分成多个小任务,通过多个处理单元同时进行计算,从而提高计算效率的一种方法。
在特征值分解算法中,通过合理划分矩阵的计算任务,并行计算可以有效降低计算时间。
二、传统特征值分解算法传统特征值分解算法主要有幂法、QR方法等。
幂法通过迭代矩阵的特征向量来逼近最大特征值,并进一步得到特征向量。
QR方法则通过将矩阵转化为上Hessenberg矩阵,然后通过反复QR分解来逼近矩阵的特征值。
这些算法都存在计算复杂、耗时长的问题,在处理大规模矩阵时效率较低。
三、并行特征值分解算法为了提高特征值分解算法的计算效率,研究者们开始尝试将并行计算技术引入到特征值分解算法中。
一种常用的并行特征值分解方法是块特征值分解法(Block Eigenvalue Decomposition)。
该方法将矩阵划分为多个较小的块,每个块由一个处理单元处理。
通过并行计算每个块的特征值和特征向量,最后组合得到整个矩阵的特征值和特征向量。
块特征值分解法可以显著提高计算效率,适用于处理大规模矩阵。
四、算法实现与优化在并行特征值分解算法的实现过程中,需要考虑如何合理划分矩阵的计算任务,确保各个处理单元之间的负载均衡。
通常可以将矩阵按行或者按列等方式划分成多个子矩阵,并行计算各个子矩阵的特征值和特征向量。
此外,还可以采用多级划分的方法,将矩阵分解成更小的块,进一步提高并行计算效率。
第章矩阵特征值的计算

第章矩阵特征值的计算矩阵特征值是矩阵理论中的一个重要概念,它在很多领域中都有广泛的应用,如物理、化学、工程等。
本文将从特征值的定义、计算方法和应用举例等方面进行阐述。
一、特征值的定义对于一个n阶方阵A,如果存在一个非零向量x,使得Ax=kx,其中k 是一个常数,那么k称为A的特征值,x称为A的对应于特征值k的特征向量。
从定义可以看出,矩阵A的特征值和特征向量是成对出现的,特征向量可以是一个实数或是一个向量,特征值可以是实数或是复数。
二、特征值的计算方法1.直接计算法此方法适合于较小的矩阵。
给定一个n阶矩阵A,首先构造特征方程det(A-λI)=0,其中I是n阶单位矩阵,λ是未知数,然后求解特征方程得到特征值,将特征值代入(A-λI)x=0求解对应的特征向量。
2.幂法幂法是一种迭代方法,适用于大型矩阵。
假设特征值的绝对值最大,那么从非零向量b开始迭代过程,令x0=b,求解x1=A*x0,然后再将x1作为初始值,求解x2=A*x1,以此类推,直到收敛为止。
最后,取最终得到的向量xn,其模即为特征值的近似值。
3.QR方法QR方法是一种迭代方法,可以用于寻找特征值和特征向量。
首先将矩阵A分解为QR,其中Q是正交矩阵,R是上三角矩阵,然后对R进行迭代,重复进行QR分解,直到收敛。
最后,得到的上三角矩阵的对角元素即为特征值的近似值,在QR分解的过程中,特征向量也可以得到。
三、特征值的应用举例1.物理学中的量子力学量子力学中的哈密顿算符可以表示为一个矩阵,物理量的测量值就是对应的特征值。
例如,电子的自旋可以有上自旋和下自旋两种状态,上自旋对应的特征值为1,下自旋对应的特征值为-12.工程中的振动问题在工程中,矩阵特征值可以用来求解振动问题。
例如,振动系统的自由度决定了特征向量的个数,而特征值则表示了振动的频率。
通过计算矩阵的特征值和特征向量,可以预测系统的振动频率和振型。
3.网络分析中的中心性度量在网络分析中,矩阵特征值可以用来计算节点的中心性度量。
矩阵特征值计算矩阵的特征值和特征向量

矩阵特征值计算矩阵的特征值和特征向量矩阵是线性代数中的重要概念之一,它在众多学科领域中都有广泛的应用。
而矩阵的特征值和特征向量则是矩阵分析与应用中的核心内容之一。
本文将详细介绍矩阵特征值的计算方法,以及如何求解矩阵的特征向量。
1. 特征值和特征向量的定义首先,我们来了解一下什么是矩阵的特征值和特征向量。
给定一个n阶方阵A,如果存在一个数λ以及一个非零n维列向量X,使得满足下述条件:AX = λX那么,λ就是矩阵A的一个特征值,而X则是对应于特征值λ的特征向量。
特征值和特征向量的求解在很多应用中都具有重要的意义。
2. 特征值的计算方法接下来,我们介绍几种常见的特征值计算方法。
2.1 特征多项式法特征多项式法是求解特征值的一种常用方法。
它利用方阵A减去λ乘以单位矩阵I之后的行列式为零的性质,构造出特征多项式,并求解多项式的根即可得到特征值。
举个例子,对于二阶方阵A = [a, b; c, d],其特征多项式为:| A - λI | = | a-λ, b; c, d-λ | = (a-λ)(d-λ) - bc = 0解这个方程可以得到A的特征值。
2.2 幂迭代法幂迭代法也是一种常见的特征值计算方法。
它利用特征向量的性质,通过迭代计算来逼近矩阵的特征值。
其基本思想是,给定一个初始向量X0,不断迭代计算:Xk+1 = AXk然后对得到的向量序列进行归一化处理,直到收敛为止。
最后得到的向量X就是对应的特征向量,而特征值可以通过如下公式计算:λ = X^TAX / X^TX2.3 QR方法QR方法是一种数值稳定性较好的特征值计算方法。
它利用矩阵的QR分解的性质来逐步逼近矩阵的特征值。
首先,对矩阵A进行QR分解,得到一个正交矩阵Q和一个上三角矩阵R。
然后,将分解后的矩阵R与矩阵Q逆序相乘,得到一个新的矩阵A'。
重复进行QR分解和相乘的操作,直到收敛为止。
最后,得到的矩阵A'的对角线上的元素即为矩阵A的特征值。
超级计算技术中的并行算法与矩阵运算

超级计算技术中的并行算法与矩阵运算在现代科学和工程领域中,超级计算技术发挥着至关重要的作用。
为了解决复杂问题,超级计算机采用了并行算法和矩阵运算等技术,以实现高效的计算和分析。
本文将探讨超级计算技术中的并行算法和矩阵运算,并分析其应用与发展趋势。
首先,我们来了解一下超级计算技术中的并行算法。
并行算法是指将复杂的计算任务分解成多个子任务,然后并发地运行于多个计算单元上,以提高计算效率和性能。
并行算法的设计需要考虑任务分解、通信和同步等关键问题。
常用的并行算法包括分治法、并行排序和并行搜索等。
对于矩阵运算来说,超级计算技术也发挥着重要的作用。
矩阵运算是指对矩阵进行基本的数学运算,诸如加法、减法、乘法和求逆等。
这些矩阵运算在科学计算、图像处理和人工智能等领域中广泛应用。
超级计算技术能够利用并行算法加速矩阵运算的速度,提高计算效率。
在超级计算技术中,矩阵乘法是一种常见且重要的矩阵运算。
矩阵乘法的基本思想是将两个矩阵相乘,得到一个新的矩阵。
然而,传统的矩阵乘法算法在大规模矩阵计算时效率较低,因此需要并行算法的支持。
并行矩阵乘法算法采用了多种策略,如按块分配、循环分配和网络划分等,以充分利用计算资源。
除了矩阵乘法,超级计算技术还可以应用于其他矩阵运算,如矩阵分解和特征值计算等。
矩阵分解是将一个矩阵分解成多个部分矩阵的过程,常见的矩阵分解包括LU分解、QR分解和SVD分解。
这些分解可以帮助我们更好地理解和处理复杂的数学问题。
而特征值计算则是计算一个矩阵的特征值和特征向量,对于解决线性方程组和优化问题都具有重要意义。
随着科学技术的不断发展,超级计算技术中的并行算法和矩阵运算也在不断演进。
首先,随着计算单元和存储器的不断增加,我们可以使用更大规模的矩阵进行计算,从而解决更加复杂的科学问题。
其次,新的并行算法和矩阵运算技术的提出,使得超级计算机能够更快速地处理大规模数据,实现更高效的计算。
最后,超级计算技术的发展也推动了云计算和人工智能等领域的进步,使得计算资源得到充分利用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9 矩阵特征值计算在实际的工程计算中,经常会遇到求n 阶方阵 A 的特征值(Eigenvalue)与特征向量(Eigenvector)的问题。
对于一个方阵A,如果数值λ使方程组Ax=λx即(A-λI n )x=0 有非零解向量(Solution Vector)x,则称λ为方阵A的特征值,而非零向量x为特征值λ所对应的特征向量,其中I n 为n阶单位矩阵。
由于根据定义直接求矩阵特征值的过程比较复杂,因此在实际计算中,往往采取一些数值方法。
本章主要介绍求一般方阵绝对值最大的特征值的乘幂(Power)法、求对称方阵特征值的雅可比法和单侧旋转(One-side Rotation)法以及求一般矩阵全部特征值的QR 方法及一些相关的并行算法。
1.1 求解矩阵最大特征值的乘幂法1.1.1 乘幂法及其串行算法在许多实际问题中,只需要计算绝对值最大的特征值,而并不需要求矩阵的全部特征值。
乘幂法是一种求矩阵绝对值最大的特征值的方法。
记实方阵A的n个特征值为λi i=(1,2, …,n),且满足:│λ1 │≥│λ2 │≥│λ3 │≥…≥│λn │特征值λi 对应的特征向量为x i 。
乘幂法的做法是:①取n维非零向量v0 作为初始向量;②对于k=1,2, …,做如下迭代:直至uk+1 ∞-uku k =Av k-1 v k = u k /║u k ║∞<ε为止,这时v k+1 就是A的绝对值最大的特征值λ1 所对应的特征向∞量x1 。
若v k-1 与v k 的各个分量同号且成比例,则λ1 =║u k ║∞;若v k-1 与v k 的各个分量异号且成比例,则λ1 = -║u k ║∞。
若各取一次乘法和加法运算时间、一次除法运算时间、一次比较运算时间为一个单位时间,则因为一轮计算要做一次矩阵向量相乘、一次求最大元操作和一次规格化操作,所以下述乘幂法串行算法21.1 的一轮计算时间为n2+2n=O(n2 )。
算法21.1 单处理器上乘幂法求解矩阵最大特征值的算法输入:系数矩阵A n×n ,初始向量v n×1 ,ε输出:最大的特征值m axBeginwhile (│diff│>ε) do(1)for i=1 to n do(1.1)sum=0(1.2)for j= 1 to n dosum=sum+a[i,j]*x[j]end for(1.3)b[i]= sumend for(2)max=│b[1]│(3)for i=2 to n doif (│b[i]│>max) then max=│b[i]│ end ifend for(4)for i=1 to n dox[i] =b[i]/maxend for(5)diff=max-oldmax , oldmax=maxend whileEnd1.1.2 乘幂法并行算法乘幂法求矩阵特征值由反复进行矩阵向量相乘来实现,因而可以采用矩阵向量相乘的数据划分方法。
设处理器个数为p,对矩阵A 按行划分为p 块,每块含有连续的m 行向量,这里m=⎡n/ p⎤,编号为i的处理器含有A的第i m 至第(i+1)m-1 行数据,(i=0,1, …,p-1),初始向量v被广播给所有处理器。
各处理器并行地对存于局部存储器中a 的行块和向量v 做乘积操作,并求其m 维结果向量中的最大值localmax,然后通过归约操作的求最大值运算得到整个n 维结果向量中的最大值max 并广播给所有处理器,各处理器利用max 进行规格化操作。
最后通过扩展收集操作将各处理器中的m维结果向量按处理器编号连接起来并广播给所有处理器,以进行下一次迭代计算,直至收敛。
具体算法框架描述如下:算法21.2 乘幂法求解矩阵最大特征值的并行算法输入:系数矩阵A n×n ,初始向量v n×1 ,ε输出:最大的特征值m axBegin对所有处理器m y_rank(my_rank=0,…, p-1)同时执行如下的算法:while (│diff│>ε) do /* diff 为特征向量的各个分量新旧值之差的最大值*/ (1)for i=0 to m-1 do /*对所存的行计算特征向量的相应分量*/(1.1)sum=0(1.2)for j= 0 to n-1 dosum=sum+a[i,j]*x[j]end for(1.3)b[i]= sumend for(2)localmax=│b[0]│/*对所计算的特征向量的相应分量求新旧值之差的最大值l ocalmax */(3)for i=1 to m-1 doif (│b[i]│>localmax) then localmax=│b[i]│ end ifend for(4)用A llreduce 操作求出所有处理器中l ocalmax 值的最大值m ax并广播到所有处理器中(5)for i=0to m-1 do /*对所计算的特征向量归一化*/b [i ] =b [i ]/maxend for (6)用 A llgather 操作将各个处理器中计算出的特征向量的分量的新值组合并广播到 所有处理器中(7)diff=max -oldmax, oldmax =max end while End若各取一次乘法和加法运算时间、一次除法运算时间、一次比较运算时间为一个单位时间,一轮迭代的计算时间为 m n +2m ;一轮迭代中,各处理器做一次归约操作,通信量为 1, 一次扩展收集操作,通信量为 m ,则通信时间为 4t s (p - 1) + (m + 1)t w ( p - 1) 。
因此乘幂法的一轮并行计算时间为T p = mn + 2m + 4t s (MPI 源程序请参见所附光盘。
p - 1) + (m + 1)t w ( p - 1) 。
1.2 求对称矩阵特征值的雅可比法1.2.1 雅可比法求对称矩阵特征值的串行算法若矩阵A =[a ij ]是n 阶实对称矩阵,则存在一个正交矩阵U ,使得U T AU =D 其中 D 是一个对角矩阵,即⎡λ1⎢ D = ⎢0⎢ ⎢ ⎢⎣0λ20 ⎤⎥ 0 ⎥ ⎥ ⎥ λn ⎥⎦这里λi (i =1,2,…,n )是A 的特征值,U 的第i 列是与λi 对应的特征向量。
雅可比算法主要是通过 正交相似变换将一个实对称矩阵对角化,从而求出该矩阵的全部特征值和对应的特征向量。
因此可以用一系列的初等正交变换逐步消去A 的非对角线元素,从而使矩阵A 对角化。
设初 等正交矩阵为R (p ,q ,θ),其(p ,p )( q ,q )位置的数据是cos θ,(p , q )( q , p )位置的数据分别是-sin θ和 sin θ(p ≠ q ),其它位置的数据和一个同阶数的单位矩阵相同。
显然可以得到:R (p ,q ,θ) T R (p ,q ,θ)=I n不妨记B= R (p ,q ,θ)T AR (p ,q ,θ),如果将右端展开,则可知矩阵B 的元素与矩阵A 的元素之 间有如下关系:b pp = a pp cos 2θ+a qq sin 2θ+a pq sin2θ b qq = a pp sin 2θ+a qq cos 2θ-a pq sin2θb pq = ((a qq -a pp )sin2θ)/2+a pq cos2θ b qp = b pq b pj = a pj cos θ+a qj sin θ b qj = -a pj sin θ +a qj cos θ b ip = a ip cos θ+a iq sin θ b iq = -a ip sin θ +a iq cos θ b ij = a ij其中 1 ≤ i , j ≤ n 且i ,j ≠ p ,q 。
因为A 为对称矩阵,R 为正交矩阵,所以B 亦为对称矩阵。
若 要求矩阵B 的元素b pq =0,则只需令 ((a qq -a pp )sin2θ)/2+a pq cos2θ=0,即:pqqqtg 2θ =-a pq (a q q - a pp ) 2在实际应用时,考虑到并不需要解出 θ,而只需要求出 s in2θ,sin θ 和 c os θ 就可以了。
如果限制 θ 值在-π/2 < 2θ ≤ π/2,则可令m = - a pq , n = 1( a- app ) , w = sgn( n ) m容易推出: sin 2θ = w , 2sin θ = 2(1 + w ,1 - w2 )cos θ = m 21 - sin2 θ+ n 2利用sin2θ,sin θ和cos θ的值,即得矩阵B 的各元素。
矩阵A 经过旋转变换,选定的非主对角元素a pq 及a qp (一般是绝对值最大的)就被消去,且其主对角元素的平方和增加了 2a2,而非主对角元素的平方和减少了 2a 2 pq ,矩阵元素总的平方和不变。
通过反复选取主元素a pq , 并作旋转变换,就逐步将矩阵A 变为对角矩阵。
在对称矩阵中共有(n 2-n )/2 个非主对角元素要 被消去, 而每消去一个非主对角元素需要对 2n 个元素进行旋转变换, 对一个元素进行旋转 变换需要 2 次乘法和 1 次加法,若各取一次乘法运算时间或一次加法运算时间为一个单位时 间,则消去一个非主对角元素需要 3 个单位运算时间,所以下述算法 21.3 的一轮计算时间 复杂度为 (n 2-n )/2*2n *3=3n 2(n-1)=O(n 3)。
算法 21.3 单处理器上雅可比法求对称矩阵特征值的算法输入:矩阵A n ×n ,ε 输出:矩阵特征值 E igenvalueBegin(1)while (max >ε) do(1.1) max =a[1,2] (1.2)for i =1 to n dofor j = i +1 to n doif (│a [i ,j ]) │>max ) then max =│a [i ,j ] │,p =i ,q =j end if end for end for (1.3)Compute:m =- a [p ,q ],n=(a [q ,q ]- a [p ,p ])/2,w =sgn(n )*m/sqrt(m *m +n *n ), si 2=w ,si 1=w /sqrt(2(1+ sqrt(1-w *w ))),co1=sqrt(1-si 1*si 1), b [p ,p ]= a [p ,p ]*co1*co1+ a [q ,q ]*si 1*si 1+ a [p ,q ]*si 2, b [q ,q ]= a [p ,p ]*si 1*si 1+ a [q ,q ]*co1*co1- a [p ,q ]*si 2, b [q , p ]=0,b [p ,q ]=0(1.4)for j =1 to n doif ((j ≠ p ) and ( j ≠ q )) then (i)b [p ,j ]= a [p ,j ]*co1+ a [q ,j ]*si 1 (ii)b [q ,j ]= -a [p ,j ]*si 1 + a [q ,j ]*co1 end if end for(1.5)for i =1 to n doEndif ((i ≠ p ) and (i ≠ q )) then(i)b [i , p ]= a [i ,p ]*co1+ a [i ,q ]*si 1 (ii)b [i , q ]= - a [i ,p ]*si 1+ a [i ,q ]*co1 end if end for(1.6)for i=1 to n dofor j=1 to n do a [i,j ]=b [i,j ] end for end for end while (2)for i =1 to n doEigenvalue [i ]= a [i , i ] end for1.2.2 雅可比法求对称矩阵特征值的并行算法串行雅可比算法逐次寻找非主对角元绝对值最大的元素的方法并不适合于并行计算。