错误“参数“参数”丢失,没有默认值”-R中的optim()函数

时间:2019-02-09 12:32:00

标签: r optimization statistics data-science mathematical-optimization

我试图通过毕达哥拉斯定理来计算时间的最小值,方法是在R中创建函数,将函数T和(dT / dX1)作为X1的函数输出,并使用optim()进行数值查找使T最小的X1值。

Time_1 <- function(param){((sqrt(param^2 + 225))/10) + ((sqrt(((25-param)^2) + 100))/2)} #Function to define T

D_Time <- function(param){(param / (10*(sqrt(param ^ 2 + 225)))) +
((param- 25) / (2*sqrt((25 - param) ^ 2 + 100)))} #Function to define (dT/dX1)

start_guess <- 1#start value
mle_param <- optim(par=start_guess, fn = Time_1(),gr = D_Time(), method = 'Brent')
Error in D_Time() : argument "param" is missing, with no default

我知道fn = ?、 gr =?有什么问题,但不知道如何解决。

1 个答案:

答案 0 :(得分:0)

如用户'jogo'所述,将fngr参数替换为没有括号的相应函数的名称。

此外,您已经知道,Brent方法需要填充lowerupper参数:

  

下部,上部...或搜索方法“ Brent”的范围

mle_param <- optim(par = start_guess,
                   fn = Time_1,
                   gr = D_Time,
                   method = 'Brent',
                   lower = 1,
                   upper = 25)