R中的特征向量复非对称矩阵不同于Matlab:如何解决这个问题?

R中的特征向量复非对称矩阵不同于Matlab:如何解决这个问题?,r,matlab,matrix,complex-numbers,eigenvector,R,Matlab,Matrix,Complex Numbers,Eigenvector,我想计算R中复矩阵的特征值。 比较在MATLAB中获得的值,我没有从完全相同的矩阵中得到在R计算中获得的相同特征值 在R中,我使用了eigen()。在MATLAB中,使用了eig()或eigs()(两个函数给出的特征值相同,但与R函数不同) 对于实矩阵,R和MATLAB是一致的。 如何在R中得到与MATLAB相同的结果 Matlab实矩阵中的示例: squeeze(Sigma_X(:,:,h+1)) %real matrix 10x10 ans = 1.0e+03 * Columns 1 t

我想计算R中复矩阵的特征值。 比较在MATLAB中获得的值,我没有从完全相同的矩阵中得到在R计算中获得的相同特征值

在R中,我使用了
eigen()
。在MATLAB中,使用了
eig()
eigs()
(两个函数给出的特征值相同,但与R函数不同)

对于实矩阵,R和MATLAB是一致的。 如何在R中得到与MATLAB相同的结果

Matlab实矩阵中的示例:

squeeze(Sigma_X(:,:,h+1)) %real matrix 10x10
ans =

1.0e+03 *

Columns 1 through 6

5.8706    5.9966    6.1225    6.2484    6.3744    6.5003
5.9966    6.1260    6.2554    6.3849    6.5143    6.6438
6.1225    6.2554    6.3884    6.5213    6.6543    6.7872
6.2484    6.3849    6.5213    6.6578    6.7942    6.9306
6.3744    6.5143    6.6543    6.7942    6.9341    7.0741
6.5003    6.6438    6.7872    6.9306    7.0741    7.2175
6.6263    6.7732    6.9201    7.0671    7.2140    7.3609
6.7522    6.9026    7.0531    7.2035    7.3539    7.5044
6.8782    7.0321    7.1860    7.3399    7.4939    7.6478
7.0041    7.1615    7.3190    7.4764    7.6338    7.7912

Columns 7 through 10

6.6263    6.7522    6.8782    7.0041
6.7732    6.9026    7.0321    7.1615
6.9201    7.0531    7.1860    7.3190
7.0671    7.2035    7.3399    7.4764
7.2140    7.3539    7.4939    7.6338
7.3609    7.5044    7.6478    7.7912
7.5079    7.6548    7.8017    7.9487
7.6548    7.8052    7.9557    8.1061
7.8017    7.9557    8.1096    8.2635
7.9487    8.1061    8.2635    8.4210

opt.disp = 0;
[P, D] = eigs(squeeze(Sigma_X(:,:,h+1)),q,'LM',opt) %compute the eigenvalues and eigenvectors

 P =

-0.2872    0.5128
-0.2936    0.4029
-0.2999    0.2930
-0.3062    0.1830
-0.3125    0.0731
-0.3189   -0.0368
-0.3252   -0.1467
-0.3315   -0.2566
-0.3379   -0.3665
-0.3442   -0.4764

D =

1.0e+04 *

7.0984         0
     0    0.0054
drop(Sigma_X[,,h+1]) #Same real matrix as before, 10x10

Columns 1 through 5

 5870.610+0i 5996.552+0i 6122.495+0i 6248.438+0i 6374.381+0i 
 5996.552+0i 6125.994+0i 6255.435+0i 6384.876+0i 6514.317+0i 
 6122.495+0i 6255.435+0i 6388.375+0i 6521.314+0i 6654.254+0i 
 6248.438+0i 6384.876+0i 6521.314+0i 6657.752+0i 6794.190+0i 
 6374.381+0i 6514.317+0i 6654.254+0i 6794.190+0i 6934.127+0i 
 6500.324+0i 6643.759+0i 6787.194+0i 6930.629+0i 7074.063+0i 
 6626.267+0i 6773.200+0i 6920.133+0i 7067.067+0i 7214.000+0i 
 6752.210+0i 6902.641+0i 7053.073+0i 7203.505+0i 7353.937+0i 
 6878.152+0i 7032.083+0i 7186.013+0i 7339.943+0i 7493.873+0i 
 7004.095+0i 7161.524+0i 7318.952+0i 7476.381+0i 7633.810+0i 

 Columns 6 through 10

 6500.324+0i 6626.267+0i 6752.210+0i 6878.152+0i 7004.095+0i
 6643.759+0i 6773.200+0i 6902.641+0i 7032.083+0i 7161.524+0i
 6787.194+0i 6920.133+0i 7053.073+0i 7186.013+0i 7318.952+0i
 6930.629+0i 7067.067+0i 7203.505+0i 7339.943+0i 7476.381+0i
 7074.063+0i 7214.000+0i 7353.937+0i 7493.873+0i 7633.810+0i
 7217.498+0i 7360.933+0i 7504.368+0i 7647.803+0i 7791.238+0i
 7360.933+0i 7507.867+0i 7654.800+0i 7801.733+0i 7948.667+0i
 7504.368+0i 7654.800+0i 7805.232+0i 7955.663+0i 8106.095+0i
 7647.803+0i 7801.733+0i 7955.663+0i 8109.594+0i 8263.524+0i
 7791.238+0i 7948.667+0i 8106.095+0i 8263.524+0i 8420.952+0i

 Decomp <- eigen(drop(Sigma_X[,,h+1])) #frequency 0
 DD <- diag(Decomp$values[1:q])
 PP <- Decomp$vectors[,1:q] 

 PP

 [1,] -0.2872322+0i  0.5127886+0i
 [2,] -0.2935595+0i  0.4028742+0i
 [3,] -0.2998868+0i  0.2929598+0i
 [4,] -0.3062141+0i  0.1830454+0i
 [5,] -0.3125415+0i  0.0731310+0i
 [6,] -0.3188688+0i -0.0367834+0i
 [7,] -0.3251961+0i -0.1466978+0i
 [8,] -0.3315234+0i -0.2566122+0i
 [9,] -0.3378507+0i -0.3665266+0i
[10,] -0.3441780+0i -0.4764410+0i

 DD

 [1,] 70983.65  0.00000
 [2,]     0.00 54.34878
j=1

squeeze(Sigma_X(:,:,j))

ans =

1.0e+02 *

Columns 1 through 5

3.4601+0.0000i 3.5075-0.0304i 3.5548-0.0607i 3.6022-0.0911i 3.6496-0.1215i
3.5075+0.0304i 3.5562+0.0000i 3.6049-0.0304i 3.6535-0.0607i 3.7022-0.0911i
3.5548+0.0607i 3.6049+0.0304i 3.6549+0.0000i 3.7049-0.0304i 3.7549- 0.0607i
3.6022+0.0911i 3.6535+0.0607i 3.7049+0.0304i 3.7562+0.0000i 3.8075- 0.0304i
3.6496+0.1215i 3.7022+0.0911i 3.7549+0.0607i 3.8075+0.0304i 3.8602+ 0.0000i
3.6970+0.1518i 3.7509+0.1215i 3.8049+0.0911i 3.8588+0.0607i 3.9128+ 0.0304i
3.7444+0.1822i 3.7996+0.1518i 3.8549+0.1215i 3.9102+0.0911i 3.9654+ 0.0607i
3.7917+0.2126i  3.8483+0.1822i 3.9049+0.1518i 3.9615+0.1215i 4.0181+ 0.0911i
3.8391+0.2429i 3.8970+0.2126i 3.9549+0.1822i 4.0128+0.1518i 4.0707+ 0.1215i
3.8865+0.2733i 3.9457+0.2429i 4.0049+0.2126i 4.0641+0.1822i 4.1234+ 0.1518i

Columns 6 through 10

3.6970-0.1518i 3.7444-0.1822i 3.7917-0.2126i 3.8391-0.2429i 3.8865- 0.2733i
3.7509-0.1215i 3.7996-0.1518i 3.8483-0.1822i 3.8970-0.2126i 3.9457- 0.2429i
3.8049-0.0911i 3.8549-0.1215i 3.9049-0.1518i 3.9549-0.1822i 4.0049- 0.2126i
3.8588-0.0607i 3.9102-0.0911i 3.9615-0.1215i 4.0128-0.1518i 4.0641- 0.1822i
3.9128-0.0304i 3.9654-0.0607i 4.0181-0.0911i 4.0707-0.1215i 4.1234- 0.1518i
3.9668+0.0000i 4.0207-0.0304i 4.0747-0.0607i 4.1286-0.0911i 4.1826- 0.1215i
4.0207+0.0304i 4.0760+0.0000i 4.1313-0.0304i 4.1865-0.0607i 4.2418- 0.0911i
4.0747+0.0607i 4.1313+0.0304i 4.1878+0.0000i 4.2444-0.0304i 4.3010- 0.0607i
4.1286+0.0911i 4.1865+0.0607i 4.2444+0.0304i 4.3023+0.0000i 4.3602- 0.0304i
4.1826+0.1215i 4.2418+0.0911i 4.3010+0.0607i 4.3602+0.0304i 4.4195+ 0.0000i

[P, D] = eigs(squeeze(Sigma_X(:,:,j)),q,'LM',opt);


P =

 -0.1206 - 0.2711i     0.0471 + 0.5052i
 -0.1199 - 0.2760i     0.0384 + 0.3955i
 -0.1192 - 0.2810i     0.0297 + 0.2859i
 -0.1186 - 0.2859i     0.0210 + 0.1762i
 -0.1179 - 0.2908i     0.0124 + 0.0666i
 -0.1172 - 0.2957i     0.0037 - 0.0430i
 -0.1165 - 0.3006i    -0.0050 - 0.1527i
 -0.1159 - 0.3055i    -0.0137 - 0.2623i
 -0.1152 - 0.3104i    -0.0224 - 0.3720i
 -0.1145 - 0.3153i    -0.0311 - 0.4816i
D =

  1.0e+03 *

  3.9211 + 0.0000i   0.0000 + 0.0000i
  0.0000 + 0.0000i   0.0029 - 0.0000i
j=1
drop(Sigma_X[,,j])

Columns 1 through 4

346.0094+0.0000i  350.7470-3.0368i  355.4846-6.0736i  360.2222-9.1104i 
350.7470+3.0368i  355.6162+0.0000i  360.4854-3.0368i  365.3546-6.0736i 
355.4846+6.0736i  360.4854+3.0368i  365.4862+0.0000i  370.4870-3.0368i 
360.2222+9.1104i  365.3546+6.0736i  370.4870+3.0368i  375.6194+0.0000i 
364.9598+12.1472i 370.2238+9.1104i  375.4878+6.0736i  380.7518+3.0368i 
369.6974+15.1839i 375.0930+12.1472i 380.4886+9.1104i  385.8842+6.0736i 
374.4350+18.2207i 379.9622+15.1839i 385.4894+12.1472i 391.0166+9.1104i 
379.1726+21.2575i 384.8314+18.2207i 390.4902+15.1839i 396.1490+12.1472i 
383.9102+24.2943i 389.7006+21.2575i 395.4910+18.2207i 401.2814+15.1839i 
388.6478+27.3311i 394.5698+24.2943i 400.4918+21.2575i 406.4138+18.2207i 

Columns 5 through 7

 364.9598-12.1472i 369.6974-15.1839i 374.4350-18.2207i
 370.2238-9.1104i  375.0930-12.1472i 379.9622-15.1839i
 375.4878-6.0736i  380.4886-9.1104i  385.4894-12.1472i
 380.7518-3.0368i  385.8842-6.0736i  391.0166-9.1104i
 386.0158+ 0.0000i 391.2798- 3.0368i 396.5438- 6.0736i 
 391.2798+ 3.0368i 396.6754+ 0.0000i 402.0710- 3.0368i
 396.5438+ 6.0736i 402.0710+ 3.0368i 407.5982+ 0.0000i         
 401.8078+ 9.1104i 407.4666+ 6.0736i 413.1254+ 3.0368i
 407.0718+12.1472i 412.8622+ 9.1104i 418.6526+ 6.0736i
 412.3358+15.1839i 418.2578+12.1472i 424.1798+ 9.1104i

Columns 8 through 10

  379.1726-21.2575i 383.9102-24.2943i 388.6478-27.3311i
  384.8314-18.2207i 389.7006-21.2575i 394.5698-24.2943i
  390.4902-15.1839i 395.4910-18.2207i 400.4918-21.2575i
  396.1490-12.1472i 401.2814-15.1839i 406.4138-18.2207i
  401.8078- 9.1104i 407.0718-12.1472i 412.3358-15.1839i
  407.4666- 6.0736i 412.8622- 9.1104i 418.2578-12.1472i
  413.1254- 3.0368i 418.6526- 6.0736i 424.1798- 9.1104i
  418.7842+ 0.0000i 424.4430- 3.0368i 430.1018- 6.0736i
  424.4430+ 3.0368i 430.2334+ 0.0000i 436.0237- 3.0368i
  430.1018+ 6.0736i 436.0237+ 3.0368i 441.9457+ 0.0000i
R实矩阵中的示例:

squeeze(Sigma_X(:,:,h+1)) %real matrix 10x10
ans =

1.0e+03 *

Columns 1 through 6

5.8706    5.9966    6.1225    6.2484    6.3744    6.5003
5.9966    6.1260    6.2554    6.3849    6.5143    6.6438
6.1225    6.2554    6.3884    6.5213    6.6543    6.7872
6.2484    6.3849    6.5213    6.6578    6.7942    6.9306
6.3744    6.5143    6.6543    6.7942    6.9341    7.0741
6.5003    6.6438    6.7872    6.9306    7.0741    7.2175
6.6263    6.7732    6.9201    7.0671    7.2140    7.3609
6.7522    6.9026    7.0531    7.2035    7.3539    7.5044
6.8782    7.0321    7.1860    7.3399    7.4939    7.6478
7.0041    7.1615    7.3190    7.4764    7.6338    7.7912

Columns 7 through 10

6.6263    6.7522    6.8782    7.0041
6.7732    6.9026    7.0321    7.1615
6.9201    7.0531    7.1860    7.3190
7.0671    7.2035    7.3399    7.4764
7.2140    7.3539    7.4939    7.6338
7.3609    7.5044    7.6478    7.7912
7.5079    7.6548    7.8017    7.9487
7.6548    7.8052    7.9557    8.1061
7.8017    7.9557    8.1096    8.2635
7.9487    8.1061    8.2635    8.4210

opt.disp = 0;
[P, D] = eigs(squeeze(Sigma_X(:,:,h+1)),q,'LM',opt) %compute the eigenvalues and eigenvectors

 P =

-0.2872    0.5128
-0.2936    0.4029
-0.2999    0.2930
-0.3062    0.1830
-0.3125    0.0731
-0.3189   -0.0368
-0.3252   -0.1467
-0.3315   -0.2566
-0.3379   -0.3665
-0.3442   -0.4764

D =

1.0e+04 *

7.0984         0
     0    0.0054
drop(Sigma_X[,,h+1]) #Same real matrix as before, 10x10

Columns 1 through 5

 5870.610+0i 5996.552+0i 6122.495+0i 6248.438+0i 6374.381+0i 
 5996.552+0i 6125.994+0i 6255.435+0i 6384.876+0i 6514.317+0i 
 6122.495+0i 6255.435+0i 6388.375+0i 6521.314+0i 6654.254+0i 
 6248.438+0i 6384.876+0i 6521.314+0i 6657.752+0i 6794.190+0i 
 6374.381+0i 6514.317+0i 6654.254+0i 6794.190+0i 6934.127+0i 
 6500.324+0i 6643.759+0i 6787.194+0i 6930.629+0i 7074.063+0i 
 6626.267+0i 6773.200+0i 6920.133+0i 7067.067+0i 7214.000+0i 
 6752.210+0i 6902.641+0i 7053.073+0i 7203.505+0i 7353.937+0i 
 6878.152+0i 7032.083+0i 7186.013+0i 7339.943+0i 7493.873+0i 
 7004.095+0i 7161.524+0i 7318.952+0i 7476.381+0i 7633.810+0i 

 Columns 6 through 10

 6500.324+0i 6626.267+0i 6752.210+0i 6878.152+0i 7004.095+0i
 6643.759+0i 6773.200+0i 6902.641+0i 7032.083+0i 7161.524+0i
 6787.194+0i 6920.133+0i 7053.073+0i 7186.013+0i 7318.952+0i
 6930.629+0i 7067.067+0i 7203.505+0i 7339.943+0i 7476.381+0i
 7074.063+0i 7214.000+0i 7353.937+0i 7493.873+0i 7633.810+0i
 7217.498+0i 7360.933+0i 7504.368+0i 7647.803+0i 7791.238+0i
 7360.933+0i 7507.867+0i 7654.800+0i 7801.733+0i 7948.667+0i
 7504.368+0i 7654.800+0i 7805.232+0i 7955.663+0i 8106.095+0i
 7647.803+0i 7801.733+0i 7955.663+0i 8109.594+0i 8263.524+0i
 7791.238+0i 7948.667+0i 8106.095+0i 8263.524+0i 8420.952+0i

 Decomp <- eigen(drop(Sigma_X[,,h+1])) #frequency 0
 DD <- diag(Decomp$values[1:q])
 PP <- Decomp$vectors[,1:q] 

 PP

 [1,] -0.2872322+0i  0.5127886+0i
 [2,] -0.2935595+0i  0.4028742+0i
 [3,] -0.2998868+0i  0.2929598+0i
 [4,] -0.3062141+0i  0.1830454+0i
 [5,] -0.3125415+0i  0.0731310+0i
 [6,] -0.3188688+0i -0.0367834+0i
 [7,] -0.3251961+0i -0.1466978+0i
 [8,] -0.3315234+0i -0.2566122+0i
 [9,] -0.3378507+0i -0.3665266+0i
[10,] -0.3441780+0i -0.4764410+0i

 DD

 [1,] 70983.65  0.00000
 [2,]     0.00 54.34878
j=1

squeeze(Sigma_X(:,:,j))

ans =

1.0e+02 *

Columns 1 through 5

3.4601+0.0000i 3.5075-0.0304i 3.5548-0.0607i 3.6022-0.0911i 3.6496-0.1215i
3.5075+0.0304i 3.5562+0.0000i 3.6049-0.0304i 3.6535-0.0607i 3.7022-0.0911i
3.5548+0.0607i 3.6049+0.0304i 3.6549+0.0000i 3.7049-0.0304i 3.7549- 0.0607i
3.6022+0.0911i 3.6535+0.0607i 3.7049+0.0304i 3.7562+0.0000i 3.8075- 0.0304i
3.6496+0.1215i 3.7022+0.0911i 3.7549+0.0607i 3.8075+0.0304i 3.8602+ 0.0000i
3.6970+0.1518i 3.7509+0.1215i 3.8049+0.0911i 3.8588+0.0607i 3.9128+ 0.0304i
3.7444+0.1822i 3.7996+0.1518i 3.8549+0.1215i 3.9102+0.0911i 3.9654+ 0.0607i
3.7917+0.2126i  3.8483+0.1822i 3.9049+0.1518i 3.9615+0.1215i 4.0181+ 0.0911i
3.8391+0.2429i 3.8970+0.2126i 3.9549+0.1822i 4.0128+0.1518i 4.0707+ 0.1215i
3.8865+0.2733i 3.9457+0.2429i 4.0049+0.2126i 4.0641+0.1822i 4.1234+ 0.1518i

Columns 6 through 10

3.6970-0.1518i 3.7444-0.1822i 3.7917-0.2126i 3.8391-0.2429i 3.8865- 0.2733i
3.7509-0.1215i 3.7996-0.1518i 3.8483-0.1822i 3.8970-0.2126i 3.9457- 0.2429i
3.8049-0.0911i 3.8549-0.1215i 3.9049-0.1518i 3.9549-0.1822i 4.0049- 0.2126i
3.8588-0.0607i 3.9102-0.0911i 3.9615-0.1215i 4.0128-0.1518i 4.0641- 0.1822i
3.9128-0.0304i 3.9654-0.0607i 4.0181-0.0911i 4.0707-0.1215i 4.1234- 0.1518i
3.9668+0.0000i 4.0207-0.0304i 4.0747-0.0607i 4.1286-0.0911i 4.1826- 0.1215i
4.0207+0.0304i 4.0760+0.0000i 4.1313-0.0304i 4.1865-0.0607i 4.2418- 0.0911i
4.0747+0.0607i 4.1313+0.0304i 4.1878+0.0000i 4.2444-0.0304i 4.3010- 0.0607i
4.1286+0.0911i 4.1865+0.0607i 4.2444+0.0304i 4.3023+0.0000i 4.3602- 0.0304i
4.1826+0.1215i 4.2418+0.0911i 4.3010+0.0607i 4.3602+0.0304i 4.4195+ 0.0000i

[P, D] = eigs(squeeze(Sigma_X(:,:,j)),q,'LM',opt);


P =

 -0.1206 - 0.2711i     0.0471 + 0.5052i
 -0.1199 - 0.2760i     0.0384 + 0.3955i
 -0.1192 - 0.2810i     0.0297 + 0.2859i
 -0.1186 - 0.2859i     0.0210 + 0.1762i
 -0.1179 - 0.2908i     0.0124 + 0.0666i
 -0.1172 - 0.2957i     0.0037 - 0.0430i
 -0.1165 - 0.3006i    -0.0050 - 0.1527i
 -0.1159 - 0.3055i    -0.0137 - 0.2623i
 -0.1152 - 0.3104i    -0.0224 - 0.3720i
 -0.1145 - 0.3153i    -0.0311 - 0.4816i
D =

  1.0e+03 *

  3.9211 + 0.0000i   0.0000 + 0.0000i
  0.0000 + 0.0000i   0.0029 - 0.0000i
j=1
drop(Sigma_X[,,j])

Columns 1 through 4

346.0094+0.0000i  350.7470-3.0368i  355.4846-6.0736i  360.2222-9.1104i 
350.7470+3.0368i  355.6162+0.0000i  360.4854-3.0368i  365.3546-6.0736i 
355.4846+6.0736i  360.4854+3.0368i  365.4862+0.0000i  370.4870-3.0368i 
360.2222+9.1104i  365.3546+6.0736i  370.4870+3.0368i  375.6194+0.0000i 
364.9598+12.1472i 370.2238+9.1104i  375.4878+6.0736i  380.7518+3.0368i 
369.6974+15.1839i 375.0930+12.1472i 380.4886+9.1104i  385.8842+6.0736i 
374.4350+18.2207i 379.9622+15.1839i 385.4894+12.1472i 391.0166+9.1104i 
379.1726+21.2575i 384.8314+18.2207i 390.4902+15.1839i 396.1490+12.1472i 
383.9102+24.2943i 389.7006+21.2575i 395.4910+18.2207i 401.2814+15.1839i 
388.6478+27.3311i 394.5698+24.2943i 400.4918+21.2575i 406.4138+18.2207i 

Columns 5 through 7

 364.9598-12.1472i 369.6974-15.1839i 374.4350-18.2207i
 370.2238-9.1104i  375.0930-12.1472i 379.9622-15.1839i
 375.4878-6.0736i  380.4886-9.1104i  385.4894-12.1472i
 380.7518-3.0368i  385.8842-6.0736i  391.0166-9.1104i
 386.0158+ 0.0000i 391.2798- 3.0368i 396.5438- 6.0736i 
 391.2798+ 3.0368i 396.6754+ 0.0000i 402.0710- 3.0368i
 396.5438+ 6.0736i 402.0710+ 3.0368i 407.5982+ 0.0000i         
 401.8078+ 9.1104i 407.4666+ 6.0736i 413.1254+ 3.0368i
 407.0718+12.1472i 412.8622+ 9.1104i 418.6526+ 6.0736i
 412.3358+15.1839i 418.2578+12.1472i 424.1798+ 9.1104i

Columns 8 through 10

  379.1726-21.2575i 383.9102-24.2943i 388.6478-27.3311i
  384.8314-18.2207i 389.7006-21.2575i 394.5698-24.2943i
  390.4902-15.1839i 395.4910-18.2207i 400.4918-21.2575i
  396.1490-12.1472i 401.2814-15.1839i 406.4138-18.2207i
  401.8078- 9.1104i 407.0718-12.1472i 412.3358-15.1839i
  407.4666- 6.0736i 412.8622- 9.1104i 418.2578-12.1472i
  413.1254- 3.0368i 418.6526- 6.0736i 424.1798- 9.1104i
  418.7842+ 0.0000i 424.4430- 3.0368i 430.1018- 6.0736i
  424.4430+ 3.0368i 430.2334+ 0.0000i 436.0237- 3.0368i
  430.1018+ 6.0736i 436.0237+ 3.0368i 441.9457+ 0.0000i
R复杂矩阵中的示例:

squeeze(Sigma_X(:,:,h+1)) %real matrix 10x10
ans =

1.0e+03 *

Columns 1 through 6

5.8706    5.9966    6.1225    6.2484    6.3744    6.5003
5.9966    6.1260    6.2554    6.3849    6.5143    6.6438
6.1225    6.2554    6.3884    6.5213    6.6543    6.7872
6.2484    6.3849    6.5213    6.6578    6.7942    6.9306
6.3744    6.5143    6.6543    6.7942    6.9341    7.0741
6.5003    6.6438    6.7872    6.9306    7.0741    7.2175
6.6263    6.7732    6.9201    7.0671    7.2140    7.3609
6.7522    6.9026    7.0531    7.2035    7.3539    7.5044
6.8782    7.0321    7.1860    7.3399    7.4939    7.6478
7.0041    7.1615    7.3190    7.4764    7.6338    7.7912

Columns 7 through 10

6.6263    6.7522    6.8782    7.0041
6.7732    6.9026    7.0321    7.1615
6.9201    7.0531    7.1860    7.3190
7.0671    7.2035    7.3399    7.4764
7.2140    7.3539    7.4939    7.6338
7.3609    7.5044    7.6478    7.7912
7.5079    7.6548    7.8017    7.9487
7.6548    7.8052    7.9557    8.1061
7.8017    7.9557    8.1096    8.2635
7.9487    8.1061    8.2635    8.4210

opt.disp = 0;
[P, D] = eigs(squeeze(Sigma_X(:,:,h+1)),q,'LM',opt) %compute the eigenvalues and eigenvectors

 P =

-0.2872    0.5128
-0.2936    0.4029
-0.2999    0.2930
-0.3062    0.1830
-0.3125    0.0731
-0.3189   -0.0368
-0.3252   -0.1467
-0.3315   -0.2566
-0.3379   -0.3665
-0.3442   -0.4764

D =

1.0e+04 *

7.0984         0
     0    0.0054
drop(Sigma_X[,,h+1]) #Same real matrix as before, 10x10

Columns 1 through 5

 5870.610+0i 5996.552+0i 6122.495+0i 6248.438+0i 6374.381+0i 
 5996.552+0i 6125.994+0i 6255.435+0i 6384.876+0i 6514.317+0i 
 6122.495+0i 6255.435+0i 6388.375+0i 6521.314+0i 6654.254+0i 
 6248.438+0i 6384.876+0i 6521.314+0i 6657.752+0i 6794.190+0i 
 6374.381+0i 6514.317+0i 6654.254+0i 6794.190+0i 6934.127+0i 
 6500.324+0i 6643.759+0i 6787.194+0i 6930.629+0i 7074.063+0i 
 6626.267+0i 6773.200+0i 6920.133+0i 7067.067+0i 7214.000+0i 
 6752.210+0i 6902.641+0i 7053.073+0i 7203.505+0i 7353.937+0i 
 6878.152+0i 7032.083+0i 7186.013+0i 7339.943+0i 7493.873+0i 
 7004.095+0i 7161.524+0i 7318.952+0i 7476.381+0i 7633.810+0i 

 Columns 6 through 10

 6500.324+0i 6626.267+0i 6752.210+0i 6878.152+0i 7004.095+0i
 6643.759+0i 6773.200+0i 6902.641+0i 7032.083+0i 7161.524+0i
 6787.194+0i 6920.133+0i 7053.073+0i 7186.013+0i 7318.952+0i
 6930.629+0i 7067.067+0i 7203.505+0i 7339.943+0i 7476.381+0i
 7074.063+0i 7214.000+0i 7353.937+0i 7493.873+0i 7633.810+0i
 7217.498+0i 7360.933+0i 7504.368+0i 7647.803+0i 7791.238+0i
 7360.933+0i 7507.867+0i 7654.800+0i 7801.733+0i 7948.667+0i
 7504.368+0i 7654.800+0i 7805.232+0i 7955.663+0i 8106.095+0i
 7647.803+0i 7801.733+0i 7955.663+0i 8109.594+0i 8263.524+0i
 7791.238+0i 7948.667+0i 8106.095+0i 8263.524+0i 8420.952+0i

 Decomp <- eigen(drop(Sigma_X[,,h+1])) #frequency 0
 DD <- diag(Decomp$values[1:q])
 PP <- Decomp$vectors[,1:q] 

 PP

 [1,] -0.2872322+0i  0.5127886+0i
 [2,] -0.2935595+0i  0.4028742+0i
 [3,] -0.2998868+0i  0.2929598+0i
 [4,] -0.3062141+0i  0.1830454+0i
 [5,] -0.3125415+0i  0.0731310+0i
 [6,] -0.3188688+0i -0.0367834+0i
 [7,] -0.3251961+0i -0.1466978+0i
 [8,] -0.3315234+0i -0.2566122+0i
 [9,] -0.3378507+0i -0.3665266+0i
[10,] -0.3441780+0i -0.4764410+0i

 DD

 [1,] 70983.65  0.00000
 [2,]     0.00 54.34878
j=1

squeeze(Sigma_X(:,:,j))

ans =

1.0e+02 *

Columns 1 through 5

3.4601+0.0000i 3.5075-0.0304i 3.5548-0.0607i 3.6022-0.0911i 3.6496-0.1215i
3.5075+0.0304i 3.5562+0.0000i 3.6049-0.0304i 3.6535-0.0607i 3.7022-0.0911i
3.5548+0.0607i 3.6049+0.0304i 3.6549+0.0000i 3.7049-0.0304i 3.7549- 0.0607i
3.6022+0.0911i 3.6535+0.0607i 3.7049+0.0304i 3.7562+0.0000i 3.8075- 0.0304i
3.6496+0.1215i 3.7022+0.0911i 3.7549+0.0607i 3.8075+0.0304i 3.8602+ 0.0000i
3.6970+0.1518i 3.7509+0.1215i 3.8049+0.0911i 3.8588+0.0607i 3.9128+ 0.0304i
3.7444+0.1822i 3.7996+0.1518i 3.8549+0.1215i 3.9102+0.0911i 3.9654+ 0.0607i
3.7917+0.2126i  3.8483+0.1822i 3.9049+0.1518i 3.9615+0.1215i 4.0181+ 0.0911i
3.8391+0.2429i 3.8970+0.2126i 3.9549+0.1822i 4.0128+0.1518i 4.0707+ 0.1215i
3.8865+0.2733i 3.9457+0.2429i 4.0049+0.2126i 4.0641+0.1822i 4.1234+ 0.1518i

Columns 6 through 10

3.6970-0.1518i 3.7444-0.1822i 3.7917-0.2126i 3.8391-0.2429i 3.8865- 0.2733i
3.7509-0.1215i 3.7996-0.1518i 3.8483-0.1822i 3.8970-0.2126i 3.9457- 0.2429i
3.8049-0.0911i 3.8549-0.1215i 3.9049-0.1518i 3.9549-0.1822i 4.0049- 0.2126i
3.8588-0.0607i 3.9102-0.0911i 3.9615-0.1215i 4.0128-0.1518i 4.0641- 0.1822i
3.9128-0.0304i 3.9654-0.0607i 4.0181-0.0911i 4.0707-0.1215i 4.1234- 0.1518i
3.9668+0.0000i 4.0207-0.0304i 4.0747-0.0607i 4.1286-0.0911i 4.1826- 0.1215i
4.0207+0.0304i 4.0760+0.0000i 4.1313-0.0304i 4.1865-0.0607i 4.2418- 0.0911i
4.0747+0.0607i 4.1313+0.0304i 4.1878+0.0000i 4.2444-0.0304i 4.3010- 0.0607i
4.1286+0.0911i 4.1865+0.0607i 4.2444+0.0304i 4.3023+0.0000i 4.3602- 0.0304i
4.1826+0.1215i 4.2418+0.0911i 4.3010+0.0607i 4.3602+0.0304i 4.4195+ 0.0000i

[P, D] = eigs(squeeze(Sigma_X(:,:,j)),q,'LM',opt);


P =

 -0.1206 - 0.2711i     0.0471 + 0.5052i
 -0.1199 - 0.2760i     0.0384 + 0.3955i
 -0.1192 - 0.2810i     0.0297 + 0.2859i
 -0.1186 - 0.2859i     0.0210 + 0.1762i
 -0.1179 - 0.2908i     0.0124 + 0.0666i
 -0.1172 - 0.2957i     0.0037 - 0.0430i
 -0.1165 - 0.3006i    -0.0050 - 0.1527i
 -0.1159 - 0.3055i    -0.0137 - 0.2623i
 -0.1152 - 0.3104i    -0.0224 - 0.3720i
 -0.1145 - 0.3153i    -0.0311 - 0.4816i
D =

  1.0e+03 *

  3.9211 + 0.0000i   0.0000 + 0.0000i
  0.0000 + 0.0000i   0.0029 - 0.0000i
j=1
drop(Sigma_X[,,j])

Columns 1 through 4

346.0094+0.0000i  350.7470-3.0368i  355.4846-6.0736i  360.2222-9.1104i 
350.7470+3.0368i  355.6162+0.0000i  360.4854-3.0368i  365.3546-6.0736i 
355.4846+6.0736i  360.4854+3.0368i  365.4862+0.0000i  370.4870-3.0368i 
360.2222+9.1104i  365.3546+6.0736i  370.4870+3.0368i  375.6194+0.0000i 
364.9598+12.1472i 370.2238+9.1104i  375.4878+6.0736i  380.7518+3.0368i 
369.6974+15.1839i 375.0930+12.1472i 380.4886+9.1104i  385.8842+6.0736i 
374.4350+18.2207i 379.9622+15.1839i 385.4894+12.1472i 391.0166+9.1104i 
379.1726+21.2575i 384.8314+18.2207i 390.4902+15.1839i 396.1490+12.1472i 
383.9102+24.2943i 389.7006+21.2575i 395.4910+18.2207i 401.2814+15.1839i 
388.6478+27.3311i 394.5698+24.2943i 400.4918+21.2575i 406.4138+18.2207i 

Columns 5 through 7

 364.9598-12.1472i 369.6974-15.1839i 374.4350-18.2207i
 370.2238-9.1104i  375.0930-12.1472i 379.9622-15.1839i
 375.4878-6.0736i  380.4886-9.1104i  385.4894-12.1472i
 380.7518-3.0368i  385.8842-6.0736i  391.0166-9.1104i
 386.0158+ 0.0000i 391.2798- 3.0368i 396.5438- 6.0736i 
 391.2798+ 3.0368i 396.6754+ 0.0000i 402.0710- 3.0368i
 396.5438+ 6.0736i 402.0710+ 3.0368i 407.5982+ 0.0000i         
 401.8078+ 9.1104i 407.4666+ 6.0736i 413.1254+ 3.0368i
 407.0718+12.1472i 412.8622+ 9.1104i 418.6526+ 6.0736i
 412.3358+15.1839i 418.2578+12.1472i 424.1798+ 9.1104i

Columns 8 through 10

  379.1726-21.2575i 383.9102-24.2943i 388.6478-27.3311i
  384.8314-18.2207i 389.7006-21.2575i 394.5698-24.2943i
  390.4902-15.1839i 395.4910-18.2207i 400.4918-21.2575i
  396.1490-12.1472i 401.2814-15.1839i 406.4138-18.2207i
  401.8078- 9.1104i 407.0718-12.1472i 412.3358-15.1839i
  407.4666- 6.0736i 412.8622- 9.1104i 418.2578-12.1472i
  413.1254- 3.0368i 418.6526- 6.0736i 424.1798- 9.1104i
  418.7842+ 0.0000i 424.4430- 3.0368i 430.1018- 6.0736i
  424.4430+ 3.0368i 430.2334+ 0.0000i 436.0237- 3.0368i
  430.1018+ 6.0736i 436.0237+ 3.0368i 441.9457+ 0.0000i
如您所见,矩阵与之前在Matlab中计算的矩阵相同。 让我们计算特征值和特征向量

PP

[1,] -0.2967359+0.0000000i  0.50734838+0.00000000i
[2,] -0.3009476-0.0026119i  0.39737421-0.00152766i
[3,] -0.3051593-0.0052239i  0.28740004-0.00305533i
[4,] -0.3093709-0.0078358i  0.17742587-0.00458299i
[5,] -0.3135826-0.0104478i  0.06745170-0.00611065i
[6,] -0.3177943-0.0130597i -0.04252247-0.00763831i
[7,] -0.3220060-0.0156717i -0.15249664-0.00916598i
[8,] -0.3262177-0.0182836i -0.26247080-0.01069364i
[9,] -0.3304294-0.0208955i -0.37244497-0.01222130i
[10,] -0.3346411-0.0235075i -0.48241914-0.01374896i


DD

 3921.066 0.000000
    0.000 2.917833

如您所见,特征值与使用MATLAB计算的值相同,但特征向量不同。如何获得与MATLAB相同的特征向量?

答案很简单,但很难看到,因为向量很复杂。 如果在MATLAB中输入两个矩阵,并执行此操作

 P(:,1)./PP(:,1)

 ans =
0.4064 + 0.9136i
0.4063 + 0.9136i
0.4063 + 0.9139i
0.4065 + 0.9138i
0.4064 + 0.9138i
0.4063 + 0.9138i
0.4063 + 0.9138i
0.4065 + 0.9137i
0.4064 + 0.9137i
0.4063 + 0.9137i
你可以看到它们是线性相关的,对另一个也是一样的

恐怕,据我所知,没有办法保证两个程序的结果相同。计算特征值和向量通常并不容易,实现中的细微差异会导致您看到的差异

为了得到相同的结果,您可以尝试使用向量的第一个分量(即

P(:,1)/P(1,1)   and  PP(:,1)/PP(1,1) 
这给了我相同的向量,模小的差异,因为你们为你们的例子提供了不同数量的数字

编辑:另一个测试表明,这确实是Matlab所做的,除了将长度规格化为1之外。所以

tmp=P(:,1)/P(1,1);
tmp/norm(tmp)

返回与Matlab示例相同的向量

检查谁是对的,看这里:你至少应该发布你测试的矩阵,以及你测试的结果got@chtz这里我提供了一个例子。你现在能帮我解决这个问题吗?如果你使用的特征向量是
[1+0i;0+1i]
[0+1i,-1+0i]
(简化的例子),这真的不重要。如果这真的很重要,也许可以对你正在使用的算法提出一个问题。卢卡,@chtz的要点是,特征向量至少定义为一个标量因子的自由度(这也可以是一个复数标量!),对于退化特征值,选择特征向量的自由度甚至更大。理想情况下,无论你对特征向量做什么,最终结果都不应该对这个选择敏感。如果您的代码以某种方式打破了对称性,则情况可能并非如此。另请看我稍后建议的副本。当其他人试图帮助你时,保持一种态度是毫无帮助的。你能给我解释一下第二个测试吗?第二段代码不是测试,但你可以在R中做一些事情,以获得与Matlab相同的结果。不幸的是,我不知道R,所以我不能给出等价的表达式。而且,我展示的是,它们是一样的。正如你在问题的一个评论中提到的,特征向量不是唯一的。R给出的是范数1,Matlab给出的是范数1,其中有一个实第一分量。@lucadibo crown42的观点是,两组特征向量之间存在全局复因子差。如果
v
是一个代码的特征向量,那么另一个代码对应的特征向量是特定复数
c
c*v
。两人都是对的!如果矩阵是
A
A*(c*v)=c*(A*v)
,那么
v
c*v
都是具有相同特征值的
A
的有效特征向量。数学问题没有定义。如果你的代码依赖于特征向量的特定选择,那么它可能是错误的,不管怎样,你必须自己处理这个问题,也许可以通过计算
c
。公平地说,在某些情况下(例如Koopman算子),人们会将特定的特征向量作为概率密度的近似值,在这种情况下,存在唯一正确的特征向量,即归一化特征向量。我不知道lucadibo的意图是什么,但他有额外的条件是可行的。是的,我也能想到结果取决于特定向量的情况,但“物理”最终结果应该是不变的。在任何情况下,OP都必须理解特征向量上必须有额外的约束,否则两个集合都是“正确的”。