integg <- function(t,a,b){
integrate(Vectorize(function(x){55}),lower=t-(a+b),upper=t-a)
}
我认为这可能是一个简单的问题。
我正在整合一个可能不同的界限。
如果你把这个常数看作一个函数,它只存在于x轴上的值> = 0.我不能只设置下限== 0.因为有时候可能下限是某个值> 0.
最好不要以某种方式将常量写为函数。
我遇到的第二个问题是我想将值55作为对象(x),我可以将其作为参数包含在函数integg()
中我正在使用Vectorize,因为这是我知道如何整合常量的唯一方法。
答案 0 :(得分:1)
为什么不完全按照你的描述去做。将x
作为参数添加到integg
函数
integg <- function(t, a, b, intval) {
u <- t - a
l <- ifelse(u - b < 0, 0, u - b)
integrate(Vectorize(function(foo, x) {55}), lower=l, upper=u, x=intval)
}
如果要积分的函数始终是常数,则可以编写自己的区域calc:
integg2 <- function(t, a, b, intval) {
u <- t - a
l <- ifelse(u - b < 0, 0, u - b)
intval * (u - l)
}