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