首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对包含积分的函数进行积分

对包含积分的函数进行积分
EN

Stack Overflow用户
提问于 2021-01-15 16:28:37
回答 1查看 22关注 0票数 1

假设在全局环境中定义了以下内容:

代码语言:javascript
复制
theta = .9
sigma = .2
x0 = .7
mu = 12

我有下面的函数,它包含一个积分的结果:

代码语言:javascript
复制
f <- function(x){
  g <- function(t){
    2*mu*(theta - t)/(sigma^2)
  }
  return(exp(integrate(g, lower = x0, upper = x)$value))
}

当我尝试集成函数时:

代码语言:javascript
复制
integrate(f, lower = -1, upper = 1)

我得到以下错误:

代码语言:javascript
复制
Error in integrate(g, lower = x0, upper = x) : 
  'upper' must be of length one 

为什么会发生这种情况?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-15 17:40:14

您可能需要向量化upper的值,例如,使用如下所示的sapply

代码语言:javascript
复制
f <- function(x) {
  g <- function(t) {
    2 * mu * (theta - t) / (sigma^2)
  }
  sapply(x, function(v) exp(integrate(g, lower = x0, upper = v)$value))
}

Vectorize

代码语言:javascript
复制
f <- function(x) {
  g <- function(t) {
    2 * mu * (theta - t) / (sigma^2)
  }
  Vectorize(function(v) exp(integrate(g, lower = x0, upper = v)$value))(x)
}

这样的话

代码语言:javascript
复制
> integrate(f, lower = -1, upper = 1)
16536 with absolute error < 0.016
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65732764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档