我将等式sum((2*x+1)/k^x)==3*k
(其中x属于整数)解析为
x=0:10000
y=function(k){sum((2*x+1)/k^x)==3*k}
y(2)
返回TRUE
。
但是我想要一种方法来自动解决它,我该如何解决呢?
答案 0 :(得分:4)
你可以试试函数uniroot
:
uniroot(function(k){sum((2*x+1)/k^x)-3*k}, c(0,100))$root
#[1] 2.000019
uniroot(function(k){sum((2*x+1)/k^x)-3*k}, c(1,10))$root
#[1] 2
同样在第一次通话中,您可能因为数字表示而无法准确2
,因此您可能需要添加容差;有关此主题的更多信息,请参阅here。