楼主: wkn1986
16473 20

[问答] 请大家帮忙 [推广有奖]

11
jmpamao 发表于 2012-12-28 00:42:05
qoiqpwqr 发表于 2012-12-27 08:52
可以看下面这个例子

> set.seed(1)
但是好像也不是绝对的。
比如:
A <- diag(rep(0.000000000001,1000)) #是可逆的
det(A)  #此时为0
solve(A)  # 是百分百存在的

12
jmpamao 发表于 2012-12-28 01:03:25
qoiqpwqr 发表于 2012-12-27 08:52
可以看下面这个例子

> set.seed(1)
而且算 rank 也是没有用的。
比如:> set.seed(1)
> a <- matrix(rnorm(100),10,10)
> a[lower.tri(a)] <-0
> diag(a) <-rep(0.00001,10)
> qr(a)$rank
[1] 10
> det(a)
[1] 1e-50
> solve(a)
错误于solve.default(a) : 系统计算上是奇异的: 倒条件数=9.93383e-50
已有 1 人评分学术水平 热心指数 收起 理由
qoiqpwqr + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

13
qoiqpwqr 发表于 2012-12-28 01:07:10
jmpamao 发表于 2012-12-28 00:42
但是好像也不是绝对的。
比如:
A
没错,可能对于这种对角的矩阵,R会比较聪明的直接用对角元素取倒数

你可以试试把
A[1, 2] <- 0.0001
R就认为不可逆的了
但是
A[1, 2] <- 0.00001
有可逆了

所以说比较极限的数值运算不是很靠谱的

14
waterhorse 发表于 2013-2-10 12:10:14
Learn a lot here.

15
schtiven 发表于 2013-2-12 12:12:34
I was looking for the same thing! Nice thread

16
gssdzc 在职认证  发表于 2014-7-11 16:26:47
非常感谢分享。我是在构建GARCH模型的时候遇到的

17
jcx350 发表于 2018-8-11 11:30:48
楼主是怎么解决的 求方法

18
古丽古丽 发表于 2019-6-15 21:39:11
jcx350 发表于 2018-8-11 11:30
楼主是怎么解决的 求方法
同求

19
zhengbieguang 学生认证  发表于 2019-8-5 18:33:18
qoiqpwqr 发表于 2012-12-27 08:52
可以看下面这个例子

> set.seed(1)
谢谢你,找了好久终于找到对我症的了。我现在的矩阵就是这种情况,行列式不等0,但是rank是小于列数的,求逆也会出现“system is computationally singular: reciprocal condition number=3”这样的警告,很是无语。看到你的回答,甚是开心。弱弱的问一句:这种情况,怎么解决呢亲?

20
alecwf 发表于 2019-11-14 05:58:08
矩阵求逆比较复杂

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

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