在R中,我将如何找到(第一个)根,x用于这样的等式:
不幸的是,这样的R代码不起作用,因为R中没有符号结构
g <- function(t) integrate(sin(t)/t,lower=0,upper=x)
root <- uniroot(g,(c(0,1)))$root
一般来说,我希望被积函数是任意函数,在积分之后可能有也可能没有分析密码形式的解。此外,左侧可以是任意常数。
答案 0 :(得分:5)
嗯,这个问题的语法有点过时了。像
这样的东西g <- Vectorize(function(x) integrate(function(t) sin(t)/t,lower=0,upper=x)$value-1)
root <- uniroot(g,c(0,1))$root
更接近一点。在这种情况下,R在0处评估等式并不好。你可以远离0.另外,根据Wolfram Alpha的说法,&#34; root&#34;出现在1.06处,超出搜索范围。这应该给出正确的答案
g <- Vectorize(function(x) integrate(function(t) sin(t)/t,lower=0,upper=x)$value-1)
root <- uniroot(g,c(.01,1.5))$root
root
# [1] 1.06482