Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何找到两个函数的交集_R - Fatal编程技术网

R 如何找到两个函数的交集

R 如何找到两个函数的交集,r,R,我有两个日志函数 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(

我有两个日志函数

 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的交集

如果您知道交叉点将出现的范围,可以使用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
如果您知道交叉点将发生的范围,则可以使用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