Привет У меня есть уравнение, подобное следующему, которое я хочу рассчитать.вычисление интерграла с несколькими переменными в R
Уравнения определяются по формуле:
В этом уравнении х представляет собой arrary от 0 до 500. значения Т = 500 т.е. верхнего предела интегрирования.
Теперь я хочу вычислить c как c (500, x).
код, который я написал до сих пор выглядит следующим образом:
x <- seq(from=0,by=0.5,length=1000)
t=500
integrand <- function(t)t^(-0.5)*exp((-x^2/t)-t)
integrated <- integrate(integrand, lower=0, upper=t)
final <- pi^(-0.5)*exp(2*x)*integrated
Я получаю ошибку следующим образом:
Error in integrate(integrand, lower = 0, upper = t) :
evaluation of function gave a result of wrong length
In addition: Warning messages:
1: In -x^2/t :
longer object length is not a multiple of shorter object length
2: In -x^2/t - t :
longer object length is not a multiple of shorter object length
3: In t^(-0.5) * exp(-x^2/t - t) :
longer object length is not a multiple of shorter object length
Но это не работает, потому что переменная х внутри подынтегрального выражения, которое является аранжировкой. Может ли кто-нибудь предложить, как я могу сначала вычислить интеграцию, а затем вычислить общее выражение для каждого значения x? Если я изменю значение х в подынтегральном выражении на константу, я могу вычислить интеграцию, но я хочу вычислить для всех значений х от 0 до 500.
Огромное вам спасибо.
При использовании 'integrate' функция должна изменяться с именем переменной, которая интегрируется, что в вашей case is \ theta, а не «x». –
Я понимаю это. Как изменить выражение с помощью x вне подынтегрального выражения. Кажется, что экспоненциальная функция связана как с x, так и с thita. Как я могу отделить эти переменные? –
, как правило, можно использовать 'sapply (vector, FUN = ...)' и записывать FUN, чтобы взять одну переменную X. Но не называйте это «x», потому что вам нужно, чтобы это была переменная, которая передается «интегрировать». Какова предыстория этой проблемы? –