主要内容

eigs

特征值和特征向量的子集

描述

例子

d= eigs (一个)返回一个向量矩阵的六大特征值大小一个。这是最有用的,当计算的所有特征值eig计算昂贵,例如大型稀疏矩阵。

例子

d= eigs (一个,k)返回k最大特征值大小。

例子

d= eigs (一个,k,σ)返回k基于价值的特征值σ。例如,eigs (k ' smallestabs ')返回k最小的特征值大小。

d= eigs (一个,k,σ,名称,值)与一个或多个名称-值对参数指定附加选项。例如,eigs (k,σ,“宽容”,1 e - 3)调整算法的收敛公差。

例子

d= eigs (一个,k,σ,选择)使用结构指定选项。

例子

d= eigs (一个,B,___)解决了广义特征值问题* V = B * * D。您可以选择性地指定k,σ,选择作为额外的输入参数,或者名称-值对。

d= eigs (Afun,n,___)指定一个函数处理Afun而不是一个矩阵。第二个输入n给出了矩阵的大小一个中使用的Afun。您可以选择性地指定B,k,σ,选择作为额外的输入参数,或者名称-值对。

例子

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

例子

(V,D,国旗)= eigs (___)还返回一个收敛的旗帜。如果国旗0,那么所有的特征值聚合。

例子

全部折叠

矩阵一个= delsq (numgrid (' C ', 15))是一个对称正定矩阵,特征值合理均匀的间隔(0 8)。计算出六大特征值大小。

一个= delsq (numgrid (“C”、15));d = eigs (A)
d =6×17.8666 7.7324 7.6531 7.5213 7.4480 7.3517

指定第二个输入来计算一个特定数量的最大特征值。

d = eigs (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 - 25% - 1500随机稀疏矩阵的非零元素的近似密度。

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

发现矩阵的LU分解,返回一个排列向量p满足:一个(p) = L * U

陆(L U p) = (,“向量”);

创建一个函数处理Afun接受一个向量输入x采用LU分解的结果,实际上,回报x \

Afun = @ (x) U \ (L \ (x (p)));

计算最小6级特征值使用eigs函数处理Afun。第二个输入的大小一个

d = eigs (Afun 1500 6“smallestabs”)
d =6×1复杂0.1423 + 0.0000我0.4859 + 0.0000 -0.3323 - 0.3881 -0.3323 0.1019 - 0.5381 + 0.3881我0.1019 + 0.5381

west0479是一个实值479 -,- 479稀疏矩阵与真正的和复杂的双共轭特征值。

加载west0479矩阵,然后计算和绘制所有的特征值使用eig。由于特征值是复杂的,情节自动使用真正的部分作为x坐标和y坐标的虚部。

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

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

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

eigs有几个选项σ可以挑选不同类型的最大或最小的特征值。计算和绘制一些特征值为每个可用的选项σ

图绘制(d,“+”)举行la = eigs (6“largestabs”);情节(洛杉矶,“罗”)sa = eigs (6“smallestabs”);情节(sa),“去”)举行传奇(所有特征值的,最大程度的,最小程度的)包含(“实轴”)ylabel (“虚轴”)

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。这些对象代表所有特征值,最大大小,最小的大小。

图绘制(d,“+”)举行数量= eigs (4“bothendsreal”);情节(ber,“r ^”)贝= eigs (4“bothendsimag”);情节(贝,“g ^”)举行传奇(所有特征值的,“真实”的两端,“两端想象的”)包含(“实轴”)ylabel (“虚轴”)

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。这些对象代表所有特征值,真实的,两端两端虚构的。

图绘制(d,“+”)举行lr = eigs (3“largestreal”);情节(lr,“罗”)老= eigs (3“smallestreal”);情节(sr,“去”李)= eigs (3“largestimag”,“SubspaceDimension”,45岁);情节(李“m ^”)如果= eigs (3“smallestimag”,“SubspaceDimension”,45岁);情节(si,“c ^”)举行传奇(所有特征值的,最大的真实”,“最小的真实”,“最大的想象”,“最小的想象”)包含(“实轴”)ylabel (“虚轴”)

图包含一个坐标轴对象。坐标轴对象包含5线类型的对象。最小最大这些对象代表所有特征值,真实的,真实的,最小最大假想虚构的。

创建一个对称正定稀疏矩阵。

一个= delsq (numgrid (“C”,150));

计算六个最小特征值使用“smallestreal”维多雇佣了一个方法使用一个

抽搐d = eigs (6“smallestreal”)
d =6×10.0013 0.0025 0.0033 0.0045 0.0052 0.0063
toc
运行时间是3.380573秒。

计算使用相同的特征值“smallestabs”雇佣了一个维方法使用的倒数一个

抽搐dsm = eigs (6“smallestabs”)
dsm =6×10.0013 0.0025 0.0033 0.0045 0.0052 0.0063
toc
运行时间是0.341139秒。

特征值的接近于零。的“smallestreal”计算难以收敛一个由于特征值之间的差距是如此之小。相反,“smallestabs”选择使用的倒数一个,因此逆特征值的一个,更大的差距,因此更容易计算。这种改进的性能为代价的分解一个,这是没有必要的“smallestreal”

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

矩阵一个= delsq (numgrid (“C”, 30))是一个对称正定矩阵特征值的大小632合理均匀的间隔(0 8),但随着18重复特征值为4.0。计算一些特征值在4.0附近,它是合理的函数调用4.0 eigs (20)。然而,这叫计算最大特征值的倒数- 4.0 *我,在那里是一个单位矩阵。因为4.0是一个特征值一个这个矩阵是奇异的,因此并没有一个逆。eigs失败并产生一个错误消息。的数值σ不能完全等于一个特征值。相反,您必须使用的值σ但不等于4.0附近找到这些特征值。

计算所有特征值的使用eig,20个特征值接近4 - 1 e-6使用eigs比较的结果。情节与每个方法计算特征值。

一个= delsq (numgrid (“C”,30));σ= 4 - 1 e-6;d = eig(一个);D =排序(eigs(σ),20日);
情节(d (307:326),“ks”)举行情节(D,k +的)举行传奇(“eig (A)”,“eigs(σ),20日”)标题(“18重复特征值”)

图包含一个坐标轴对象。坐标轴对象与标题18重复特征值的包含2线类型的对象。这些对象代表eig (A), eigs(20,σ)。

创建稀疏随机矩阵一个B这两个有低密度的非零元素。

B = sprandn (1 e3, e3, 0.001) + speye (e3);B = B * B;一个= sprandn (1 e3, e3, 0.005);= A + A”;

发现的柯列斯基分解矩阵B,使用三个输出返回排列向量年代和测试值p

(R, p, s) =胆固醇(B,“向量”);p
p = 0

p是零,B是一个对称正定矩阵满足吗B (s, s) = R ' * R

计算级六大特征值和特征向量的广义特征值问题涉及一个R。自R柯列斯基因素吗B,指定“IsCholesky”作为真正的。此外,由于B (s, s) = R ' * R因此R =胆固醇(B (s, s)),使用排列向量年代的价值“CholeskyPermutation”

[V D标志]= eigs (R, 6日“largestabs”,“IsCholesky”,真的,“CholeskyPermutation”,年代);国旗
国旗= 0

国旗为零,所有的特征值聚合。

输入参数

全部折叠

输入矩阵,指定为一个方阵。一个通常,但并非总是如此,一个大的和稀疏矩阵。

如果一个是对称的,然后eigs使用一个专门的算法。如果一个对称的,那么考虑使用= (+)/ 2为了使一个对称之前调用eigs。这将确保eigs计算的特征值,而不是复杂的。

数据类型:
复数的支持:金宝app是的

输入矩阵,指定为一个方阵的大小一样一个。当B是指定的,eigs解决了广义特征值问题* V = B * * D

如果B是对称的正定,然后呢eigs使用一个专门的算法。如果B对称正定,那么考虑使用B = (B + B) / 2为了使B对称之前调用eigs

一个是标量,您可以指定吗B作为一个空矩阵eigs ([], k)解决之间的标准特征值问题和消除歧义Bk

数据类型:
复数的支持:金宝app是的

特征值计算,指定为一个积极的标量整数。如果k大于大小(2),然后eigs使用最大有效值k =大小(2)代替。

例子:eigs (2)返回的两个最大特征值一个

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

σ

描述

σ(R2017a和早些时候)

标量(真实的或复杂的,包括0)

特征值最接近的数字σ

没有变化

“largestabs”(默认)

最大的大小。

“lm”

“smallestabs”

最小的大小。一样σ= 0

“sm”

“largestreal”

最大的真实。

“lr”,“拉”

“smallestreal”

最小的真实。

“老”,“sa”

“bothendsreal”

两端,k / 2值分别为最大和最小的实部(一个从高端k很奇怪)。

“是”

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

σ

描述

σ(R2017a和早些时候)

“largestimag”

最大的虚部。

“李”如果一个是复杂的。

“smallestimag”

最小的虚部。

“如果”如果一个是复杂的。

“bothendsimag”

两端,k / 2值最大和最小的虚部(一个从高端k很奇怪)。

“李”如果一个是真实的。

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

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

数据类型:|字符|字符串

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

请注意

使用结构的选项来指定选项不推荐。使用名称-值对。

选择字段 描述 名称-值对
issym

对称的Afun矩阵。

“IsFunctionSymmetric”
托尔

收敛宽容。

“宽容”
麦克斯特

最大迭代次数。

“MaxIterations”
p

兰索斯基向量的数量。

“SubspaceDimension”

从向量。

“StartVector”
disp

诊断信息显示水平。

“显示”
失败 治疗nonconverged特征值的输出。 “FailureTreatment”
上海浦东发展银行 B对称正定? “IsSymmetricDefinite”
cholB

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

“IsCholesky”
permB

指定排列向量permB如果稀疏B真的是胆固醇(B (permB permB))

“CholeskyPermutation”

例子:opts.issym=1,选择。托尔=1e-10创建一个结构设置的字段值issym托尔

数据类型:结构体

矩阵函数,指定为一个函数处理。这个函数y = Afun (x)必须返回正确的值取决于σ输入:

  • * x——如果σ未指明的还是以外的任何文本选项“smallestabs”

  • x \——如果σ0“smallestabs”

  • (我)一个σ* \ x——如果σ是一个非零的标量(标准特征值问题)。

  • (一个σ* B) \ x——如果σ是一个非零的标量(广义特征值问题)。

例如,下面的Afun当调用工作eigsσ= ' smallestabs ':

陆(L U p) =(,“矢量”);Afun = @ (x) U \ (L \ (x (p)));d = eigs (Afun 100 6“smallestabs”)

对于一个广义特征值问题,添加矩阵B如下(B不能被表示为一个函数处理):

d = eigs (Afun, 100 B 6“smallestabs”)

一个被假定为非对称除非吗“IsFunctionSymmetric”(或opts.issym)指定。设置“IsFunctionSymmetric”真正的确保eigs计算的特征值,而不是复杂的。

信息如何提供额外的参数Afun功能,请参阅参数化功能

提示

调用eigs“显示”预计选项打开看看输出Afun

方阵的大小一个这是由Afun,指定为一个积极的标量整数。

名称-值参数

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

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

全部折叠

收敛宽容,指定为逗号分隔组成的“宽容”和积极的实际数值标量。

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

最大数量的算法迭代,指定为逗号分隔组成的“MaxIterations”和一个正整数。

例子:d = eigs (k,σ,MaxIterations, 350)

维子空间的最大大小,指定为逗号分隔组成的“SubspaceDimension”和一个非负整数。的“SubspaceDimension”值必须大于或等于k + 1真正的对称问题,k + 2否则,k是特征值的数量。

推荐值p > = 2 * k,或者真正的非对称问题,p > = 2 * k + 1。如果你不指定一个“SubspaceDimension”值,那么使用至少默认的算法20.兰索斯向量。

的问题,eigs无法收敛,增加的价值“SubspaceDimension”可以提高收敛行为。然而,增加价值太多会导致内存问题。

例子:d = eigs (k,σ,SubspaceDimension, 25)

初始向量开始,指定为逗号分隔组成的“StartVector”和一个数字向量。

开始指定一个不同的随机向量的主要原因是当你想控制随机数流用于生成向量。

请注意

eigs选择初始向量可再生的方式使用私人随机数流。改变随机数种子影响初始向量。

例子:d = eigs (k,σ,StartVector, randn (m, 1))使用一个随机向量开始吸引全球随机数流值。

数据类型:

治疗nonconverged特征值,指定为逗号分隔组成的“FailureTreatment”其中一个选项:“replacenan”,“保持”,或“下降”

的价值“FailureTreatment”决定了eigs显示nonconverged特征值的输出。

选项

对输出的影响

“replacenan”

nonconverged特征值替换为值。

“保持”

包括nonconverged特征值的输出。

“下降”

删除nonconverged特征值的输出。这个选项会导致eigs返回比要求更少的特征值。

例子:d = eigs (k,σ,“FailureTreatment”、“下降”)删除nonconverged特征值的输出。

数据类型:字符|字符串

切换显示的诊断信息,指定为逗号分隔组成的“显示”和一个数字或逻辑1(真正的)或0()。指定的值真正的1打开显示诊断信息的计算。

选项Afun

全部折叠

对称的Afun矩阵,指定为逗号分隔组成的“IsFunctionSymmetric”和一个数字或逻辑1(真正的)或0()。

这个选项指定矩阵Afun适用于其输入向量是对称的。指定的值真正的1表明eigs应该使用专门的算法为对称矩阵和返回真正的特征值。

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

全部折叠

柯列斯基分解的切换B,指定为逗号分隔两人组成的“IsCholesky”和一个数字或逻辑1(真正的)或0()。

这个选项指定的输入矩阵B在调用eigs (A, B, ___)实际上是柯列斯基因素呢R所产生的R =胆固醇(B)

请注意

不使用这个选项如果σ“smallestabs”或一个数字标量。

柯列斯基排列向量,指定为逗号分隔组成的“CholeskyPermutation”和一个数字向量。指定排列向量permB如果稀疏矩阵B是分解根据之前重新排序胆固醇(B (permB permB))

您还可以使用的三个输出语法胆固醇对于稀疏矩阵直接获得permB[R p permB] =胆固醇(B,“矢量”)

请注意

不使用这个选项如果σ“smallestabs”或一个数字标量。

Symmetric-positive-definiteness切换为B,指定为逗号分隔两人组成的“IsSymmetricDefinite”和一个数字或逻辑1(真正的)或0()。指定真正的1当你知道B是对称的正定,它是严格的对称矩阵正特征值。

如果B对称半正定(一些特征值为零),然后指定“IsSymmetricDefinite”作为真正的1部队eigs使用相同的专业算法,它使用的时候B是对称的正定。

请注意

使用这个选项的值σ必须是数字或“smallestabs”

输出参数

全部折叠

特征值,作为一个列向量返回。d排序是不同的根据的价值σ

的价值σ

输出排序

“largestabs”

由大小降序排列

“largestreal”

由实部降序排列

“largestimag”

降序排列的虚部

“smallestabs”

通过大小升序排列

“smallestreal”

“bothendsreal”

由实部升序排序

“smallestimag”

升序的虚部

“bothendsimag”

降序排列的虚部的绝对值

特征向量,作为一个矩阵返回。列在V对应的特征值沿对角线D。形式和正常化V取决于输入参数的组合:

  • [V D] = eigs (A)收益矩阵V正确的特征向量的列一个这样* V = V * D。的特征向量V是规范化的2-norm是1。

    如果一个是对称的,特征向量,V正交。

  • [V D] = eigs (A, B)返回V作为一个矩阵的列是广义特征向量满足* V = B * * D。每个特征向量的2-norm不一定是1。

    如果B是对称的正定,特征向量在吗V归一化,这样吗B规范的是1。如果一个也是对称的,那么特征向量是什么B正交。

不同的机器上,MATLAB的版本®,或参数(如起始矢量和子空间维度)仍然可以产生不同的特征向量的数值准确:

  • 对于真正的特征向量,特征向量可以改变的迹象。

  • 对于复杂的特征向量,特征向量可以乘以任何复数1级。

  • 多个特征值,特征向量通过线性组合可以重组。例如,如果一个x=λx一个y=λy,然后一个(x+y)=λ(x+y),所以x+y也是一个特征向量一个

特征值矩阵,返回为一个对角矩阵主对角线上的特征值。

收敛国旗,返回01。的值0表明所有特征值的融合。否则,不是所有的特征值聚合。

使用这种收敛国旗输出抑制警告收敛失败。

提示

  • eigs使用私人随机数生成默认的起始矢量流以确保在运行再现性。设置随机数字生成器使用状态rng在调用之前eigs不影响输出。

  • 使用eigs并不是最有效的方式找到几个特征值小,密度矩阵。对于这样的问题,它可能会使用更方便eig(全(A))。例如,发现三个矩阵特征值在500 - 500年是一个相对较小的问题,很容易处理eig

  • 如果eigs不能收敛为给定的矩阵,增加兰索斯基向量的数量增加的价值“SubspaceDimension”。作为二次选择,调整的最大迭代数,“MaxIterations”收敛公差,“宽容”,也可以帮助收敛行为。

兼容性的考虑

全部展开

行为改变R2017b

引用

[1]斯图尔特,G.W.“一个”。自旋波Krylov-Schur算法对于大征值问题暹罗《矩阵分析和应用程序。问题3,第23卷,2001年,页601 - 614。

[2]Lehoucq R.B.,D。C. Sorenson, and C. Yang.ARPACK用户指南。费城,宾夕法尼亚州:暹罗,1998年。

扩展功能

另请参阅

||

之前介绍过的R2006a