错误 'argument "param" is missing, with no default' - R 中的 optim() 函数
Error 'argument "param" is missing, with no default' - optim() function in R
我试图通过在 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' 将 fn
和 gr
参数替换为不带括号的相应函数的名称。
此外,正如您已经知道的那样,Brent
方法需要填写 lower
和 upper
参数:
lower, upper ... , or bounds in which to search for method "Brent"
mle_param <- optim(par = start_guess,
fn = Time_1,
gr = D_Time,
method = 'Brent',
lower = 1,
upper = 25)
我试图通过在 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' 将 fn
和 gr
参数替换为不带括号的相应函数的名称。
此外,正如您已经知道的那样,Brent
方法需要填写 lower
和 upper
参数:
lower, upper ... , or bounds in which to search for method "Brent"
mle_param <- optim(par = start_guess,
fn = Time_1,
gr = D_Time,
method = 'Brent',
lower = 1,
upper = 25)