nlm()或optimize()是否比R中的optim()更精确

nlm()或optimize()是否比R中的optim()更精确,r,precision,R,Precision,我试图在名为GGG的函数中获得更精确的x[1]和x[2]估计值(最多小数点后6位) 使用optim,我得到了一些精度高达3位小数点,但我想知道如何将精度提高到至少6位小数点 optimize和nlm能否用于此目标 GGG = function(Low, High, p1, p2) { f <- function(x) { y <- c(Low, High) - qcauchy(c(p1, p2), location=x[1], scale=x[2]) } ## S

我试图在名为
GGG
的函数中获得更精确的
x[1]
x[2]
估计值(最多小数点后6位)

使用
optim
,我得到了一些精度高达3位小数点,但我想知道如何将精度提高到至少6位小数点

optimize
nlm
能否用于此目标

GGG = function(Low, High, p1, p2) {


f <- function(x) {

 y <- c(Low, High) - qcauchy(c(p1, p2), location=x[1],  scale=x[2]) 

 }


## SOLVE:  
AA <- optim(c(1,1), function(x) sum(f(x)^2) )  

## return parameters:
parms = unname(AA$par)   


return(parms)     ## Correct but up to 3 decimal places 

}

 ## TEST:
 AAA <- GGG (Low = -3, High = 3, p1 = .025, p2 = .975)


 ## CHECK:
 q <- qcauchy( c(.025, .975), AAA[1], AAA[2] ) # What comes out of "q" MUST match "Low" and 
                                               # "High" up to 6 decimal places
GGG=功能(低、高、p1、p2){

foptim函数有一个公差控制参数。将optim函数替换为:

AA <- optim(c(1,1), function(x) sum(f(x)^2), control=list(reltol=(.Machine$double.eps)))
> q
[1] -3  3
> AAA
[1] 5.956798e-08 2.361051e-01