我是 R 的新用户。你能告诉我或介绍一些描述tol
在 R 中计算 QR 分解的论点的参考吗?
例如,这两行有什么区别:
qr(A, tol=1e-07) #Doesn't work
qr(A, tol=1e-20) #Works
为什么我用这么小的值得到我想要的结果tol
,但没有更大的值?
我是 R 的新用户。你能告诉我或介绍一些描述tol
在 R 中计算 QR 分解的论点的参考吗?
例如,这两行有什么区别:
qr(A, tol=1e-07) #Doesn't work
qr(A, tol=1e-20) #Works
为什么我用这么小的值得到我想要的结果tol
,但没有更大的值?
该tol
参数qr
根据列是否被判断为线性相关来控制是否为列返回值。我认为将tol
值降低到 1e-16 以下会违背该检查的目的。(这几乎是双精度数学中零的实用定义。)
先看qr.default
再找FORTRAN代码:
http://svn.r-project.org/R/trunk/src/appl/dqrdc2.f
这是描述逻辑的 FORTRAN 例程的注释:
c cycle the columns from l to p left-to-right until one
c with non-negligible norm is located. a column is considered
c to have become negligible if its norm has fallen below
c tol times its original norm. the check for l .le. k
c avoids infinite cycling.