所以我有两个日志功能,
var1 <- 10 * x * log(x) ^ 2
var2 <- 100 * x * log(x)
我可以从
绘图 library(ggplot2)
df <- data.frame(x = rep(x, times = 2), y = c(var1, var2), var = rep(c("10 * x * log(x) ^ 2", "100 * x * log(x)", each = length(x)))
ggplot(df, aes(x = x, y = y, color = var)) + geom_line()
R中是否有函数调用来帮助我找到var1和var2的交集?
答案 0 :(得分:6)
如果你知道交叉路口的发生范围,你可以使用uniroot()
:
f1 <- function(x) 10 * x * log(x)^2
f2 <- function(x) 100 * x * log(x)
curve(f1,from=1e-3,to=1e8,log="xy")
curve(f2,add=TRUE,col=2)
uniroot(function(x) f1(x)-f2(x),c(10,1e8))$root
## [1] 22026.47
但它真的比那更容易
## 10*x*log(x)^2 = 100*x*log(x)
## log(x) = 10
x <- exp(10) ## 22026.47