错误"参数"param"缺失,没有默认值" - R 中的 optim() 函数



我试图使用毕达哥拉斯定理来计算时间的最小值,方法是在 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=?有问题,但不知道如何解决这个问题。

正如用户"jogo"所提到的,将fngr参数替换为不带括号的相应函数的名称。

此外,正如您已经发现的那样,Brent方法需要填写lowerupper参数:

下限、上限 ... 或搜索方法"布伦特"的界限

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

最新更新