我有2个向量:
set.seed(1)
x1 = rnorm(100,0,1)
x2 = rnorm(100,1,1)
Run Code Online (Sandbox Code Playgroud)
我想将这些作为线条绘制,然后找到线条的交点,如果有多个交叉点,那么我想找到它们中的每一个.
我遇到过类似的问题,并尝试使用解决此问题spatstat,但我无法将包含两个矢量值的组合数据帧转换为psp object.
我想找到以下函数的根:
x=0.5
f <- function(y) ((1-pbeta(1-exp(-0.002926543
*( 107.2592+y)^1.082618 *exp(0.04097536*(107.2592+y))),shape1=0.2640229,shape2=0.1595841)) -
(1-pbeta(1-exp(-0.002926543*(x)^1.082618 *exp(0.04097536*(x))),shape1=0.2640229,shape2=0.1595841))^2)
sroot=uniroot(f, lower=0, upper=1000)$root
Run Code Online (Sandbox Code Playgroud)
uniroot错误(f,lower = 0,upper = 1000):端点处的f()值不是符号相反
我该如何解决错误?
我对插值函数的一般求根问题感兴趣。
假设我有以下(x, y)数据:
set.seed(0)
x <- 1:10 + runif(10, -0.1, 0.1)
y <- rnorm(10, 3, 1)
Run Code Online (Sandbox Code Playgroud)
以及线性插值和三次样条插值:
f1 <- approxfun(x, y)
f3 <- splinefun(x, y, method = "fmm")
Run Code Online (Sandbox Code Playgroud)
如何找到x这些插值函数与水平线交叉的值y = y0?以下是带有 的图形说明y0 = 2.85。
par(mfrow = c(1, 2))
curve(f1, from = x[1], to = x[10]); abline(h = 2.85, lty = 2)
curve(f3, from = x[1], to = x[10]); abline(h = 2.85, lty = 2)
Run Code Online (Sandbox Code Playgroud)
我知道有关此主题的一些先前主题,例如