主要内容

EIG

特征值和特征向量的子集

描述

例子

D= eigs (A.)返回矩阵的六个最大幅度特征值的向量A..当计算所有的特征值时,这是最有用的eig计算成本很高,例如使用大型稀疏矩阵。

例子

D= eigs (A.,K)返回K最大的幅度值。

例子

D= eigs (A.,K,σ)返回K基于价值的特征值σ.例如,eigs (k ' smallestabs ')返回K最小的大小特征值。

D= eigs (A.,K,σ,名称、值)使用一个或多个名称-值对参数指定其他选项。例如,eigs (k,σ,“宽容”,1 e - 3)调整算法的收敛容差。

例子

D= eigs (A.,K,σ,选择)使用结构指定选项。

例子

D= eigs (A.,B,___)解决广义特征值问题* V = B * * D.您可以选择指定K,σ,选择,或名称 - 值对作为其他输入参数。

D= eigs (阿芬,N,___)指定函数句柄。阿芬而不是矩阵。第二个输入N给出矩阵的大小A.用于阿芬.您可以选择指定B,K,σ,选择,或名称 - 值对作为其他输入参数。

例子

[v,D] = eigs(___)返回对角矩阵D包含主角角和矩阵上的特征值v其列是相应的特征向量。您可以在以前的语法中使用任何输入参数组合。

例子

[v,D,国旗] = eigs(___)还返回收敛标志。如果国旗0,然后所有特征值都融合在一起。

例子

全部折叠

矩阵一个= delsq (numgrid (' C ', 15))是一个对称正定矩阵,具有特征值在间隔(0 8)中合理分布。计算六个最大的大小特征值。

一个= delsq (numgrid ('C',15));d=EIG(A)
d =6×17.8666 7.7324 7.6531 7.5213 7.4480 7.3517

指定第二个输入以计算最大特征值的特定数目。

d=EIG(A,3)
d =3×17.8666 7.7324 7.6531

矩阵一个= delsq (numgrid (' C ', 15))是一个对称正定矩阵,其特征值在区间(0 8)内合理地均匀分布。计算五个最小的特征值。

一个= delsq (numgrid ('C'、15));d = eigs (5“smallestabs”)
d =5×10.1334 0.2676 0.3469 0.4787 0.5520

创建一个1500 × 1500的随机稀疏矩阵,非零元素的密度大约为25%。

n = 1500;一个= sprand (n, n, 0.25);

求矩阵的LU分解,返回置换向量P满足:一个(p) = L * U

陆(L U p) = (,'向量');

创建一个函数句柄阿芬它接受一个向量输入x并使用LU分解的结果实际上返回斧头

afun = @(x)u \(l \(x(p))));

计算使用六个最小幅度特征值EIG使用函数句柄阿芬.第二个输入是的大小A.

d = eigs (Afun 1500 6“smallestabs”)
d =6×1复合物0.1423 + 0.0000i 0.4859 + 0.0000i -0.3323  -  0.3881i -0.3323 + 0.3881I 0.1119  -  0.5381I 0.1019 + 0.5381I

west0479是一个实值479 × 479稀疏矩阵,具有实和复共轭特征值对。

加载west0479矩阵,然后计算和绘制所有的特征值使用eig. 自从the eigenvalues are complex,情节自动使用实部作为x坐标,虚部作为y坐标。

负载west0479一个= west0479;d = eig(完整的(A));情节(d,'+')

特征值沿着实线(x轴)聚集,特别是在原点附近。

EIG有几个选择σ它可以选择不同类型的最大或最小特征值。计算并绘制每个可用选项的特征值σ

图绘制(d,'+')持有la = eigs(a,6,“largestabs”);绘图(La,“罗”)sa = eigs(a,6,“smallestabs”);情节(SA,'走')持有传奇(“所有特征值”,最大程度的,最小程度的)包含(“实轴”) ylabel (“虚轴”)

图绘制(d,'+')持有ber = Eigs(a,4,'hothendsreal');情节(ber,'r ^'= eigs(A,4,“bothendsimag”);情节(贝,‘g^’)持有传奇(“所有特征值”,“真实”的两端,“两端都是虚构的”)包含(“实轴”) ylabel (“虚轴”)

图绘制(d,'+')持有lr = Eigs(a,3,“最大”);情节(lr,“罗”)sr=EIG(A,3,'Smallestreal');绘图(sr、,'走')Li = Eigs(A,3,'最大自动化','subspacedimension', 45岁);情节(李“m ^”si = eigs(a,3,“smallestimag”,'subspacedimension', 45岁);情节(SI,"c^")持有传奇(“所有特征值”,“最大的雷亚尔”,'最小的真实',“最大的想象”,'最小的想象')包含(“实轴”) ylabel (“虚轴”)

创建对称正定稀疏矩阵。

一个= delsq (numgrid ('C', 150));

使用六个最小的真正特征值使用'Smallestreal',使用Krylov方法使用A.

tic d = eigs(a,6,'Smallestreal')
d =6×10.0013 0.0025 0.0033 0.0045 0.0052 0.0063
toc
运行时间为2.474488秒。

使用以下公式计算相同的特征值:“smallestabs”,使用逆行方法的krylov方法A.

Tic DSM = EIG(A,6,“smallestabs”)
dsm =6×10.0013 0.0025 0.0033 0.0045 0.0052 0.0063
toc
运行时间为0.374825秒。

特征值聚集在零附近'Smallestreal'计算努力收敛使用A.因为特征值之间的差距很小。相反,“smallestabs”选项使用的是A.,从而得到A.,它们的间隙更大,因此更容易计算。这种改进的性能是以分解为代价的A.,这是不必要的'Smallestreal'

计算数字附近的特征值σ它几乎等于一个特征值。

矩阵A=delsq(numgrid('C',30))是一个大小为632的对称正定矩阵,其特征值在区间(0.8)内合理地均匀分布,但在4.0处重复18个特征值。为了计算4.0附近的一些特征值,尝试函数调用是合理的eigs(a,20,4.0).然而,这个调用计算的逆的最大特征值- 4.0 *我, 在哪里是一个单位矩阵。因为4.0是A.,这种矩阵是单数的,因此没有逆。EIG失败并产生错误消息。的数值σ不能完全等于特征值。相反,您必须使用值σ这接近但不等于4.0,以找到这些特征值。

计算所有特征值使用eig,和20个特征值最接近4 - 1e-6使用EIG比较的结果。用每种方法计算出特征值。

一个= delsq (numgrid ('C', 30));Sigma = 4 - 1e-6;d = eig(一个);D =排序(eigs(σ),20日);
绘图(D(307:326),'ks')持有地块(D、,“k+”)持有传奇('eig(a)',“eigs(σ),20日”) 标题(‘A的18个重复特征值’)

创建稀疏随机矩阵A.B这两者都具有低密度的非零元素。

b = sprandn(1e3,1e3,0.001)+ speye(1e3);b = b'* b;a = sprandn(1e3,1e3,0.005);a = a + a';

求矩阵的Cholesky分解B,使用三个输出返回排列向量s和测试值P

[R,p,s]=chol(B,'向量');P
p = 0.

自从P是零,B是一种满足的对称正定矩阵B (s, s) = R ' * R

计算涉及的六个最大尺寸特征值和概述的六个大小A.R. 自从R乔尔斯基因素是什么B具体说明“伊斯切莱斯基”作为真正的.此外,由于B (s, s) = R ' * R因此R=chol(B(s,s)),使用置换向量s的价值“CholeskyPermutation”

[v,d,flag] = eigs(a,r,6,“largestabs”,“伊斯切莱斯基”,真的,“CholeskyPermutation”,s);旗帜
国旗= 0

自从国旗为零,所有特征值都收敛。

输入参数

全部折叠

输入矩阵,指定为方阵。A.通常(但不总是)是一个大型稀疏矩阵。

如果A.那么是对称的吗EIG使用专用算法进行这种情况。如果A.几乎对称,然后考虑使用A=(A+A')/2为了使A.对称之前调用EIG.这确保了EIG计算实特征值而不是复数特征值。

数据类型:双倍的
复数的支持:万博1manbetx是的

输入矩阵,指定为与相同的平方矩阵A..当B是指定的,EIG解决广义特征值问题* V = B * * D

如果B那么对称是正定的吗EIG使用专用算法进行这种情况。如果B几乎对称正定,则考虑使用B = (B + B) / 2为了使B对称之前调用EIG

A.是标量,你可以指定B作为一个空矩阵eigs ([], k)解决标准特征值问题并消除歧义BK

数据类型:双倍的
复数的支持:万博1manbetx是的

要计算的特征值的数目,指定为一个正标量整数。

例子:eigs (2)的两个最大的特征值A.

特征值的类型,指定为表中的一个值。

σ

描述

西格玛(R2017A及更早版本)

标量(实数或复数,包括0)

最接近这个数的特征值σ

没变

“largestabs”(默认)

最大的大小。

“lm”

“smallestabs”

最小的幅度。与...一样Sigma = 0.

“sm”

“最大”

最大的真实。

“lr”,“拉”

'Smallestreal'

最小的真实。

“sr”,“sa”

'hothendsreal'

两端,K / 2.分别具有最大和最小的实数值(如果来自高端)K是奇怪的)。

“是”

非对称问题,σ也可以是:

σ

描述

西格玛(R2017A及更早版本)

'最大自动化'

最大的虚构部分。

“李”如果A.这很复杂。

“smallestimag”

最小的虚构部分。

“如果”如果A.这很复杂。

“bothendsimag”

两端,K / 2.具有最大和最小的虚部的值(如果来自高端)K是奇怪的)。

“李”如果A.这是真的。

例子:eigs (k, 1)返回K最接近1的特征值。

例子:eigs (k ' smallestabs ')返回K最小的大小特征值。

数据类型:双倍的|char|细绳

选项结构,指定为包含此表中一个或多个字段的结构。

请注意

不建议使用options结构来指定选项。请使用名称-值对。

选项字段 描述 名称值对
issym

对称的阿芬矩阵。

“IsFunctionSymmetric”
托尔

收敛宽容。

“宽容”
max

最大迭代次数。

“最大迭代次数”
P

兰氏基向量的个数。

'subspacedimension'

从向量。

“StartVector”
disp

诊断信息显示级别。

'展示'
失败 处理产出中的非符号特征值。 “FailureTreatment”
SPDB. B对称正定? “IsSymmetricDefinite”
cholB

B柯列斯基因素胆固醇(B)?

“伊斯切莱斯基”
permB

指定置换向量permB如果稀疏B真是CHOL(B(Permb,Permb)))

“CholeskyPermutation”

例子:选项issym=1,选项tol=1e-10创建一个具有为字段设置值的结构issym托尔

数据类型:结构

矩阵函数,指定为函数句柄。这个函数y = afun(x)必须返回正确的值,具体取决于σ输入:

  • A*x——如果σ是未指定的或除此之外的任何文本选项“smallestabs”

  • 斧头——如果σ0“smallestabs”

  • (a-sigma * i)\ x——如果σ是非零标量(用于标准特征值问题)。

  • (A-sigma*B)\x——如果σ是非零标量(用于广义特征值问题)。

例如,以下阿芬打电话时工作EIG具有σ= ' smallestabs ':

[l,u,p] = lu(a,'矢量');afun = @(x)u \(l \(x(p))));d = Eigs(Afun,100,6,'smallestabs')

对于一个广义特征值问题,加矩阵B如下(B不能由函数句柄表示):

D = EIGS(AFUN,100,B,6,'Smallestabs')

A.是不对称的,除非“IsFunctionSymmetric”(或opts.issym)另有指定。环境“IsFunctionSymmetric”真正的确保EIG计算实特征值而不是复数特征值。

的信息,以了解如何向阿芬功能,参见参数化功能

提示

调用EIG'展示'选项打开以查看预期的输出阿芬

方形矩阵的大小A.它由阿芬,指定为正标量整数。

名称-值对参数

指定可选的逗号分隔的字符对名称、值论点。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:d = eigs (k,σ,“宽容”,1平台以及MaxIterations, 100)放松收敛容忍度,使用更少的迭代。
一般选择

全部折叠

收敛公差,指定为逗号分隔对组成“宽容”一个正的实数标量。

例子:s = eigs (k,σ,“宽容”,1 e - 3)

最大算法迭代次数,指定为逗号分隔对,由“最大迭代次数”和一个正整数。

例子:d=EIG(A,k,西格玛,'MaxIterations',350)

Krylov子空间的最大大小,指定为逗号分隔对'subspacedimension'和一个非负整数'subspacedimension'值必须大于或等于k+1对于实对称问题k+2否则,K是特征值的个数。

推荐值为p> = 2 * k,或真正的非对称问题,p > = 2 * k + 1.如果您未指定一个'subspacedimension'值,则默认算法至少使用20.兰索斯向量。

问题在哪里EIG未能收敛,增加价值'subspacedimension'可以改善收敛性。但是,过多地增加该值可能会导致内存问题。

例子:d = Eig(a,k,sigma,'subspacedimension',25)

初始起始向量,指定为逗号分隔对,由“StartVector”和一个数字向量。

指定不同的随机起始向量的主要原因是当您希望控制用于生成向量的随机数流时。

请注意

EIG使用私有随机数流以可重复的方式选择起始向量。改变随机数种子不是影响起始向量。

例子:d=EIG(A,k,sigma,'StartVector',randn(m,1))使用从全局随机数流提取值的随机开始向量。

数据类型:双倍的

非收敛特征值的处理,指定为逗号分隔对,由“FailureTreatment”其中一个选择是:“replacenan”,“保持”,或“下降”

的价值“FailureTreatment”确定如何EIG在输出中显示非收敛特征值。

选项

影响产出

“replacenan”

将非收敛特征值替换为价值观。

“保持”

在输出中包含非收敛特征值。

“下降”

从输出中删除非转换的特征值。此选项可能会导致EIG返回比要求的特征值更少。

例子:d = eigs (k,σ,“FailureTreatment”、“下降”)从输出中移除非聚集特征值。

数据类型:char|细绳

用于显示诊断信息的切换,指定为由逗号分隔的对组成'展示'和数字或逻辑1.(真正的)或0().指定值真正的1.在计算过程中打开诊断信息的显示。

选项阿芬

全部折叠

对称的阿芬矩阵,指定为逗号分隔对,由“IsFunctionSymmetric”和数字或逻辑1.(真正的)或0().

此选项指定是否矩阵阿芬适用于其输入向量是对称的。指定值真正的1.表示EIG应该对对称矩阵使用专门的算法并返回实特征值。

广义特征值问题的选项* V = B * * D

全部折叠

Cholesky分解切换B,指定为逗号分隔的对,由“伊斯切莱斯基”和数字或逻辑1.(真正的)或0().

此选项指定矩阵的输入是否为B在呼叫中eigs (A, B, ___)是乔尔斯基因素吗R制作人R=胆固醇(B)

请注意

如果需要,请不要使用此选项σ“smallestabs”或数字标量。

乔尔斯基排列向量,指定为逗号分隔对,由“CholeskyPermutation”和一个数字向量。指定置换向量permB如果稀疏矩阵B根据分解之前重新排序CHOL(B(Permb,Permb)))

您还可以使用的三种输出语法胆固醇对于直接获得的稀疏矩阵permB具有[R,p,permB]=chol(B,'vector')

请注意

如果需要,请不要使用此选项σ“smallestabs”或数字标量。

对称正定切换B,指定为逗号分隔的对,由“IsSymmetricDefinite”和数字或逻辑1.(真正的)或0().指定真正的1.当你知道的时候B是对称正定的,也就是说,它是一个具有严格正特征值的对称矩阵。

如果B对称正半定(一些特征值是零),然后指定“IsSymmetricDefinite”作为真正的1.部队EIG使用它在B是对称的积极明确。

请注意

要使用此选项,值为σ必须是数字或“smallestabs”

输出参数

全部折叠

特征值,作为列向量返回。D根据的值进行不同的排序σ

价值σ

输出排序

“largestabs”

降序

“最大”

按实部降序

'最大自动化'

按虚部降序排列

“smallestabs”

按数量级递增

'Smallestreal'

'hothendsreal'

按实部升序

“smallestimag”

虚幻的部分升序

“bothendsimag”

虚拟部分绝对值降序

特征向量,作为矩阵返回。列中的列v对应于沿对角线的特征值D.的形式和规范v取决于输入参数的组合:

  • [V,D]=环境影响评估(A)返回矩阵v,其列是正确的特征向量A.这样a * v = v * d.的特征向量v标准化,使每个的2范数为1。

    如果A.是对称的,然后是特征向量,v,是正交的。

  • [V D] = eigs (A, B)返回v作为矩阵,其列是满足以下条件的广义右特征向量* V = B * * D.每个特征向量的2范数不一定是1。

    如果B对称正定,那么特征向量在哪里v是标准化的,使得B-每个的norm是1。如果A.也是对称的,那么特征向量是B正交。

不同的机器,MATLAB的版本®或者参数(例如起始向量和子空间尺寸)可以产生仍然是数字准确的不同特征向量:

  • 对于实特征向量,特征向量的符号可以改变。

  • 对于复特征向量,特征向量可以乘以任意复数,大小为1。

  • 对于一个多重特征值,它的特征向量可以通过线性组合重新组合。例如,如果A.x=λxA.Y=λY,然后A.(x+Y) =λ(x+Y),所以x+Y也是的特征向量A.

特征值矩阵,返回为特征值在主对角上的对角矩阵。

融合标志,返回01..价值0表示所有特征值都会融合。否则,并非所有的特征值都会融合。

使用此收敛标志输出抑制了关于收敛失败的警告。

提示

  • EIG使用专用随机数流生成默认起始向量,以确保运行的再现性。使用rng打电话之前EIG不影响输出。

  • 使用EIG不是最有效的方法来找到小,密集的矩阵的一些特征值。对于此类问题,使用可能更快环境影响评估(完整(A)).例如,在一个500 × 500矩阵中找到三个特征值是一个相对较小的问题,很容易处理eig

  • 如果EIG对于给定的矩阵,如果不能收敛,则通过增大的值来增加Lanczos基向量的数量'subspacedimension'.作为次要选择,调整最大迭代次数,“最大迭代次数”,收敛容差,“宽容”,也有助于收敛行为。

兼容性考虑

全部展开

R2017b中的行为发生了变化

参考

[1] Stewart,G.W.“大型特征问题的Krylov-Schur算法。”暹罗矩阵分析与应用杂志.2001年第23卷第3期601-614页。

Lehoucq, r.b., D.C. Sorenson, C. Yang。ARPACK用户指南.费城,宾夕法尼亚州:SIAM, 1998年。

扩展功能

之前介绍过的R2006a