Ошибка 'аргумент "param" отсутствует, без функции по умолчанию' - optim () в R - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь использовать теорему Пифагора для вычисления минимального значения времени, создавая функции в R, которые выводят T и (dT / dX1) как функцию X1, и использую optim(), чтобы численно найти значениеX1, который минимизирует T.

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 голосов
/ 16 февраля 2019

Как уже упоминалось пользователем 'jogo', замените параметры fn и gr на имена соответствующих функций без скобок.

Более того, как вы уже выяснили, метод Brent нуждается вlower и upper параметры для заполнения:

нижний, верхний ... или границы, в которых нужно искать метод "Brent"

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