Интеграция функции в R, содержащая термин продукта - PullRequest
1 голос
/ 03 апреля 2020

Мне нужно интегрировать функцию в R в виде

f<-function(x,a){prod((2-log(a))^x)}
a<-c(0.5,0.7,0.9,1.2)
integrate(f,0,1,a=a)

После выполнения вышеуказанных кодов я получаю следующую ошибку.

Error in integrate(f, 0, 1, a = a) :
evaluation of function gave a result of wrong length
In addition: Warning message:
In (2 - log(a))^x :
longer object length is not a multiple of shorter object length

Пожалуйста, предоставьте решение проблемы .

1 Ответ

0 голосов
/ 03 апреля 2020

Проблема в том, что integrate оценивает f(x,a) для вектора x.

Вы можете сделать:

a <- c(0.5,0.7,0.9,1.2)

g <- function(x, a){
  sapply(x, function(xi){
    prod((2-log(a))^xi)
  })
}

integrate(g, 0, 1, a = a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...