【问题标题】:How to solve this integral in R?如何解决R中的这个积分?
【发布时间】:2019-09-22 23:35:50
【问题描述】:

我需要在 R 中找到评估以下函数,包括积分: Probability density functions involving multiple variables,其中 u = t - y。

我遇到的问题是,虽然函数的输入变量作为一个整体是 x 和 t,但需要对变量 u = t - y 求积分。函数 f 和 m' 都返回值,但我不知道如何使 R 评估这个 u 而不是 x 或 T 的积分。

我目前有以下内容,但这并没有返回我应该得到的值,所以我想知道我是否做得正确?

提前感谢您!

a = 3
b = 10
T = 2.6

mprime = function(x){
  return (1/x)
}

f = function(x){
  if (a <= x & x <= b){
    return (1/(b-a))
  }
  else{
    return (0)
  }
}

toIntegrate = function(u){
  return (f(u + x)*mprime(T-u))
}

solution = function (x, T){
  return (f(T + x)) + (integrate(toIntegrate(T-y), 0, T))
}

solution(5,T)

【问题讨论】:

  • y 是什么?我没有看到它在任何地方定义。

标签: r integral


【解决方案1】:

您的代码中有一些错误:

  1. f 和您将在集成中使用的其他函数需要向量化,即它应该将向量作为输入并返回向量作为输出。
  2. toIntegrate 使用 x 既不是全局变量也不是参数。
  3. return 是一个函数,所以只返回括号之间的表达式。因此,您的积分将不会被评估,因为您的函数将返回 f(T+x)
  4. integrate 的第一个参数应该是toIntegrate,而不是toIntegrate(T-y)
  5. mprime 将在 u=t 时返回无穷大,因此可能需要调整限制。
a = 3
b = 10
t = 2.6

mprime = function(x){
  return (1/x)
}

f = function(x){
  ifelse(a <= x & x <= b,1/(b-a),0)
}

toIntegrate = function(u,x,t){
  return (f(u + x)*mprime(t-u))
}

solution = function (x, t){
  return(f(t + x) + integrate(toIntegrate, 0, t,x=x,t=t,stop.on.error = F)$value)
}

solution(5,T)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    相关资源
    最近更新 更多