集成函数以查找常量

时间:2018-03-12 05:56:07

标签: r function

我有以下功能:

PDF of a random variable X: f(x) = b*x(1-x)^3 for x[0,1].

我需要回答的问题是:Use the the integrate function to show that 'b' = 20.

我尝试了以下内容:

fx<-function(b,x){ b*x*(1-x)^3 } integrate(fx, 0,1)

但是,我收到以下消息:

Error in f(x, ...) : argument "x" is missing, with no default

3 个答案:

答案 0 :(得分:2)

定义

f <- function(x) x*(1-x)^3

然后由于PDF的积分必须为1,b的值可以从

计算出来
b <- 1/integrate(f,0,1)$value

答案 1 :(得分:2)

如果您只需显示 b = 20,积分为1,您可以这样做吗?

> my.fxn <- function(x) 20*x*(1-x)^3
> integrate(my.fxn,0,1)
1 with absolute error < 1.1e-14

或者,您可以显示从0到1的积分的b-> 20的极限是1;诚然,快速而肮脏,但不确定你的总体目标是什么。

> my.fxn <- function(x) 19*x*(1-x)^3
> integrate(my.fxn,0,1)
0.95 with absolute error < 1.1e-14

> my.fxn <- function(x) 19.5*x*(1-x)^3
> integrate(my.fxn,0,1)
0.975 with absolute error < 1.1e-14

> my.fxn <- function(x) 20.5*x*(1-x)^3
> integrate(my.fxn,0,1)
1.025 with absolute error < 1.1e-14

> my.fxn <- function(x) 21*x*(1-x)^3
> integrate(my.fxn,0,1)
1.05 with absolute error < 1.2e-14

答案 2 :(得分:0)

  

f(x,...)中的错误:参数&#34; x&#34;缺少,没有默认

您可以将默认值设置为

avg(case when status = true then calculate_time end) as cal_time,
avg(case when status then calculate_time end) as cal_time,

试试here