全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5247 4
2012-04-01
我用sas计算出一个行列式的值和matlab和excel计算的值不一样,各位大侠帮解释一下
用sas计算的结果是0, 用execel和matlab计算的结果是-0.1003(大概是这个数,肯定不等于0)
直接用det(cov)计算的结果是0,
我自己写了一个计算行列式的程序计算的结果也是0.程序如下
do i=1 to 6;
do j=i+1 to 6;
  cov[,j]=cov[,j]-cov[i,j]/cov[i,i]*cov[,i];
  end;
  end;
det=cov[1,1]*cov[2,2]*cov[3,3]*cov[4,4]*cov[5,5]*cov[6,6];
  print cov det;
quit;
下面是cov矩阵
                                         cov
                                 COL1         COL2         COL3         COL4         COL5         COL6
                    ROW1    455.06326    -62.93587    435.78672    78.720136    445.33406    -87.36809
                    ROW2    -62.93587    39.397144    -10.07726    46.266692    -38.98252    26.293196
                    ROW3    435.78672    -10.07726    532.52756    181.45362    407.05368    -96.68608
                    ROW4    78.720136    46.266692    181.45362     168.5219    113.79636    59.125268
                    ROW5    445.33406    -38.98252    407.05368    113.79636    554.41088      9.41544
                    ROW6    -87.36809    26.293196    -96.68608    59.125268      9.41544    149.84354

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-4-2 02:53:46
The sas/iml returns 0.0000507 for  the matrix determinant of Cov.  It is the same as that fro MS.





*****MS syntax
Syntax

MDETERM(array)

Array   is a numeric array with an equal number of rows and columns.

**********SAS/IML
  detCov

  0.0000507


proc iml;
cov={
455.06326    -62.93587    435.78672    78.720136    445.33406    -87.36809,
-62.93587    39.397144    -10.07726    46.266692    -38.98252    26.293196,
435.78672    -10.07726    532.52756    181.45362    407.05368    -96.68608,
78.720136    46.266692    181.45362     168.5219    113.79636    59.125268,
445.33406    -38.98252    407.05368    113.79636    554.41088      9.41544,
-87.36809    26.293196    -96.68608    59.125268      9.41544    149.84354
};

detCov=det(cov);

print detCov;
quit;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-4-2 11:11:22
bobguy 发表于 2012-4-2 02:53
The sas/iml returns 0.0000507 for  the matrix determinant of Cov.  It is the same as that fro MS.
...
谢谢你的帮助啊。 我计算的结果还是0,可能是我传上来的数据只保留到小数点后6位吧, 原数据最大小数点后13位,可能是这个地方出问题了,真心谢了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-4-6 11:31:50
不是很理解呀
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-2-25 11:11:25
结算结果一样啊!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群