Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Matlab中求关联特征向量_Matlab_Eigenvector_Eigenvalue - Fatal编程技术网

在Matlab中求关联特征向量

在Matlab中求关联特征向量,matlab,eigenvector,eigenvalue,Matlab,Eigenvector,Eigenvalue,对于这个问题,我想大部分代码都是正确的。然而,正确的特征向量包含了我得到的负值 说明: 我的代码: clear all; close all; M = [0 1/4 1/4 0 0 0 0 0 0 0; 1/2 0 1/4 1/4 1/6 0 0 0 0 0; 1/2 1/4 0 0 1/6 1/4 0 0 0 0; 0 1/4 0 0 1/6 0 1/2 1/4 0 0; 0 1/4 1/4 1/4 0 1/4 0 1/4 1/4 0; 0 0 1/4

对于这个问题,我想大部分代码都是正确的。然而,正确的特征向量包含了我得到的负值

说明:

我的代码:

clear all; close all;

M = [0 1/4 1/4 0 0 0 0 0 0 0;
   1/2 0 1/4 1/4 1/6 0 0 0 0 0; 
   1/2 1/4 0 0 1/6 1/4 0 0 0 0; 
   0 1/4 0 0 1/6 0 1/2 1/4 0 0; 
   0 1/4 1/4 1/4 0 1/4 0 1/4 1/4 0; 
   0 0 1/4 0 1/6 0 0 0 1/4 1/2; 
   0 0 0 1/4 0 0 0 1/4 0 0; 
   0 0 0 1/4 1/6 0 1/2 0 1/4 0; 
   0 0 0 0 1/6 1/4 0 1/4 0 1/2; 
   0 0 0 0 0 1/4 0 0 1/4 0];

[Y, Z] = eig(M) % pull the first column of T

A8 = Y(:,1) % P

M*A8 % check

save ('A8.dat', 'A8', '-ascii')
我用

[Y, Z] = eig(M)
求Z中1的相关本征值及其从Y得到的相关本征向量。由此得出p(或A8)为:


当我把M乘以p,我得到p,这是正确的。显然,正确的值应该是我得到的负值。有人能澄清一下吗?

这种行为是正确的。为了理解原因,我们需要了解特征向量的定义(来源:):

方阵a的特征向量或特征向量是非零向量v,当与a相乘时,产生自身的标量倍数。[…]即:Av=nv

其中,v是特征向量,n是相应的特征值

由于这些是线性运算,A*(kv)=n*(kv)用于任何非零标量k。这意味着,一个特征向量乘以一个系数k将是对应特征值的另一个特征向量

Matlab输出归一化特征向量,即其长度(
norm(A8)
)等于1。但是,正的和负的版本都是
M
的特征向量。您可以通过创建结果的负版本并将其与P相乘来验证这一点,P将再次给出结果的负版本

0.1667
0.3333
0.3333
0.3333
0.5000
0.3333
0.1667
0.3333
0.3333
0.1667