我试着弄清楚,如果我的观点低于或高于一条简单的曲线并且目前在数学上挣扎,我猜......
我准备了一个工作的例子,但是数学首先。
我有一些要点,我想检查它们是否高于或低于曲线......
曲线具有函数y=1/(x-.5)
所以我想我会将函数设置为0并得到0=1/(x-.5)-y
之后如果该点位于曲线的一侧,我将得到负值,而另一侧则为正值...希望这是正确的...
我意识到一个问题,如果x值小于.5,那么低于1 /的部分会变为负数,而我所有的值也都是负值...
我添加了一个特殊点(5),它给出了预期的正值,但是其他的如何,我该如何测试呢? 谢谢你的帮助!
points <- data.frame(
x=c(-3.6030515,-0.2791478,10.2045860,-0.7457344,1,0.4037591,0.1555678,
6.1525442,1.9831603),
y=c(0.95715140,0.18139107,2.87456154,0.17190597,0.5,0.09778570,0.02708183,
2.69455955,1.09943870)
)
curves <- data.frame(x=c(seq(.1,10,.1)))
curves$y <- 1/(curves$x-.5)
plot(points$x,points$y)
lines(curves$x,curves$y)
lines(-curves$x,curves$y)
1/(points$x-.5)-points$y >= 0
提前致谢!
答案 0 :(得分:1)
除非我误解了这个问题,否则你应该只能在点'x
值处评估函数,并将结果(即根据函数的y
值)与您的积分'y
值。
f <- function(x) 1 / (x-0.5)
f(points$x) < points$y
# [1] TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE
通过我构建不等式的方式,TRUE
表示该曲线低于y
向量中的相应points
值。换句话说,除了第五点之外的所有点都在曲线之上。
答案 1 :(得分:1)
计算曲线下面的数字:
## count the number below the curve
sum(points$y<1/(points$x-0.5) )
以图形方式显示:
## plot it using plot and curve
plot(points$x,points$y,col=ifelse(points$y<1/(points$x-0.5) ,'blue','red'),pch=20)
curve(1/(x-.5),-4,10,add=TRUE,col='green',lwd=2)
要以图形方式显示不连续部分,您应使用curve
:
curve(1/(x-.5),0,1,col='green',lwd=2)
abline(v=0.5,lwd=3)
`