在R中找到具有无闭合形式的积分的方程的根

时间:2015-06-12 05:23:38

标签: r equation integral

在R中,我将如何找到(第一个)根,x用于这样的等式:

enter image description here

不幸的是,这样的R代码不起作用,因为R中没有符号结构

g <- function(t) integrate(sin(t)/t,lower=0,upper=x)
root <- uniroot(g,(c(0,1)))$root

一般来说,我希望被积函数是任意函数,在积分之后可能有也可能没有分析密码形式的解。此外,左侧可以是任意常数。

1 个答案:

答案 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