eigs函数返回一个随机的'结果在matlab?

时间:2015-05-06 21:10:51

标签: matlab

以下是正在进行的事情。

>> A= [ 0,1,0,0; 1,0,0,0; 0,0,0,0; 1,1,1,0 ];
    [V,D] = eigs(A,1); 
>> V

V =

    0.7071
   -0.7071
         0
   -0.0000

>> D

D =

    -1

>> A= [ 0,1,0,0; 1,0,0,0; 0,0,0,0; 1,1,1,0 ];
    [V,D] = eigs(A,1); 
>> V

V =

   -0.4082
   -0.4082
   -0.0000
   -0.8165

>> D

D =

    1.0000

您可以看到相同的代码生成不同的输出。所以,我试过这个:

>> [V,D] = eig(A); 
>> V

V =

         0    0.4082    0.7071         0
         0    0.4082   -0.7071         0
         0         0         0    0.0000
    1.0000    0.8165         0   -1.0000

>> D

D =

     0     0     0     0
     0     1     0     0
     0     0    -1     0
     0     0     0     0

那你觉得怎么样?知道发生了什么事吗?任何评论都非常感谢。

1 个答案:

答案 0 :(得分:0)

eigs(A,n)返回具有最大幅度的前n个本征向量。在这种情况下,两个向量具有相同的大小,因此对函数调用都是同等有效的答案。