我尝试了一个cpp程序来找到10乘10 covariance matrix
' sn' [其中sn = x * x ^ H; H是具有Eigen library
的数据类型复数double的Hermitian]。由于sn具有等级2,我试图通过添加10乘10的矩阵来使其成为满秩矩阵' a'其对角线元素为0.01,对角线元素为0.但现在当我使用.inverse()
时,与MATLAB相比,它给出了错误的结果。
int main()
{
MatrixXcd sn(10,10),sn1(10,10),a(10,10);
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(i==j)
a(i,j)=0.01;
sn1=sn+a;//sn is known
cout<<"sn1 inverse"<<sn1.inverse()<<endl;
}
当我试图找到2阶2的简单矩阵的逆时,inverse()完美地工作。请帮帮我。