【发布时间】:2017-05-28 18:16:54
【问题描述】:
所以我有一个有条件定义的函数,如下面的 R 代码所示,它是 -1 和 t 之间的积分。
f <- function(x) ifelse((x<=1 & x>=-1),3/4*(1-x^2),0)
F <- function(t) integrate(Vectorize(f),-1,t)$value
通过使用:
plot(Vectorize(F),-2,2);
我得到了 F 的曲线。
现在我想绘制 F 的反函数,所以在做了一些研究后,我找到了 uniroot 函数并尝试以这种方式使用它:
Finv <- function(s) uniroot(function(t) F(t) - s, lower=-1,upper=1)
求解[-1,1]中的函数F(x)=y。 但是在尝试绘制结果时:
plot(Vectorize(Finv),-2,2)
我不断收到以下错误:
Error in uniroot(function(t) F(t) - s, lower = -1, upper = 1) :
f() values at end points not of opposite sign
我不明白是什么问题?
【问题讨论】: