楼主: zippo414
3839 6

[问答] 关于对称矩阵的精度问题 [推广有奖]

  • 3关注
  • 3粉丝

已卖:313份资源

博士生

98%

还不是VIP/贵宾

-

威望
0
论坛币
1030 个
通用积分
14.4732
学术水平
10 点
热心指数
20 点
信用等级
9 点
经验
10987 点
帖子
193
精华
0
在线时间
542 小时
注册时间
2005-3-16
最后登录
2025-7-8

楼主
zippo414 发表于 2012-7-26 16:10:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
现在在做一个程序,要用到dmvnorm(x,n,Sigma)这个函数,要求Sigma是对称矩阵,但是遇到了这种情况
            [,1]      [,2]       [,3]       [,4]        [,5]       [,6]       [,7]       [,8]        [,9]      [,10]      [,11]
[1,]  6.6374143  4.962369 -2.3153074 -0.5919525  -4.0075043 -1.5443823 -2.0129990 -1.3462416  -2.8998950 -1.7886974  23.881760
[2,]  4.9623694  4.442595 -2.0299875 -0.5298630  -3.5390446 -1.3691175 -1.8021512 -1.2052321  -2.5961510 -1.6013436  20.870953
[3,] -2.3153074 -2.029988  1.4122368  0.2421631   1.6446589  0.6332350  0.8234701  0.5507155   1.1862782  0.7317136  -9.824725
[4,] -0.5919525 -0.529863  0.2421631  0.7098677   0.4221533  0.1633084  0.2149404  0.1437466   0.3096398  0.1909903  -2.489836
[5,] -4.0075043 -3.539045  1.6446589  0.4221533   3.1927357  1.0993468  1.4356233  0.9601077   2.0681366  1.2756567 -16.953745
[6,] -1.5443823 -1.369118  0.6332350  0.1633084   1.0993468  1.3881403  0.5553863  0.3714280   0.8000809  0.4935015  -6.522841
[7,] -2.0129990 -1.802151  0.8234701  0.2149404   1.4356234  0.5553863  0.7310477  0.4889058   1.0531359  0.6495895  -8.466360
[8,] -1.3462416 -1.205232  0.5507155  0.1437466   0.9601077  0.3714280  0.4889058  0.3269675   0.7043100  0.4344286  -5.662083
[9,] -2.8998950 -2.596151  1.1862782  0.3096398   2.0681366  0.8000809  1.0531359  0.7043100   1.5171312  0.9357885 -12.196460
[10,] -1.7886974 -1.601344  0.7317136  0.1909903   1.2756567  0.4935015  0.6495895  0.4344286   0.9357886  0.5772080  -7.522983
[11,] 23.8817607 20.870953 -9.8247256 -2.4898359 -16.9538073 -6.5228405 -8.4663604 -5.6620825 -12.1965070 -7.5229826 324.791770
其实这个矩阵是对称的,只不过由于小数点后的位数不同,导致了R认为它是不对称的。因为dmvnorm这个函数是在一个包里调用的,所以不能用round(Sigma,5)等方法强制小数点后位数,请问应该怎么解决?我感觉是不是应该修改全局参数?比如options(digits=5),但这样也不行。
二维码

扫码加我 拉你入群

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

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

关键词:对称矩阵 options Option Sigma ROUND 矩阵 程序

沙发
qoiqpwqr 发表于 2012-7-26 20:35:15
Sigma <- (Sigma + t(Sigma))/2

藤椅
zippo414 发表于 2012-7-27 00:08:08
qoiqpwqr 发表于 2012-7-26 20:35
Sigma
多谢。不过这样要修改内部的函数,我是用的sspir包里专门做卡尔曼滤波的kfliter函数,这个函数调用了dmvnorm,所以这样就要修改kfliter这个函数了。请问有没有不用修改内部函数,从外部环境解决的办法?类似于设定一下全局环境里的精度?

板凳
qoiqpwqr 发表于 2012-7-27 02:29:24
zippo414 发表于 2012-7-27 00:08
多谢。不过这样要修改内部的函数,我是用的sspir包里专门做卡尔曼滤波的kfliter函数,这个函数调用了dmvn ...
Sigma是怎么得来的?

报纸
zippo414 发表于 2012-8-1 23:37:25
qoiqpwqr 发表于 2012-7-27 02:29
Sigma是怎么得来的?
在kfilter()这个函数内部要调用dmvnorm。Sigma是有卡尔曼滤波求得的

地板
trier2006 发表于 2012-8-2 09:54:15
帮顶
最好的医生是自己,最好的药物是时间……

7
meishanjia1900 发表于 2012-8-2 20:43:39
你的意思是Sigma由kfilter()在内部求得,你没有更改的余地,是么?
如果是这样,那kfilter()就是一个很烂的函数了。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 23:05