gpt4 book ai didi

r - Uniroot log(x) 解决方案

转载 作者:行者123 更新时间:2023-12-03 22:53:15 24 4
gpt4 key购买 nike

我想在 R 中使用 uniroot 找到 log(x) = x2 − 2 的根

f <- function(x)  (log(x)+2-x^2)
uniroot(f, lower=0, upper=100000000)$root

但这显示错误

Error in uniroot(f, lower = 0, upper = 1e+08) : f() values at end points not of opposite sign

最佳答案

uniroot需要一个函数在两个端点处具有相反符号的区间(因为它使用二分法的变体)。当您不知道要查看的位置时,快速绘制绘图并不是一个坏主意:

f <- function(x)  (log(x)+2-x^2)
x <- seq(0.0,4,0.01)
y <- f(x)
plot(x,y,ylim = c(-1,1),type = "l")
abline(h=0)

这会产生:

enter image description here

由此可以看出有两个根,一个在0和1之间,一个在1和2之间:

uniroot(f,interval = c(0,1))$root  #returns 0.1379346
uniroot(f,interval = c(1,2))$root #returns 1.564445

关于r - Uniroot log(x) 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46818789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com