特征值和特征向量的子集
矩阵一个= 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 (“虚轴”)
“smallestabs”
和'Smallestreal'
特征值创建对称正定稀疏矩阵。
一个= 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.
通常(但不总是)是一个大型稀疏矩阵。
如果A.
那么是对称的吗EIG
使用专用算法进行这种情况。如果A.
是几乎对称,然后考虑使用A=(A+A')/2
为了使A.
对称之前调用EIG
.这确保了EIG
计算实特征值而不是复数特征值。
数据类型:双倍的
复数的支持:万博1manbetx是的
B
—输入矩阵输入矩阵,指定为与相同的平方矩阵A.
.当B
是指定的,EIG
解决广义特征值问题* V = B * * D
.
如果B
那么对称是正定的吗EIG
使用专用算法进行这种情况。如果B
是几乎对称正定,则考虑使用B = (B + B) / 2
为了使B
对称之前调用EIG
.
当A.
是标量,你可以指定B
作为一个空矩阵eigs ([], k)
解决标准特征值问题并消除歧义B
和K
.
数据类型:双倍的
复数的支持:万博1manbetx是的
K
—要计算的特征值数要计算的特征值的数目,指定为一个正标量整数。
例子:eigs (2)
的两个最大的特征值A.
.
σ
—类型的特征值“largestabs”
(默认)|“smallestabs”
|“最大”
|'Smallestreal'
|'hothendsreal'
|'最大自动化'
|“smallestimag”
|“bothendsimag”
|标量特征值的类型,指定为表中的一个值。
σ |
描述 |
西格玛(R2017A及更早版本) |
---|---|---|
标量(实数或复数,包括0) |
最接近这个数的特征值 |
没变 |
|
最大的大小。 |
“lm” |
|
最小的幅度。与...一样 |
“sm” |
|
最大的真实。 |
“lr” ,“拉” |
|
最小的真实。 |
“sr” ,“sa” |
|
两端, |
“是” |
为非对称问题,σ
也可以是:
σ |
描述 |
西格玛(R2017A及更早版本) |
---|---|---|
|
最大的虚构部分。 |
“李” 如果A. 这很复杂。 |
|
最小的虚构部分。 |
“如果” 如果A. 这很复杂。 |
|
两端, |
“李” 如果A. 这是真的。 |
例子:eigs (k, 1)
返回K
最接近1的特征值。
例子:eigs (k ' smallestabs ')
返回K
最小的大小特征值。
数据类型:双倍的
|char
|细绳
选择
—选择结构选项结构,指定为包含此表中一个或多个字段的结构。
请注意
不建议使用options结构来指定选项。请使用名称-值对。
选项字段 | 描述 | 名称值对 |
---|---|---|
issym |
对称的 |
“IsFunctionSymmetric” |
托尔 |
收敛宽容。 |
“宽容” |
max |
最大迭代次数。 |
“最大迭代次数” |
P |
兰氏基向量的个数。 |
'subspacedimension' |
半 |
从向量。 |
“StartVector” |
disp |
诊断信息显示级别。 |
'展示' |
失败 |
处理产出中的非符号特征值。 | “FailureTreatment” |
SPDB. |
是B 对称正定? |
“IsSymmetricDefinite” |
cholB |
是 |
“伊斯切莱斯基” |
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
与'展示'
选项打开以查看预期的输出阿芬
.
N
—由此表示的方形矩阵的大小阿芬
方形矩阵的大小A.
它由阿芬
,指定为正标量整数。
指定可选的逗号分隔的字符对名称、值
论点。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen
.
d = eigs (k,σ,“宽容”,1平台以及MaxIterations, 100)
放松收敛容忍度,使用更少的迭代。
“宽容”
—收敛公差1E-14
(默认)|积极的真正标量收敛公差,指定为逗号分隔对组成“宽容”
一个正的实数标量。
例子:s = eigs (k,σ,“宽容”,1 e - 3)
“最大迭代次数”
—最大算法迭代次数300
(默认)|正整数最大算法迭代次数,指定为逗号分隔对,由“最大迭代次数”
和一个正整数。
例子:d=EIG(A,k,西格玛,'MaxIterations',350)
'subspacedimension'
—Krylov子空间的最大大小马克斯(2 * k, 20)
(默认)|非负整数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”
—初始起始载体初始起始向量,指定为逗号分隔对,由“StartVector”
和一个数字向量。
指定不同的随机起始向量的主要原因是当您希望控制用于生成向量的随机数流时。
请注意
EIG
使用私有随机数流以可重复的方式选择起始向量。改变随机数种子不是影响起始向量。
例子:d=EIG(A,k,sigma,'StartVector',randn(m,1))
使用从全局随机数流提取值的随机开始向量。
数据类型:双倍的
“FailureTreatment”
—非收敛特征值的处理“replacenan”
(默认)|“保持”
|“下降”
非收敛特征值的处理,指定为逗号分隔对,由“FailureTreatment”
其中一个选择是:“replacenan”
,“保持”
,或“下降”
.
的价值“FailureTreatment”
确定如何EIG
在输出中显示非收敛特征值。
选项 |
影响产出 |
---|---|
|
将非收敛特征值替换为 |
|
在输出中包含非收敛特征值。 |
|
从输出中删除非转换的特征值。此选项可能会导致 |
例子:d = eigs (k,σ,“FailureTreatment”、“下降”)
从输出中移除非聚集特征值。
数据类型:char
|细绳
'展示'
—切换诊断信息显示假
或0
(默认)|真正的
或1.
用于显示诊断信息的切换,指定为由逗号分隔的对组成'展示'
和数字或逻辑1.
(真正的
)或0
(假
).指定值真正的
或1.
在计算过程中打开诊断信息的显示。
阿芬
“IsFunctionSymmetric”
—对称的阿芬
矩阵真正的
或1.
|假
或0
对称的阿芬
矩阵,指定为逗号分隔对,由“IsFunctionSymmetric”
和数字或逻辑1.
(真正的
)或0
(假
).
此选项指定是否矩阵阿芬
适用于其输入向量是对称的。指定值真正的
或1.
表示EIG
应该对对称矩阵使用专门的算法并返回实特征值。
* V = B * * D
“伊斯切莱斯基”
—Cholesky分解切换B
真正的
或1.
|假
或0
Cholesky分解切换B
,指定为逗号分隔的对,由“伊斯切莱斯基”
和数字或逻辑1.
(真正的
)或0
(假
).
此选项指定矩阵的输入是否为B
在呼叫中eigs (A, B, ___)
是乔尔斯基因素吗R
制作人R=胆固醇(B)
.
请注意
如果需要,请不要使用此选项σ
是“smallestabs”
或数字标量。
“CholeskyPermutation”
—Cholesky置换向量1:n ..
(默认)|向量乔尔斯基排列向量,指定为逗号分隔对,由“CholeskyPermutation”
和一个数字向量。指定置换向量permB
如果稀疏矩阵B
根据分解之前重新排序CHOL(B(Permb,Permb)))
.
您还可以使用的三种输出语法胆固醇
对于直接获得的稀疏矩阵permB
具有[R,p,permB]=chol(B,'vector')
.
请注意
如果需要,请不要使用此选项σ
是“smallestabs”
或数字标量。
“IsSymmetricDefinite”
—对称正定切换B
真正的
或1.
|假
或0
对称正定切换B
,指定为逗号分隔的对,由“IsSymmetricDefinite”
和数字或逻辑1.
(真正的
)或0
(假
).指定真正的
或1.
当你知道的时候B
是对称正定的,也就是说,它是一个具有严格正特征值的对称矩阵。
如果B
对称正半定(一些特征值是零),然后指定“IsSymmetricDefinite”
作为真正的
或1.
部队EIG
使用它在B
是对称的积极明确。
请注意
要使用此选项,值为σ
必须是数字或“smallestabs”
.
D
-特征值特征值,作为列向量返回。D
根据的值进行不同的排序σ
.
价值 |
输出排序 |
---|---|
|
降序 |
|
按实部降序 |
|
按虚部降序排列 |
|
按数量级递增 |
|
按实部升序 |
|
虚幻的部分升序 |
|
虚拟部分绝对值降序 |
v
-特征向量特征向量,作为矩阵返回。列中的列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=λx和A.Y=λY,然后A.(x+Y) =λ(x+Y),所以x+Y也是的特征向量A..
D
-特征值矩阵特征值矩阵,返回为特征值在主对角上的对角矩阵。
国旗
-会聚旗0
|1.
融合标志,返回0
或1.
.价值0
表示所有特征值都会融合。否则,并非所有的特征值都会融合。
使用此收敛标志输出抑制了关于收敛失败的警告。
EIG
使用专用随机数流生成默认起始向量,以确保运行的再现性。使用rng
打电话之前EIG
不影响输出。
使用EIG
不是最有效的方法来找到小,密集的矩阵的一些特征值。对于此类问题,使用可能更快环境影响评估(完整(A))
.例如,在一个500 × 500矩阵中找到三个特征值是一个相对较小的问题,很容易处理eig
.
如果EIG
对于给定的矩阵,如果不能收敛,则通过增大的值来增加Lanczos基向量的数量'subspacedimension'
.作为次要选择,调整最大迭代次数,“最大迭代次数”
,收敛容差,“宽容”
,也有助于收敛行为。
R2017b中的行为发生了变化
对输出排序顺序的更改
EIG
现在,根据的值对输出进行排序σ
.例如,命令eigs (k ' largestabs ')
生产K
特征值按大小降序排序。
以前,由输出产生的排序顺序EIG
没有保证。
再现性
打电话EIG
现在,连续多次生成相同的结果。Set“StartVector”
到一个随机向量来改变此行为。
显示
显示值为2.
不再返回定时信息。反而,EIG
treat2.
与价值相同1.
.控件所显示的消息'展示'
选择已经改变了。新消息显示了每次迭代中的剩余值,而不是Ritz值。
[1] Stewart,G.W.“大型特征问题的Krylov-Schur算法。”暹罗矩阵分析与应用杂志.2001年第23卷第3期601-614页。
Lehoucq, r.b., D.C. Sorenson, C. Yang。ARPACK用户指南.费城,宾夕法尼亚州:SIAM, 1998年。
此功能完全支持分布式数组。万博1manbetx有关更多信息,请参阅使用分布式阵列运行MATLAB函数(并行计算工具箱).
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
您还可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。